zoukankan      html  css  js  c++  java
  • 2440的驱动的研究

     一 。 编译器 : 不同版本的编译器不一样,使用的时候得注意 ,不一定高版本的支持的功能就越多或者兼容的越多

     arm-linux-gcc-4.3.2.tar.bz2 用于编译u-boot2012.04.01和linux3.4.2

    arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2用于编译u-boot1.16和linux2.6.22.6
     
    二  、以下是模块的MAKEFILE文件
    KERN_DIR = /work/system/linux-2.6.22.6
    all:
     make -C $(KERN_DIR) M=`pwd` modules
    clean:
     make -C $(KERN_DIR) M=`pwd` modules clean
     rm -rf modules.order
    obj-m += buttons.o
        其中    KERN_DIR = /work/system/linux-2.6.22.6  是内核的路径
         注意 :1、这个内核是开发板的内核、
                     2、这个内核的路径在虚拟机的  /work/system/  ,是将开发板的内核源文件解压,配置编译后的文件,其中的uimage 可以下载进开发板
     
     
    三、驱动的程序的理解:
             1、init ,exit    这两个是加载程序和卸载程序,是在系统应用程序(调用该驱动的程序)运行之前进行操作的,因为驱动的使用套路基本是文件操作,在读写文件之前没有文件怎么可以。
             2、应用程序调用的时候驱动程序使用   open  close 等等操作驱动,所以驱动程序中有与之对应的程序
             3、在操作系统上编程,必须使用重映射,这也就是stm32不能运行linux的一个最大原因之一
             4、应用程序不能直接进入内核,所以不能直接操作驱动,只能通过copy_to_user 和 copy_from_user 这两个函数,只能出现在驱动中,因为驱动是主动方, 个人猜测 : 驱动可以接收应用程序传来的数据,也可以发送。但是当遇到错误的时候,驱动可以不搭理应用程序,保护自己。
     
            
                
                      
     
     
     
    要有韧性
  • 相关阅读:
    Kudu-Impala集成特性
    [转]IIS的各种身份验证详细测试
    [转]The NTLM Authentication Protocol and Security Support Provider
    [转]WxEmojiView
    [转]Redis 数据类型
    [转]a-mongodb-tutorial-using-c-and-asp-net-mvc
    [转]MongoDB 概念解析
    [转]flash.net.Socket
    [转]emailjs-smtp-client
    [转]jquerUI Dialog中隐藏标题栏的关闭"X"按钮
  • 原文地址:https://www.cnblogs.com/niuxiaojie521/p/11119476.html
Copyright © 2011-2022 走看看