
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式linux驱动入门!教大家一个linux驱动开发的套路我们今日所要说的是驱动编写。现在linux驱动比较流行,主要有几个方面的缘由:1)linux平台免费,无数芯片厂商希翼linux平台支持自己的产品;2)最近平台很火,这在无形之中帮了linux的忙,搞linux驱动的人也开头多了起来;3)还有就是收入了,根据目前基本行情来说,搞driver驱动的收入要比普通的开发工程师的收入要高一些,这可以从聘请网站上得到答案,因此无数伴侣也乐于转到这一行。那么,此时无数伴侣可能就有疑问了,搞芯片驱动设计莫非真的要懂linux吗?其实驱动和linux原来就是两码事。就拿一个lcd来说,我们可以在win
2、dows ce上编写驱动,也可以利用linux framebuffer编写驱动,固然假如是做通信的伴侣,也可以利用vxworks来做驱动。驱动没有限制,但是它也要和详细的操作系统平台联系起来,这样才故意义。固然又有伴侣说了,非要操作系统不行吗?其实不要操作系统也可以,做一个容易的while(1)前后台系统系统也可以,只不过这样开发的效率不高,而且可扩展性不好。既然linux已经为我们把框架都搭好了,我们为什么不行以把它挺直拿来举行利用处理呢?认识linux平台的伴侣都知道。在linux上,全部的设备都可以看成是文件。我们对设备的全部操作基本上都可以简化成open、close、read、writ
3、e、io control这几个操作。至于这几个操作详细做了什么,那就需要我们自己实现了。现在,linux驱动开发过程已经进展得很成熟了,除了无数的demo代码、书籍,网上还有无数的视频可以学习。其中,宋宝华、韦东山的书都很不错。前者偏向于理论多一些,后者的书越发注意于实践部分的内容。说了这么多,大家可能问怎么做好linux驱动的开发工作呢?对于我自己,普通是这么处理的,(01)找两台电脑,一台电脑安装windows系统,另外一台电脑安装linux系统,至于类型没有限制;(02)查看linux系统的版本类型,输入uname -r即可;(03)按照猎取的linux kernel版本,在www.ke
4、上面寻觅合适的kernel版本,挺直用wget下载即可;(04)用tar解压内核版本,将boot下config文件拷贝到本地,输入make menuconfig,挺直保存即可;(05)输入make -j2 & make modules_install & make install即可,系统重启;(06)在linux系统起来后,注重在grub启动的时候挑选刚刚编译的内核版本,这样就可以在linux上开发kernel驱动了;(07)在windows 平台安装securecrt工具,和linux取得衔接;(08)输入下面的代码,分离是hello.c和makefile,
5、其中hello.c内容如下cpp view plain copy1. include2. include3. include4.5. module_license("gpl");6. module_author("feixiaoxing");7. module_description("this is just a hello module!n");8.9. static int _init hello_init(void)10. 11. printk(kern_emerg "hello, initn");12.
6、return 0;13. 14.15. static void _exit hello_exit(void)16. 17. printk(kern_emerg "hello, exitn");18. 19.20. module_init(hello_init);21. module_exit(hello_exit);makefile的内容如下所示cpp view plain copy1. ifneq ($(kernelrelease),)2. obj-m := hello.o3.4. else5. pwd := $(shell pwd)6. kver := $(shell
7、uname -r)7. kdir := /lib/modules/$(kver)/build8. all:9. $(make) -c $(kdir) m=$(pwd) modules10. clean:11. rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions12. endif(09)编译的时候,挺直make即可,固然前提是这两个文件必需在一个名目下;(10)编译后生成hello.ko文件,大家可以把它想象成一个一般的执行文件;(11)假如需要安装,挺直insmod hello.ko即可,输入dmesg | tail 可以看到打印的内容,输入lsmod | grep hello也可以看一下模块是否已经安装;(12)假如删除模块,挺直输入rmmod hello即可,固然添加和删除的操作都需要在root模式下举行操作。所以说,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年对外汉语教师资格证考试汉语教学评价方法研究研究研究试题
- 2025年会计职称考试《初级会计实务》高频考点串联精准解析试卷
- 2025年公务员录用考试证监会计类专业试卷(财务报表分析)
- 2025年胶枪热熔胶项目立项申请报告
- 2025年安全评价师(初级)职业技能鉴定安全法规试题
- 我最喜欢的老师肖像描写9篇
- 2025年澳门特别行政区事业单位招聘考试综合类专业能力测试试卷(法律类)案例分析
- 2025年春季烟花爆竹安全作业特种操作证考试试卷详解与模拟试题集解析
- 2025年一建《机电工程管理与实务》考试易错知识点梳理与解题策略试卷
- 2025年电梯安装维修工(中级)操作技能试题
- 【企业安全管理】粉尘涉爆企业安全培训
- 人教版数学六年级下册期末测试卷及参考答案
- GeneralEnglish-入学测试(剑桥五级)附有答案
- 会议管理系统的分析与设计
- JJF(建材)110-2019水泥雷氏夹膨胀测定仪校准规范-(高清现行)
- 省级土壤样品库实施方案
- 县级课题研究过程记录
- 河南POCT试剂项目投资计划书(模板)
- 2016-2017学年广西桂林市八年级(下)期末数学试卷
- 安川CDBR系列 制动单元 用户手册_图文
- 吊装作业安全规范
评论
0/150
提交评论