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即可

  • 相关阅读:
    Introduction to Computer Science and Programming in Python--MIT
    随机变量及其分布
    条件期望与重期望
    Fourier级数
    Windows进程通信-共享内存空间
    windows网络编程-socket
    PE文件中找导出表
    PE文件结构体-IMAGE_DATA_DIRECTORY
    RVA到FOA的转换
    PE文件结构体-IMAGE_SECTION_HEADER
  • 原文地址:https://www.cnblogs.com/mystudy2016/p/5244974.html
Copyright © 2011-2022 走看看