linux 驱动 编译加载 , 程序搬移到目标板,驱动源码和头文件位置
来源:互联网 发布:淘宝vip课程有用吗 编辑:程序博客网 时间:2024/06/04 19:22
1:驱动源码和头文件位置
/linux-2.6.32.2/drivers/char
linux-2.6.32.2/include
linux-2.6.32.2/arch/arm/mach-s3c2410/include/mach/ //这个目录的头文件在make的过程中会被copy到linux-2.6xx/include目录
linux-2.6.32.2/arch/arm/plat-s3c24xx/gpio.c
2:程序搬移到目标板
串口使用命令: mount -t nfs -o nolock 192.168.0.46:/home/hgj /mnt
要注意在服务端开启nfs服务,在 /etc/exports目录设置好共享目录
3:驱动 编译加载
Step1:编辑配置文件Kconfig,加入驱动选项,使之在 make menuconfig的时候出现
打开linux-2.6.32.2/drivers/char/Kconfig文件 修改添加模块名称 ,
保存退出, 这时在 linux-2.6.32.2目录位置运行一下 make menuconfig 就可以在 Device
Drivers Æ Character devices 菜单中看到刚才所添加的选项了,按下空格键将会选择为<M>,
此意为要把该选项编译为模块方式;再按下空格会变为<*>,意为要把该选项编译到内核中,
在此我们选择<M>
Step2:通过上一步,我们虽然可以在配置内核的时候进行选择,但实际上此时执行
编译内核还是不能把 mini2440_hello_module.c 编译进去的,还需要在 Makefile 中把内核配置
选项和真正的源代码联系起来,打开 linux-2.6.32.2/drivers/char/Makefile,添加模块依赖文件,注意模块名称要和在上面的Kconfig文件中
添加的模块名称一致.
Step3:这时回到linux-2.6.32.2源代码根目录位置,执行 make modules,就可以生成
我们所需要的内核模块文件 mini2440_hello_module.ko了
set4:通过nfs服务,把上面的模块文件复制到目标板/lib/modules/2.6.29目录.
set5:然后再板子终端中执行#modprobe mini2440_hello_module . 删除模块为:#rmmod mini2440_hello_module ,显示有哪些:lsmod
step6;模块在应用中调用方法:直接使用/dev/加设备名打开.
比如: int fd = open("/dev/leds", 0); // 打开设备-1;
那么设备名怎么来的呢, 在 驱动的注册函数中定义的:
static struct miscdevice misc = {
.minor = MISC_DYNAMIC_MINOR,
.name = DEVICE_NAME,
.fops = &dev_fops,
};
ret = misc_register(&misc);
- linux 驱动 编译加载 , 程序搬移到目标板,驱动源码和头文件位置
- linux驱动头文件位置和头文件的说明 .
- linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- linux驱动头文件位置查找
- linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- Linux驱动头文件位置的说明
- linux驱动头文件位置的说明
- linux驱动头文件
- 用脚本添加mouseover和mouseout事件
- Java学习笔记(2)----Web项目中解析XML文件
- 关于C++类成员函数的重载、覆盖、隐藏与virtual关键字
- Python操作Mysql
- USB驱动开发(4)--传输USB I/O请求
- linux 驱动 编译加载 , 程序搬移到目标板,驱动源码和头文件位置
- 数据指标累计用户数的使用
- 云计算核心技术剖析学习笔记_1
- 学习Linux二(创建、删除文件和文件夹命令)
- 游戏人工智能 移植到android源码
- 10个常见的 Android 新手误区
- 红黑树及其绘制
- jquery a.js调用b.js的方法
- 基于MFC单文档的汉诺塔动画演示程序,手动输入盘子数