嵌入式Linux系统开发——基于ARM处理器通用平台/高等学校电子信息类专业系列教材

嵌入式Linux系统开发——基于ARM处理器通用平台/高等学校电子信息类专业系列教材 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
冯新宇 著



点击这里下载
    


想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-11-22

类似图书 点击查看全场最低价

图书介绍

出版社: 清华大学出版社
ISBN:9787302482192
版次:1
商品编码:12207243
包装:平装
开本:16开
出版时间:2017-09-01
用纸:胶版纸
页数:392
字数:621000
正文语种:中文


相关图书





图书描述

编辑推荐

  嵌入式系统的知识体系庞大,在授课学时不断减少的背景下,要根据不同专业对嵌入式课程体系进行具体的设计。对于嵌入式教学存在的种种弊端,应做到“因课施教”。嵌入式学习必须配合实践,这是因为实践可以激发学习兴趣,提高学习能力,而且有助于检验学习效果。正是在这种背景下,笔者在总结教学团队的丰富教学经验的基础上,从嵌入式操作系统开发的工程实践出发,将操作系统安装、操作系统开发、Linux高级编程、底层驱动等内容有机地结合在一起,构建起嵌入式系统开发的完整过程。力争从实际应用角度出发,培养逻辑思维和创新思维能力,提高分析、解决实际工程问题的能力。

  (1)从零开始,轻松入门系统阐述理论的同时,兼顾内容的实用性和可读性,从C语言入手,便于理解和运用。

  (2)经典实例,清晰直观从Linux基本操作入手,以VI、GCC、高级编程为主线,直到系统驱动开发,均给出了丰富的实例,并给出了实例的完整代码和运行结果,注重实例的科学分析方法,并妥善处理好知识点与实例的有效衔接。

  (3)图文并茂,操作简单根据读者认识和学习嵌入式开发的规律编排内容,将数学工具工程化,将抽象问题形象化,将复杂问题简单化,将零散问题系统化,并给出笔者理解的“标签”。

  (4)教学课件配书教案(PPT)可到清华大学出版社网站本书页面下载。

  (5)学习辅导书中配套代码,开发环境,读者可通过QQ群获取并在线学习答疑。


内容简介

  本书系统论述了基于ARM处理器的嵌入式Linux系统开发的原理、方法与实践。全书共15章,分别介绍了嵌入式Linux系统管理、Linux编程基础、Linux高级编程、Linux内核开发、Linux系统移植和Linux驱动程序开发等。  本书内容吸收了作者在Linux系统教学、科研和实际项目研发中的经验,实践性强。在内容编排上,按照读者学习的一般性规律,结合大量实例论述,能够使读者高效地掌握嵌入式Linux系统的基本原理和应用方法。本书既可以作为高等院校相关专业的教材,也可以作为从事嵌入式系统开发人员的参考用书。

作者简介

  作者简介  冯新宇黑龙江科技大学副教授,长期从事嵌入式系统项目开发和相关教学工作。曾主持或参与嵌入式相关课题和项目开发20余项;近10年来一直作为指导教师参与全国电子设计大赛、飞思卡尔电子设计大赛、黑龙江省电子设计大赛等工作,所指导的学生多次获得各种赛事重大奖励。代表性著作有《ADS2009射频电路设计与仿真》、《四旋翼无人飞行器设计》与《ARMCortex-M3体系结构与编程》。

目录

第1章Linux概述与系统管理11.1嵌入式系统概述11.1.1嵌入式系统的发展历史11.1.2嵌入式系统的特点21.1.3嵌入式系统的体系结构21.1.4典型嵌入式系统介绍31.2嵌入式Linux基础41.2.1Linux发行版本41.2.2Linux定制安装61.3Linux常用命令181.3.1系统管理相关命令181.3.2文件管理相关命令191.3.3备份压缩相关命令251.3.4网络通信相关命令261.3.5其他常用命令301.4服务器配置341.4.1samba服务器341.4.2NFS服务器381.4.3TFTP服务器40习题与练习42第2章Linux脚本编程432.1常用shell命令432.2脚本编写基础442.2.1特殊字符442.2.2变量和参数462.2.3退出和退出状态482.3流程控制492.3.1条件测试492.3.2操作符相关主题512.3.3循环控制532.3.4测试与分支55习题与练习58第3章Linux编程基础593.1编辑器介绍593.1.1vi介绍593.1.2vi的各模式功能键603.2程序编译与调试633.2.1gcc编译流程643.2.2gcc编译选项分析643.2.3gdb程序调试69习题与练习75第4章C语言进阶764.1C语言的基本知识764.2数据类型774.2.1常量和变量784.2.2进制784.2.3字符794.2.4转义符与字符集794.2.5类型转换794.2.6输入输出824.2.7运算符834.3控制语句864.3.1分支语句864.3.2循环语句884.4数组与字符串974.4.1数组的定义974.4.2数组本质探讨984.4.3一维数组和二维数组994.4.4字符串1014.5函数1034.5.1函数的定义1034.5.2函数的深度剖析1034.5.3函数的作用剖析1044.6指针1084.6.1指针的本质1084.6.2连续空间的内存地址1084.6.3指针变量1094.6.4指针数组和指针的指针1114.6.5函数和指针1154.7预处理指令1194.7.1宏定义1204.7.2#include1214.7.3条件编译121习题与练习123第5章文件I/O编程1245.1文件和目录1245.2目录操作1265.3文件操作1345.3.1基本概念1345.3.2检查文件及确定文件的权限1365.3.3创建文件1375.3.4打开文件1385.3.5关闭文件1395.3.6删除文件1405.3.7文件指针移动1425.3.8其他常用函数1455.4设备控制1485.5Linux时间编程1595.5.1取得目前的时间1595.5.2取得目前时间和日期1605.5.3取得当地目前时间和日期1615.5.4将时间结构数据转换成经过的秒数1625.5.5设置目前时间1625.5.6取得当前时间1635.5.7将时间和日期以ASCII码格式表示1645.5.8将时间和日期以字符串格式表示164习题与练习165第6章进程控制1666.1进程控制概述1666.1.1进程的定义1666.1.2进程控制块1676.1.3分配进程描述符1686.1.4进程的创建1686.1.5进程状态1696.1.6进程调度1716.1.7虚拟内存1726.1.8文件锁1726.2进程控制编程1736.2.1创建进程1736.2.2进程终止1816.2.3守护进程186习题与练习187第7章进程间通信1887.1进程间通信概述1887.2管道通信1907.2.1无名管道1907.2.2有名管道1927.2.3标准流管道1957.3消息队列1967.3.1键值1967.3.2打开/创建消息队列1977.3.3发送消息1977.3.4接收消息1987.3.5消息控制1987.4信号2017.4.1信号处理的方式2017.4.2信号操作指令2017.5信号量2077.5.1信号量创建2087.5.2信号量操作2087.6内存共享2147.6.1共享内存创建2147.6.2共享内存的操作2167.6.3共享内存段连接到本进程空间2167.6.4共享内存解除217习题与练习220第8章多线程技术2218.1Linux多线程概念2218.2Linux线程实现2228.2.1线程创建2228.2.2线程退出2248.2.3线程等待2268.2.4线程标识获取2288.2.5线程清除2298.3线程函数传递及修改线程的属性2328.3.1线程函数传递2328.3.2绑定属性2358.3.3分离属性2368.3.4优先级属性2378.3.5线程的互斥2398.3.6线程的同步2418.3.7信号量243习题与练习245

精彩书摘

  学习Linux环境高级编程,首先学习的是文件的操作。因为有一句很有趣的话“Linux下一切皆文件”。所以掌握了文件操作的方法,也就算摸到了门路。  5.1文件和目录  首先直观地感受一下,在终端下输入命令ls-l,如图5-1所示。  图5-1文件目录  图5-1的前2行为  drwxr-xr-x2rootroot40962015-06-251111  -rw-r--r--1rootroot02015-06-2511.c  1.drwxr-xr-x  drwxr-xr-x代表的是文件类型和文件权限。常用的文件类型有:  (1)-:普通文件,存各种数据。  (2)d:目录文件,存结构体,结构体内部标识这个目录中的文件名称等信息。  (3)l:链接文件,需要注意的是,软链接才是文件,而硬链接仅仅是一节点。  (4)c:字符设备,除了块设备都是字符设备,没有扇区的概念。  (5)b:块设备,所有存储类的驱动都称为块设备,包含扇区处理。  (6)p:管道设备,是用内核内存模拟的通道。  从上述说明可以看出,例子中的文件是一个目录文件,原因是第一个符号代表文件类型,d代表此文件是一个目录文件。  2.文件权限  文件权限有:  (1)r为读,二进制权重为100,即4。  (2)w为写,二进制权重为010,即2。  (3)x为执行,二进制权重为001,即1。  (4)-为无操作,二进制权重为0。  (5)rwx的顺序不可改,表示可读可写可执行。  (6)-wx表示不能读,可写可执行。  上述就是文件权限的表示方法,文件权限是用八进制来表达的,如果一个文件有全部的权限,那么对应八进制里的数是7(4+2+1)。同时读者会发现有多组rwx,它所表达的不仅仅是它自身的权限。这里涉及一个分组的概念。  (1)u组:创建者(user);  (2)g组:创建者所在组的成员(group);  (3)o组:其他人所具备的权限(other)。  也就是说,例子中的三组rwx都是依照上述顺序来说明权限的。例子里的文件权限就是:创建者可读可写可执行,所在组的成员可读可执行,其他成员可读不可写不可执行。  3.2  图中文件类型和权限之后是数字2,这个2表示的是文件节点数,也就是说,此文件是一个目录文件。所以,目录的节点数代表该目录下的文件个数,在这里应该是有两个文件。如果此文件不是目录,只是普通文件,那么这个数字就代表硬链接的个数。关于链接的几点说明如下:  (1)链接分为硬链接和软链接(符号链接,即快捷方式)。  (2)硬链接,只是增加一个引用计数,本质上并没有物理上的增加文件。硬链接不是文件。  (3)符号链接,是在磁盘上产生一个文件,这个文件内部写入了一个指向被链接的文件的指针。  (4)采用ln指令,用来在文件之间创建链接,默认为创建硬链接(目录不能创建硬链接),使用选项-s创建符号链接。硬链接指向文件本身,符号链接指向文件名称。  (5)Linux里寻找文件的顺序是,根据文件名,找到inode编号,根据编号找到inode块,然后根据inode块中的属性信息找到数据块(即文件内容)。  (6)符号链接、硬链接、Windows快捷方式都具有指向功能;但它们的区别也很明显:Windows快捷方式指向文件的位置,符号链接是一种文件,创建链接时,系统会为符号链接重新分配一个inode(节点)编号,但硬链接根本不是一种文件,只是一种指向。  (7)创建硬链接只是增加一个引用计数,硬链接和它的源文件共享一个inode。  ……

前言/序言

  嵌入式系统及其应用是一个庞大的知识体系,笔者在多年的授课过程中,也很难选择一本合适的书作为本科学生的授课教材。结合课堂讲稿和学生的部分毕业设计内容,以及在学生学习过程中经常遇到的问题,笔者整理成本书——《嵌入式Linux系统开发——基于ARM处理器通用平台》,之所以这么命名,是打破了以前ARM9体系或者ARM11体系的框架。Linux操作系统在ARM9之上的处理器均有较好的兼容,读者稍加修改,代码就能应用,所以命名时就回避了某一款处理器的限定。关于嵌入式有太多的内容可以介绍,本书侧重应用,并结合了当前嵌入式的发展和应用。  嵌入式系统无疑是当前最热门、最有发展前途的IT应用领域之一。嵌入式系统用在某些特定的专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时还对实时响应等要求很高。特别是随着消费家电的智能化,嵌入式更显重要。像我们平时常见的手机、PDA、电子字典、可视电话、数字相机、数字摄像机、机顶盒、高清电视、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式系统。  嵌入式系统是软硬结合的产品,嵌入式开发主要分为两类。  一类是无线电相关专业,例如电子工程、通信工程等专业出身的人,他们主要搞硬件设计,有时需要开发一些与硬件关系最密切的最底层软件(例如BootLoader、BoardSupportPackage)、最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂的软件系统往往力不从心(例如嵌入式操作系统原理和复杂的应用软件等)。  另一类是软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,也完全可以编写BSP和硬件驱动程序。嵌入式硬件设计完成后,各种功能就全靠软件来实现了。嵌入式设备的增值很大程度上取决于嵌入式软件,设备越智能,系统越复杂,软件的作用越关键,这也是目前的趋势。  目前,国内外的相关人才都很稀缺。一方面,该领域入门门槛较高,不仅要了解较底层的软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须熟悉硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,该领域较新,发展太快,很多软硬件技术出现时间不长或正在出现(例如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人较少。嵌入式人才稀缺,身价自然就高。嵌入式人才稀少的根本原因可能是大多数人无条件接触该领域,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行开发流程的指导。  与企业计算等应用软件的开发人员不同,嵌入式领域人才的工作强度通常较低,收入却很高。从事企业应用软件的IT人员,这个用户的系统开发完成后,又要去开发下一个用户的系统,并且每个用户的需求和完成时间都必须按客户要求改变,往往疲于奔命,重复劳动。相比而言,开发嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事,所开发的产品通常是通用的,不会因客户的不同而修改。某一型号的产品开发完成后,往往有较长的一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件开发的人员的工作范围相对狭窄,所涉及的专业技术范围比较小(ARM、RTOS、MPEG、802.11等),随着时间的累积,经验也逐渐累积,可“倚老卖老”,寥寥数语的指导就足够让初入道者琢磨半年。如果从事应用软件开发,可能不同的客户的软件开发平台也完全不同,这会使得开发工作也相对更加辛苦。  嵌入式开发更注重的是练习,嵌入式系统开发设计最难的是入门,嵌入式系统开发涉及知识较多,初学者很难从纷杂的知识中快速上手学习,现在市面上用于嵌入式开发的学习板比比皆是,价格都比较低廉,读者可以买一款相对通用的开发板,按照书中的操作练习,本书将一步一步引导初学者进行嵌入式开发的学习。任何知识的学习都是由浅入深,由感性认识到理性认识,掌握了前几章的学习,相信读者一定能够掌握嵌入式入门开发的基本要领。  本书主要由冯新宇编写。此外,本书第11~15章由蒋洪波编写。参与编写的还有杨昕宇、刘宇莹、刘琳、史殿发、孟莹等。  感谢广州碾展公司的技术支持!  感谢您选择了本书,希望我们的努力对您的工作和学习有所帮助,也希望您把对本书的意见和建议反馈给我们。  作者  2017年4月

嵌入式Linux系统开发——基于ARM处理器通用平台/高等学校电子信息类专业系列教材 下载 mobi epub pdf txt 电子书 格式

嵌入式Linux系统开发——基于ARM处理器通用平台/高等学校电子信息类专业系列教材 mobi 下载 pdf 下载 pub 下载 txt 电子书 下载 2024

嵌入式Linux系统开发——基于ARM处理器通用平台/高等学校电子信息类专业系列教材 下载 mobi pdf epub txt 电子书 格式 2024

嵌入式Linux系统开发——基于ARM处理器通用平台/高等学校电子信息类专业系列教材 下载 mobi epub pdf 电子书
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

用户评价

评分

评分

评分

评分

评分

评分

评分

评分

评分

类似图书 点击查看全场最低价

嵌入式Linux系统开发——基于ARM处理器通用平台/高等学校电子信息类专业系列教材 mobi epub pdf txt 电子书 格式下载 2024


分享链接








相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.teaonline.club All Rights Reserved. 图书大百科 版权所有