欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

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

    • 资源ID:2392540       资源大小:21KB        全文页数:4页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    精华 嵌入式LINUX应用开发完全手册一书作者:韦东山() 的部分备课笔记- 特别说明:此文章的原始出处以下文章是华清远见深圳培训中心嵌入式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目录下是各种驱动程序,大家可以看到,名字是五花八门,很多都没听说过。我们今天的重点在字符设备,它们在driverschar目录下。很多芯片的驱动程序都放在这里。这里先插说一下,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: register_chrdev = register_chrdev_region & cdev_add 字符驱动:1. 框架:知道怎么填充2. 知道怎么传送数据:copy_form_user, copy_to_user 3. 知道怎么操作硬件: ioremap 1. 框架:知道怎么填充21页,填充file_operations结构,对应应用程序的open,read,write,ioctl函数2. 知道怎么传送数据:copy_form_user, copy_to_user 33页,地址的映射也说一说3. 知道怎么操作硬件: ioremap 典型分析:例子不好,自己做一个?地址的映射也说一说4. 休眠(有中断)、poll、select、信号、异步通知5. 同步、互斥、阻塞、睡眠母亲怎么才能知道房间里的孩子醒了?陪他,在旁边休息:休眠不时进去看他:POLL 等他哭:异步通知POLL、SELECT 57页需要说明的是,poll_wait函数并不阻塞,程序中poll_wait(filp, &outq, wait)这句话的意思并不是说一直等待outq信号量可获得,真正的阻塞动作是上层的select/poll函数中完成的。select/poll会在一个循环中对每个需要监听的设备调用它们自己的poll支持函数以使得当前进程被加入各个设备的等待列表。若当前没有任何被监听的设备就绪,则内核进行调度(调用schedule)让出cpu进入阻塞状态,schedule返回时将再次循环检测是否有操作可以进行,如此反复;否则,若有任意一个设备就绪,select/poll都立即返回。自旋锁 43页spinlock_t spin spin_lock_init(lock) spin_lock(lock) spin_trylock(lock) spin_unlock(lock) 信号量 45页与自旋锁不同的是,当获取不到信号量时,进程不会原地打转而是进入休眠等待状态通 知近期的课程已经讲完了ARM,进入了U-BOOT移植,相对这部分的课程是比较难理解和掌握的,若没有掌握和利用合适自己的学习方法,学习的压力会很大,所以近期大家都有不同程度的烦躁情绪。为了帮助大家更快、更好的掌握学习方法,我们请了几位学习较好的师兄回来,给我们讲授一下他们的学习方法和感受,2010年11月7日下午2:00(星期天)在本班教室进行一次新老学员交流会,届时可以向师兄们请教他们的学习方法,有很好的借鉴意义,请大家相互通知并准时参加!特此通知! 深圳华清远见嵌入式培训中心 2010年11月3日星期三

    注意事项

    本文(《嵌入式LINUX应用开发完全手册》.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开