《嵌入式LINUX应用开发完全手册》-韦东山.docVIP

《嵌入式LINUX应用开发完全手册》-韦东山.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《嵌入式LINUX应用开发完全手册》-韦东山.doc

[精华] 《嵌入式LINUX应用开发完全手册》一书 作者韦东山() 的部分备课笔记 ---------------------------------------------------------------------------------------------------------------------- 特别说明: 此文章的原始出处/sz_farsight 以下文章是华清远见深圳培训中心《嵌入式LINUX应用开发完全手册》一书作者韦东山() 的部分备课笔记,笔记语言比较风趣,比较好玩,此文档欢迎转载,但转载请保留相应个人信息及此段说明,谢谢! ---------------------------------------------------------------------------------------------------------------------- 第1天 1.入门介绍 大家好,这两天我们将一起度过。我叫韦东山,韦小宝的韦,东方的东,高山的山,大家直接叫我名字就可以了,也别叫我老师。可能比你们都大上几年,在LINUX方面比你们早入门了几年门。今天有幸来讲第一节课,我很乐意帮助大家解决一些入门问题。当然,入门问题也有很难的问题,回答不上请大家见谅,等我下班后,回到家,找到了答案再告诉大家。 好了,下面开始我们的课程。大家的基础各不相同,所以我只能假定大家第一次接触LINUX的驱动编写。其实LINUX系统的一些原理,跟人类社会很有相通之处,那就分层分工,各司其职。假设你是一个集团的老总,下面有很多子公司。那你想了解公司的运营情况时,是不可能去实地考察每个公司的。那怎么办?只能看每个子公司的财务报表。 打开报表==>阅读报表,嗯,明白了==>批示、下发。 报表怎么来的呢?老总可不管,都是由底下的人弄好的;批示怎么执行的呢?老总也不管,都是由底下的人做的。这些“底下的人”,就是“驱动人员” 回到我们的LINUX系统,我们控制电路板上的LED,怎么办呢?同样: 打开LED文件==>写数据到文件==>LED亮、灭,这个文件怎么来的?写数据到这个文件后,LED怎么就会亮、灭?这些工作,就是“驱动人员”做的。 上层只管:open, read, write,其他的不管;我们就是提供可以read/write的文件,他们read时,我们提供数据;他们write时,我们执行指令。 现在看看这个PPT,user space就是老总,就是用户;VFS就是这套open, read, write接口;DEVICE DRIVER就是我们写的驱动程序。 当然了,整个LINUX系统还可以细分,看看前一页PPT,里面涉及进程管理、内存管理、文件系统支持、设备控制、网络等等。 我的观点是:先了解总体概念,然后用到什么再深入学习什么。方向太多,会累死人的。 (PPT翻到第5页LINUX内核源码树,并在电脑上打开内核顶层目录),稍稍讲解各目录的内容。 Kernel目录是内核的核心,比如sched.c实现进程的调度,signal.c里是信号的处理函数,fork.c实现进程的复制、创建等 Drivers目录下是各种驱动程序,大家可以看到,名字是五花八门,很多都没听说过。我们今天的重点在字符设备,它们在drivers\char目录下。很多芯片的驱动程序都放在这里。 这里先插说一下, LINUX内核功能多,所支持的芯片多,从软盘、硬件、光盘到声卡、网卡等等,支持的文件系统也多,比如有FAT16、FAT32、EXT2、EXT3,还有在嵌入式系统里用的JFFS2、YAFFS等。对于某个产品来说,是不可能全部用到这些功能的,所以要在LINUX内核里把不需要的功能裁剪掉。 同学们有没有自己配置过内核?make menuconfig,然后在菜单里选择、修改就可以了:Y表示这个模块被编译进内核去,M表示编译为一个可加载模块,用到的时间再加载,或称为安装。 Make menuconfig的结果都存在内核根目录下的.config里,=y表示对应的功能被编译进内核去、=m表示单独编译为一个模块 在make menuconfig里,怎样才能知道哪个选项对应哪个模块?在内核源码里,怎样才能知道哪些文件对应哪个模块? 在make menuconfig里,可以按h键知道它的配置名是什么; 可以用“/配置名”查找到文字解释是什么 在内核目录下grep 来找到对应哪些文件 12页的“模块编译与装/卸载”在编写驱动时再说 2. 驱动分类: 我们下面就讲解驱动了,不过我们先了解一下为什么要写驱动。以前我们说过了,这个社会是分层分工,各司其职。因为人的精力是有限的, Module_init linux/init.h fs/dchar_dev.c

文档评论(0)

aiwendang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档