嵌入式应用程序设计
2009-8
人民邮电出版社
穆煜 编
273
随着消费群体对产品要求的日益提高,嵌入式技术在机械器具制造、电子产品制造、通信、信息服务等行业领域得到了大显身手的机会,应用日益广泛,相应地企业对嵌入式人才的需求也越来越多。因此近几年来,各高等院校开始纷纷开设嵌入式专业或课程。但是,各院校在嵌入式专业教学建设的过程中几乎都面临教材难觅的困境。虽然目前市场上的嵌入式开发相关书籍比较多,但几乎都是针对有一定基础的行业内研发人员而编写的,并不完全符合学校的教学要求。学校教学需要一套充分考虑学生现有知识基础和接受度的,明确各门课程教学目标的,便于学校安排课时盼嵌入式专业教材。 针对教材缺乏的问题,我们以多年来在嵌入式工程技术领域内人才培养、项目研发的经验为基础,汇总了近几年积累的数百家企业对嵌入式研发相关岗位的真实需求,调研了数十所开设“嵌入式工程技术”专业的高等院校的课程设置情况、学生特点和教学用书现状。通过细致的整理和分析,对专业技能和基本知识进行合理划分,我们编写了这套高等院校嵌入式人才培养规划教材,包括以下5本: 《ARM嵌入式体系结构与接口技术》 《uc/os II嵌入式操作系统》 《嵌入式Linux操作系统》 《嵌入式Linux C语言开发》 《嵌入式应用程序设计》 本套教材按照专业整体教学要求组织编写,各自对应的主干课程之间既相对独立又有机衔接,全套教材具有系统性。《ARM嵌入式体系结构与接口技术》侧重介绍接口技术;在操作系统教材方面,考虑到各院校不同的教学侧重点,编写了uC/OS II和Linux两个版本;考虑到本专业对学生C语言能力要求较高,编写了《嵌入式Linux C语言开发》这本少课时的教材,可供“C语言基础”课程的后续提高课程使用;《嵌入式应用程序设计》介绍了贯穿前面所学知识的实训内容,供“Linux应用开发”课程使用。 本书是其中之一,全书共9章。前8章是对Linux环境下应用开发方法的学习,各章包含相应的实验内容,第9章安排了一个综合实训内容。 第1章为搭建嵌入式Linux开发环境,首先介绍了嵌入式系统的基础知识、ARM处理器的相关知识和$3C2410硬件平台,然后讲解了嵌入式Linux系统中bootloader、内核、文件系统的构建方法。 第2章为文件I/0编程,主要讲解Linux系统调用、Linux文件I/O系统、底层文件I/O操作、嵌入式Linux串口应用编程、标准I/0编程等内容。 第3章为嵌入式Linux多任务编程,主要讲解了Linux环境下的进程控制方法。
本书结合大量实例,讲解了嵌入式Linux应用程序设计各个方面的基本方法,以及必要的核心概念。主要内容包括搭建嵌入式Linux开发环境、文件I/O编程、标准I/O编程、进程控制开发、进程间通信、多线程编程、嵌入式Linux网络编程、Qt图形编程、嵌入式Linux设备驱动等。重视应用是贯穿全书的最大特点,本书在各章和全书结尾分别设置了在项目实践中常见和类似的应用实例。 本书可以作为高等院校嵌入式Linux开发课程的教材,也可供嵌入式开发人员参考。学习本书应具有Linux C语言编程的基本知识。
第1章 搭建嵌入式Linux开发环境 1.1 搭建嵌入式Linux交叉开发环境 1.1.1 嵌入式交叉编译环境搭建 1.1.2 主机交叉开发环境配置 1.2 Bootloader 1.2.1 Bootloader的种类 1.2.2 U—Boot编译与使用 1.2.3 U—Boot移植 1.3 Linux内核与移植 1.3.1 Linux内核结构 1.3.2 Linux内核配置与编译 1.3.3 Linux内核移植的简介 1.4 嵌入式文件系统构建 小结 思考与练习第2章 嵌入式文件I/O编程 2.1 Linux系统调用及用户编程接口 2.1.1 系统调用 2.1.2 用户编程接口 2.1.3 系统命令 2.2 Linux文件I/O系统概述 2.2.1 虚拟文件系统 2.2.2 Linux中文件及文件描述符 2.3 底层文件I/O操作 2.3.1 基本文件操作 2.3.2 文件锁 2.3.3 多路复用 2.4 嵌入式Linux串口应用编程 2.4.1 串口编程基础知识 2.4.2 串口配置 2.4.3 串口使用 2.5 标准z I/O编程 2.5.1 基本操作 2.5.2 其他操作 2.6 实验内容 2.6.1 文件读写及上锁 2.6.2 多路复用式串口操作 小结 思考与练习第3章 嵌入式Linux多任务编程 3.1 Linux下多任务机制的介绍 3.1.1 任务 3.1.2 进程 3.1.3 线程 3.2 进程控制编程 3.2.1 进程编程基础 3.2.2 Linux守护进程 3.3 实验内容 3.3.1 编写多进程程序 3.3.2 编写守护进程 小结 思考与练习第4章 嵌入式Linux进程间通信 4.1 Linux下进程间通信概述 4.2 管道通信 4.2.1 管道简介 4.2.2 无名管道系统调用 4.2.3 标准流管道 4.2.4 有名管道 4.3 信号通信 4.3.1 信号概述 4.3.2 信号发送与捕捉 4.4 信号量 4.4.1 信号量概述 4.4.2 信号量编程 4.5 共享内存 ……第5章 嵌入式Linux多线程编程第6章 嵌入式Linux网络编程第7章 Qt图形编程第8章 嵌入式Linux设备驱动编程第9章 Qt聊天项目设计参考文献
1.进程的基本概念 进程是指一个具有独立功能的程序在某个数据集合上的一次动态执行过程,它是系统进行资源分配和调度的基本单元。一次任务的运行可以并发激活多个进程,这些进程相互合作来完成该任务的一个最终目标。 进程具有并发性、动态性、交互性、独立性和异步性等主要特性。 (1)并发性:指的是系统中多个进程可以同时并发执行,相互之间不受干扰。 (2)动态性:指的是进程都有完整的生命周期,而且在进程的生命周期内,进程的状态是不断变化的,另外进程具有动态的地址空间(包括代码、数据和进程控制块等)。 (3)交互性:指的是进程在执行过程中可能会与其他进程发生直接和问接的交互操作,如进程同步和进程互斥等,需要为此添加一定的进程处理机制。 (4)独立性:指的是进程是一个相对完整的资源分配和调度的基本单位,各个进程的地址空问是相互独立的,只有采用某些特定的通信机制才能实现进程之间的通信。 (5)异步性:指的是每个进程都按照各自独立的、不可预知的速度向前执行。 进程和程序是有本质区别的:程序是静态的一段代码,是一些保存在非易失性存储器的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程,它是程序执行和资源管理的最小单位。 Linux系统中包括下面几种类型的进程。 (1)交互式进程:这类进程经常与用户进行交互,因此要花很多时间等待用户的交互操作(键盘和鼠标操作等)。当接收到用户的交互操作之后,这类进程应该很快被运行,而且响应时间的变化也应该要小,否则用户觉得系统反应迟钝或者不太稳定。典型的交互式进程有命令进程、文本编辑器和图形应用程序运行等。
《嵌入式应用程序设计》讲了嵌入式学院是华清远见在6年高端嵌入式人才培养的基础上倾力打造的“嵌入式领域就业优势倍增”项目,学院充分整合行业经验及专业优势,并借助自身丰富的合作企业资源及专业、科学的实训体系,帮助合作院校时刻紧跟嵌入式行业用人需求的最新趋势,引导毕业生在知识结构上更好地实现与企业真实需求的对接,从而有效提高其就业竞争优势,顺利进入嵌入式专业领域。华清远见嵌入式学院将继续专注于为更多希望从事嵌入式行业工作,但又缺乏相关经验的人员提供更专业的嵌入式实训课程,培养出更多合格的嵌入式人才,以促进行业的健康、持续发展。 《高等院校嵌入式人才培养规划教材》系列教材 ●ARM嵌入式体系结构与接口技术 ●uc/Os II嵌入式操作系统 ●嵌入式Linux操作系统 ●嵌入式lJinux C语言升发 ●嵌入式虚用程序设计 本套教材按照专业整体教学要求组织编写,各自对应的主干课程之间既相对独立又有机衔接,整套教材具有系统性。
书本比较新,OK
系统性很强~~~适合中高级嵌入式程序员~~~~~
读完后,感觉本书不适合初学者,要求读者至少要有较好的C语言基础;Linux常用命令、操作较熟练;而且要有一定的操作系统系统基础以及网络知识,否则读起来很郁闷。感觉很多时候书上说“因此”,但是原因说得非常简陋,对各种重要的机制讲解得非常不详细,倒是很多程序占用了非常大的篇幅,但是程序本身又非常简浅。所以阅读本书的门槛不是很低,但如果你基础已经达到了阅读本书的门槛,那么再来读本书,感觉又觉得深度不够!可能是因为自己水平的问题,仅写下自己感受,一孔之见,不可深究!