嵌入式Linux应用程序开发详解(完整版)

所需积分/C币:11 2017-08-13 20:27:07 9.81MB PDF
81
收藏 收藏
举报

嵌入式Linux应用程序开发详解(完整版)
目录3 38实验内容…………………………98 3.81Ⅵ使用练习 38,2用Gdb调试有问题的程序 3.8.3编写包含多文件的 Makefile……………101 384使用 autotools生成包含多文件的 Makefile 本章小结 105 思考与练习…… ………105 穹4章嵌入式系统基础 ……106 4.1嵌入式系统概述……… ……………106 41.1嵌入式系统简介… ………106 41.2嵌入式系统发展历史… 413嵌入式系统的特点…… “·;。 108 414嵌入式系统的体系结构…… 108 4.1.5几种主流嵌入式操作系统分析… 4.2ARM处理器硬件开发平台…… 42.1ARM处理器简介 111 42.2ARM体系结构简介…… 113 4.2.3ARM9体系结构……… ………113 42.4S3C2410处理器详解 116 4.3嵌入式软件开发流程… 121 43.1嵌入式系统开发概述……… 121 43.2嵌入式软件开发概述…… 122 44实验内容—使用JTAG烧写 NAND Flash 128 本章小结 思考与练小… 132 穹5章嵌入式Liux开发环境的搭建…… 133 5.1嵌入式开发环境的搭建 5.1.1嵌入式交又编译环境的搭建· …133 51.2超级终端和 Minicom配置及使用 135 5.1.3下载映像到开发板 5.1.4编译嵌入式 Linux内核… 145 51.5 Linux内核目录结构…………… 1,单 149 51.6制作文件系统…… 52U-Boot移植…… …153 52.1 Bootloader介绍……… …………153 5.22U-Boot概述… 52.3U-Boot源码导读 156 4长入式nx应用程序开发详解一 524U-Boot移植主要步骤………………………163 52.5U-Boot常见命令… 53实验内容——移植 Linux内核 164 木章小结……… ………………165 思考与练习 165 6章文件0编程…………… 6.1Iinuⅸx系统调用及用户编程接口(API) 6.1.1系统调用 6.1.2用户编程接口(API) 167 613系统命令……… ………167 6,2Linuⅸx中文件及文件描述符概述……… 168 6.3不带缓存的文件IO操作… “·;。 6.3.1 168 6.3.2read、 write和 Iseek……………… ………170 6.3.3 fentI… ……173 6.3.4 select…… 178 64嵌入式 Linux串口应用开发 183 64.1串口概述 183 642串口设置详解……… 184 64.3串口使用详解… 191 65标准IO开发 194 6.5.1打开和关闭文件 …194 6.52文件读写…… ……………197 6.5.3输入输出… 66实验内容…………… 201 6.6.1文件读写及上锁 201 66,2多路复用式串口读写 木章小结… 207 思考与练习… 207 穹7章进程控制开发 208 7.1 Linux下进程概述…… 208 7.1.1进程相关基本概念………………… 1,单 208 7.1.2 Linux下的进程结构 ··+······ 7.1.3 Linux下进程的模式和类型 ……210 7.14Linuⅸx下的进程管理…… 211 7.2 Linux进程控制编程…… 2 7.3 Linux守护进程 224 目录5 7.3.1守护进程概述………………………………224 7.3.2编写守护进程… 224 7.3.3守护进程的出错处理 229 74实验内容…… ·*·· ………………232 74.1编写多进程程序 232 74.2编写守护进程 235 本章小结… 238 思考与练 g8章进程间通信 ·面“ ………………240 8. Linux下进程间通信概述 …240 8.2管道通信 24l 82.1管道概述…………… “·;。 822管道创建与关闭… 242 8.23管道读写 …………244 8.2.4标准流管道 8.2.5FIFO… 249 8.3信号通信 253 8.3.1信号概述 8.3,2信号发送与捕捉· 255 833信号的处理 258 84共享内存………… 264 84.1共享内存概述 264 842共享内存实现 ……………265 8.5消息队列…… 267 8.5.1消息队列概述 267 8.52消息队列实现… 86实验内容 272 86.1管道通信实验 …272 862头享内存实验 275 本章小结 思考与练习…… 278 穹9章多线程编程……………… 27 9 9.1 Linux下线程概述 ··+······ 279 9.1.1线程概述… ……279 91.2线程分类 ………………280 91.3 Linux线程技术的发展 ………280 92Linuⅸx线程实现… 6献入式手mx感里程序开发详解一- 921线程基木操作……………………………………281 922线程访问控制 288 93实验内容—“生产者消费者”实验 298 木章小结………… ·,· ………………302 思考与练习 303 10章嵌入式 Linux网终编程…… 10.1TCP/P协议概述 10.1.1OSI参考模型及TCPP参考模型… 304 10.1.2TCP/P协议族… 305 10.1.3TCP和UDP ……306 10.2网络基础编程…… 308 10.2.1 socket概述 “·;。 308 10.22地址及顺序处理 309 10.2.3 socket基础编程 314 10.3网终高级编程 ………………322 10.4ping源码分析· 326 10.41ping简介 326 10.4.2ping源码分析 327 0.5实验内谷—NTP协议实现 345 本章小结 352 思考与练习… 352 穹1l章嵌入式Lix设备驱动开发 353 11.1设备驱动概述… 353 11.1.1设备驱动简介及驱动模块 ……353 111.2设备文件分类 …………………354 111.3设备号 …355 11.1.4驱动层次结构……………………… 355 111.5设备驱动程序与外界的接口 355 11..6设备驱动程序的特点 356 1.2字符设备驱动编与 356 113LCD驱动编写实例…… 363 113.1LCD工作原理……………… 1,单 36 11.3.2LCD驱动实例 ··+······ 365 11.4块设备驱动编写 114.1块设备驱动程序描述符 ………………374 11.4.2块设备驱动编写流程… ……375 1.5屮断编程……… 381 目录7 11.6键盐驱动实现 ………………………………382 116.1键盘工作原理 382 11.6.2键盘驱动综述 11.6.3键盘驱动流程………………………………384 117实验内容—sku!驱动 本章小结 398 思考与练习………… …………399 穹12章Qt图形编程… ……400 12.1嵌入式GUI简介……… …………400 12.1.1 Ot/Embedded… ……40l 12.1.2 Minigui. 12..3 Microwindows、 Tiny X等 “·;。 …402 12.2 Qt/Embedded开发入门 40 1221 QtEmbedded介绍 …………402 122.2Qt/ Embedded信号和插槽杌制 …………………405 12.2.3搭建 Qt/Embedded开发环境 1224 Qt/Embedded窗口部件 122.5 Qt/Embedded图形界面编程… 414 12.2.6 Qt/Embedded对话框设计 12.3实验内容——使用Qt编写“Helo, World”程序… 420 本章小结 428 华清远见——嵌入式培训专家htp/www.farsight.com.cn “黑色经典”系列之《嵌入式 Linux应用程序开发详解》 FARVIGHT 第1章 Linux快速人门 本章目标 嵌入式Iinx是以Iinx为基础的操作系统,只有对Iinx系统有了较为熟练的使用之 后,才能在揪入式Lm开发领域得心应手通过本章的学习,读者能够掌握如下内容 能够独立安装 Linux操作系统 能够熟练使用 Linux系统的基木命令 认识 Linux系统启动过程 能够独立在Iinⅸ系统中安装软件 能够独立设置 Linux环境变量■ 能够独立定制 Linux服务 华清远见<嵌入式 Linux应用开发班>培训教 华清远见入式培训专家tt: wWfarsi ght. com.cn 1.1嵌入式 Linux基础 随着摩托罗拉手机A760、IBM智能型手表 WatchPad、复普 PDA Zaurus等一款款高性能 智能数码产品”的出现,以及 Motorola、三星、 Monta vista、飞利浦、 Nokia、IBM、SUN 等众多国际顶级巨头的加入,嵌入式 Linux的队伍越来越庞大了。在通信、信息、数字家庭 工业控制等领域,随处都能见到嵌入式 Linux的身影。根据美国ⅴDC( Venture Development Co.)统计数据显示,嵌入式 Linux的市场规模从2001年的5520万美元,到2006将会增长 至3.46亿美元,在未来两年将占嵌入式操作系统市场份额的50% 究竟是什么原因让嵌入式Linⅸx发展如此迅速呢?又究竞是什么原因让它能与强刭的 Vxworks、 Window ce相抗衡呢?这一切还是要归根于它的父亲—Iinuⅸ的功劳。可以说,嵌入 式 Linux正是继承和发展」 Linux的诱人之处才走到今天的,而LinuⅨ也正是有了嵌入式 Linux的 广泛应用才使其更加引人瞩目。以下就从Linuⅸx开始,一层层揭开嵌入式Linuκ的面纱。 1.1.1 Linux发展概述 简单地说,Iinx是指一套免费使用和自由传播的类UNX操作系统。人们通常所说的 inux是指 Linus torvalds所写的Linuⅸx操作系统內核。 当时的 Linus还是芬兰赫尔辛基大学的一名学生,他主修的课程中有一门课是操作系统, 而且这门课是专门硏究程序的设计和执行。最后这门课程提供了一和称为 Minix的初期UNIX 系统。Mix是款仅为教学而设计的操作系统,而且功能有限。因此,和 Minix的众多使 用者一样, Linus也希望能给它添加一些功能。 在之后的几个月里, Linus根据实际的需要,编写了磁盘驱动程序以便下载访问新闻组 的文件,又写了个文件系统以便能够阅读 Minix文件系统中的文件。这样,“当你有了任务切 换,有了文件系统和设备驱动程序后,这就是UNIX,或者至少是其内核。”于是,0.0.1版本 的 Linux就诞生了。 Linus从一开始就决定自由传播Linx,他把源代码发布在网上,丁是,众多的爱好者和 程序员也都通过互联网加入到 Linux的内核开发工作中。这个思想与FSF( Frcc softwarc Foundation)资助发起的GNU(GNU’ s Not uniX)的自由软件精神不谋而合。 GNU是为∫推广自由软件的精神以实现一个自由的操作系统,然后从应用程序开始,实 现其内核。而当时 Linux的优良性能备受GNU的赏识,于是GNU就决定采用 Linus及其开 发者的内核。在他们的共同努力下, Linux这个完整的操作系统诞生了。其中的程序丌发共 同遵守 General Public license(GPL)协议,这是最开放也是最严格的许可协议以方式,这个协 议规定了源码必须可以无偿的荻取并且修改。因此,从严格意义上说, Linux应该叫做 GNU/Linux,其中许多重要的工具如gcc、gdb、make、 Emacs等都是GNU贡献 这个“嘤儿版”的操作系统以平均两星期更新一次的速度迅速成长,如今的 Linux已经 有超过250种发行版本,且可以支持所有体系结构的处理器,如X86、 PowerPC、ARM、 XSCALE等,也可以支持带MMU或不带MMU的处理器。到目前为止,它的内核版木也凵 经从原先的001发展到现在的26xx。 华清远见<嵌入式 Linux应用开发班>培训教 《嵌入式 Linux应用程序开发详解》——第1章、 Linux快速入门 自由软件( free software)中的free并不是指免费,而是指自曰。它赋予使用者四种自由 自由之一:有使用软件釣自由 自由之二:有研究该软件如何运作的自由,并且得以改写该软件来符合便用者自身的需求 取得该软件的源碼是达成此目的前提 ·自由之三:有重新散布该软件的自由,所以每个人都可以藉由散布自由软件来敦亲睦另。 ·自由之四:有改善再利用该软件的自由,并且可以发表改写版供公众使用,如此一来,整 小知识个社群都可以受惠。如前项,取得该软件的源码是达成此目约前提 GPL:GPL协议是GNU组织、维护的一种版权协议,遵守这个协议的软件可以自由地获取 查看、使用其源代码。GPL协议是整个开源世界的精神基础 Linux的内核版本号 Linux内核版号格式是 Xy.Zz-www,数字ⅹ代表版本类型,数字y为偊数时是稳定版本,为 奇数时是开发版本,如20.40为稳定版本,2.3.42为开发版本,测试版太为3个数字加上测试 号,如24.12-c1。最新的 Linux内核版本可从 ernel org上获得 1.12 Linux作为嵌入式操作系统的优势 从Linuκ系统的发展过程可以看出, Linux从最开始就是一个开放的系统,并且它始终 遵循着源代码开敚的原则,它是一个成熟而稳定的网络操作系统,作为嵌入式操作系统有如 下优势。 1.低成本开发系统 Linux的源码开放性允许任何人可以获取并修改 Linux的源码。这样一方面大大降低了 开发的成本,另一方面又可以提高开发产品的效率。并且还可以在 Linux社区屮获得支持 用户只需向邮件列表发封邮件,即可获得作者的支持。 2.可应用于多种硬件平台 Linux可支持X86、 PowerPC、ARM、 XSCALE、MPS、SH、68K、 Alpha、 SPARO等 多种体系结构,并且已经被移植到多种硬件平台。这对于经费、时间受限制的研究与开发项 目是很有吸引力的。 Linux采用个统的框架对硬件进行管坦,同付从个硬件平台到另 一个硬件平台的改动与上层应用无关。 3.可定制的内核 Linuⅹ具有独特的内核模块机制,它可以根据用户的需要,实时地将某些模块插入 到内核中或者从内核中移走,并能根据嵌入式设备的个性需要量体裁衣。经裁减的Liux 内核最小可达到150KB以下,尤其适合嵌入式领域中资源受限的实际情况。当前的2.6 内核加入了许多嵌入式友好特性,如构建用于不需要用户界面的设备的小占板面积內核 选项。 华清远见<嵌入式 Linux应用开发班>培训教材

...展开详情
试读 127P 嵌入式Linux应用程序开发详解(完整版)
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
上传资源赚积分or赚钱
最新推荐
嵌入式Linux应用程序开发详解(完整版) 11积分/C币 立即下载
1/127
嵌入式Linux应用程序开发详解(完整版)第1页
嵌入式Linux应用程序开发详解(完整版)第2页
嵌入式Linux应用程序开发详解(完整版)第3页
嵌入式Linux应用程序开发详解(完整版)第4页
嵌入式Linux应用程序开发详解(完整版)第5页
嵌入式Linux应用程序开发详解(完整版)第6页
嵌入式Linux应用程序开发详解(完整版)第7页
嵌入式Linux应用程序开发详解(完整版)第8页
嵌入式Linux应用程序开发详解(完整版)第9页
嵌入式Linux应用程序开发详解(完整版)第10页
嵌入式Linux应用程序开发详解(完整版)第11页
嵌入式Linux应用程序开发详解(完整版)第12页
嵌入式Linux应用程序开发详解(完整版)第13页
嵌入式Linux应用程序开发详解(完整版)第14页
嵌入式Linux应用程序开发详解(完整版)第15页
嵌入式Linux应用程序开发详解(完整版)第16页
嵌入式Linux应用程序开发详解(完整版)第17页
嵌入式Linux应用程序开发详解(完整版)第18页
嵌入式Linux应用程序开发详解(完整版)第19页
嵌入式Linux应用程序开发详解(完整版)第20页

试读结束, 可继续阅读

11积分/C币 立即下载 >