zoukankan      html  css  js  c++  java
  • linux移植驱动insmod时所遇到的问题

    insmod时可能出现的错误:(问题5为自己遇到的实际问题,其他则为借鉴他认经验)
    1.warning: function declaration isnt a prototype
    这种错误也是很常见的,主要是对一些函数固定格式的错误使用。比如int function()改称int function(void)
    static int xxxx_init(void)记住不要缺少static,而static void xxxx_exit(void)

    2.出现 warning: assignment makes pointer from integer without a cast 的原因
    第一可能是类型转换的问题。函数的返回值类型等等
    第二、在源文件中没有发现函数的声明,可能是忘加头文件了。(未经声明的函数原型一律默认为返回int值


    3、makefile:4: *** missing separator. Stop.
    最近常用SourceInsight3.5编辑程序,里面直接编辑保存的是word格式。用WinHex或UltraEdit以二进制方式打开,里面的
    Tab字符对应0x09而不应该是几个0x20。这是主要用vi打开文件,切入到底行模式,使用":set ff =unix"

    4.hello: version magic 2.6.30.4 mod_unload ARMv4 should be2.6.30.4-EmbedSky mod_unload ARMv4 
    insmod:cannot insert hello.ko: invalid module format 
    出错原因:模块版本与内核版本不匹配! 
    解决办法:导入预设配置信息,进入menuconfig 继续配置General config ->( )Local version -> 
    括号中加入如下内容:“-EmbedSky”退出保存为 .config ,重新编译内核、驱动模块,再来加载模块


    5# insmod buttons.ko
    buttons: Unknown symbol __aeabi_unwind_cpp_pr0 (err 0)
    insmod: can't insert 'buttons.ko': unknown symbol in module or invalid parameter
    原因:驱动模块与内核镜像不匹配
    解决办法:找到与下载到板子上的内核镜保持一致:修改Makefile
    将(原来默认路径的内核镜像)KERN_DIR = /work/system/linux-3.4.2
    改为(下载到板子上的路径的内核镜像)KERN_DIR = /work/system/linux_suspend/linux-3.4.2即可

  • 相关阅读:
    HDU 2888 Check Corners (模板题)【二维RMQ】
    POJ 3264 Balanced Lineup(模板题)【RMQ】
    poj 3368 Frequent values(经典)【RMQ】
    SPOJ RPLN (模板题)(ST算法)【RMQ】
    UVA 796 Critical Links(模板题)(无向图求桥)
    UVA 315 Network (模板题)(无向图求割点)
    POJ 2029 Get Many Persimmon Trees (模板题)【二维树状数组】
    poj 3067 Japan 【树状数组】
    POJ 2481 Cows 【树状数组】
    POJ 1195 Mobile phones【二维树状数组】
  • 原文地址:https://www.cnblogs.com/mystudy2016/p/5244974.html
Copyright © 2011-2022 走看看