嵌入式Linux应用开发完全手册
基本信息
编辑推荐
基于ARM 9+Linux 2.6平台.
从基础讲起,引导读者快速入门..
实例丰富,可直接应用于工程实践...
推荐阅读
内容简介回到顶部↑
本书全面介绍了嵌入式linux系统开发过程中,从底层系统支持到上层gui应用的方方面面,内容涵盖linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、makefile语法、arm汇编指令等),硬件部件的使用及编程(囊括了常见硬件,比如uart、i2c、lcd等),u-boot、linux内核的分析、配置和移植,根文件系统的构造(包括移植busybox、glibc、制作映象文件等),内核调试技术(比如添加kgdb补丁、栈回溯等),驱动程序编写及移植(led、按键、扩展串口、网卡、硬盘、sd卡、lcd和usb等),gui系统的移植(包含两个gui系统:基于qtopia和基于x),应用程序调试技术。
本书从最简单的点亮一个led开始,由浅入深地讲解,使读者最终可以配置、移植、裁剪内核,编写驱动程序,移植gui系统,掌握整个嵌入式linux系统的开发方法。
本书由浅入深,循序渐进,适合刚接触嵌入式linux的初学者学习,也可作为大、中专院校嵌入式相关专业本科生、研究生的教材。
本书从最简单的点亮一个led开始,由浅入深地讲解,使读者最终可以配置、移植、裁剪内核,编写驱动程序,移植gui系统,掌握整个嵌入式linux系统的开发方法。
本书由浅入深,循序渐进,适合刚接触嵌入式linux的初学者学习,也可作为大、中专院校嵌入式相关专业本科生、研究生的教材。
目录回到顶部↑
第1篇 嵌入式linux开发环境构建篇
第1章 嵌入式linux开发概述
第2章 嵌入式linux开发环境构建
第3章 嵌入式编程基础知识
第4章 windows、linux环境下相关工具、命令的使用
第2篇 arm9嵌入式系统基础实例篇
第5章 gpio接口
第6章 存储器控制
第7章 内存管理单元mmu
第8章 nand flash控制器
第9章 中断体系结构
第10章 系统时钟和定时器
第11章 通用异步收发器uart
第12章 i*ic接口
第13章 lcd控制器
第14章 adc和触摸屏接口
第3篇 嵌入式linux系统移植篇
第15章 移植u-boot
第16章 移植linux内核
第17章 构建linux根文件系统
第1章 嵌入式linux开发概述
第2章 嵌入式linux开发环境构建
第3章 嵌入式编程基础知识
第4章 windows、linux环境下相关工具、命令的使用
第2篇 arm9嵌入式系统基础实例篇
第5章 gpio接口
第6章 存储器控制
第7章 内存管理单元mmu
第8章 nand flash控制器
第9章 中断体系结构
第10章 系统时钟和定时器
第11章 通用异步收发器uart
第12章 i*ic接口
第13章 lcd控制器
第14章 adc和触摸屏接口
第3篇 嵌入式linux系统移植篇
第15章 移植u-boot
第16章 移植linux内核
第17章 构建linux根文件系统
前言回到顶部↑
背景知识.
嵌入式Linux在嵌入式领域发展迅速、需求旺盛,但是嵌入式Linux的入门很难。初学者多是自己琢磨,效率不高。学习过程中碰到的问题千奇百怪,解决后却往往发现是极其低级的错误,以作者为例,初学时在论坛疯狂发帖求教,现在回头一看不免感叹:怎么会提出这么弱智的问题?但是,当时就是被这类问题折磨得寝食难安。
相对于嵌入式Linux常识的匮乏,更大的困难是缺乏完善的知识结构:只了解硬件,或是只了解软件。对于有志于从事底层系统开发(比如改造Bootloader、钻研内核、为新硬件编写驱动程序)的人,对于想从上层软件开发转到底层软件开发的人,应该看得懂电路原理图,看得懂芯片数据手册,清楚地知道软件是怎样和硬件发生作用的。
同样;对于想从硬件岗位转到软件岗位的人,对于想从传统单片机(比如51单片机)编程进一步学习“有操作系统的”嵌入式编程的人,需要找到一个学习的切入点:先掌握各个硬件部件的简单编程,再将它们组合起来构成一个相对复杂的软件系统——比如Bootloader,进而编写基于操作系统的驱动程序,最后深入钻研操作系统内核。
对于尚未参加工作的在校生来说,缺乏实际的操作经验可能是就业的最大障碍。很多人买了开发板想进一步练习,却发现不知从何入手。
鉴于上述种种困难及需求,作者结合自己的学习经历、工作心得写成此书,期望能帮助读者加快嵌入式Linux的入门速度,并体会到深入学习嵌入式Linux的乐趣。
关于本书
本书以S3C2410、S3C2440开发板为例,从分析硬件上电执行的第一条指令开始,到构造出一个类似PDA、基于Linux的桌面GUI系统,带领读者学习、掌握从最底层到最高层的软件编写方法。
本书主要涉及以下主题:
开发环境的搭建(包括安装Linux系统及日常使用的工具);
开发板上各硬件部件的使用方法及实际的编程操作;
嵌入式Linux系统的构造(包括Bootloader、内核、文件系统等);
嵌入式Linux驱动程序的编写方法及大量实例;
GUI系统的移植(两个GUI系统:基于Qtopia和基于X);
调试技术(包括内核调试技术和应用程序调试技术)。
本书所有章节都以理论结合代码的方式进行讲解,并可按照书中说明进行实际操作,力求让读者“知其然,也知其所以然”。
本书内容及组织方式
本书按照嵌入式Linux初学者的学习过程,从简单到复杂,从底层软件到上层软件进行讲解,全书分5篇,共27章。
第1篇(第1章至第4章)为嵌入式Linux开发环境构建篇,主要讲解以下内容。
第1章介绍基于ARM的嵌入式Linux系统的基本概念。
嵌入式Linux在嵌入式领域发展迅速、需求旺盛,但是嵌入式Linux的入门很难。初学者多是自己琢磨,效率不高。学习过程中碰到的问题千奇百怪,解决后却往往发现是极其低级的错误,以作者为例,初学时在论坛疯狂发帖求教,现在回头一看不免感叹:怎么会提出这么弱智的问题?但是,当时就是被这类问题折磨得寝食难安。
相对于嵌入式Linux常识的匮乏,更大的困难是缺乏完善的知识结构:只了解硬件,或是只了解软件。对于有志于从事底层系统开发(比如改造Bootloader、钻研内核、为新硬件编写驱动程序)的人,对于想从上层软件开发转到底层软件开发的人,应该看得懂电路原理图,看得懂芯片数据手册,清楚地知道软件是怎样和硬件发生作用的。
同样;对于想从硬件岗位转到软件岗位的人,对于想从传统单片机(比如51单片机)编程进一步学习“有操作系统的”嵌入式编程的人,需要找到一个学习的切入点:先掌握各个硬件部件的简单编程,再将它们组合起来构成一个相对复杂的软件系统——比如Bootloader,进而编写基于操作系统的驱动程序,最后深入钻研操作系统内核。
对于尚未参加工作的在校生来说,缺乏实际的操作经验可能是就业的最大障碍。很多人买了开发板想进一步练习,却发现不知从何入手。
鉴于上述种种困难及需求,作者结合自己的学习经历、工作心得写成此书,期望能帮助读者加快嵌入式Linux的入门速度,并体会到深入学习嵌入式Linux的乐趣。
关于本书
本书以S3C2410、S3C2440开发板为例,从分析硬件上电执行的第一条指令开始,到构造出一个类似PDA、基于Linux的桌面GUI系统,带领读者学习、掌握从最底层到最高层的软件编写方法。
本书主要涉及以下主题:
开发环境的搭建(包括安装Linux系统及日常使用的工具);
开发板上各硬件部件的使用方法及实际的编程操作;
嵌入式Linux系统的构造(包括Bootloader、内核、文件系统等);
嵌入式Linux驱动程序的编写方法及大量实例;
GUI系统的移植(两个GUI系统:基于Qtopia和基于X);
调试技术(包括内核调试技术和应用程序调试技术)。
本书所有章节都以理论结合代码的方式进行讲解,并可按照书中说明进行实际操作,力求让读者“知其然,也知其所以然”。
本书内容及组织方式
本书按照嵌入式Linux初学者的学习过程,从简单到复杂,从底层软件到上层软件进行讲解,全书分5篇,共27章。
第1篇(第1章至第4章)为嵌入式Linux开发环境构建篇,主要讲解以下内容。
第1章介绍基于ARM的嵌入式Linux系统的基本概念。
书摘回到顶部↑
第1篇嵌入式Linux开发环境构建篇
第1章嵌入式Linux开发概述
1.2基于ARM处理器的嵌入式Linux系统
1.2.1ARM处理器介绍
1.ARM的概念
嵌入式处理器种类繁多,有ARM、MIPS、PPC等多种架构。ARM处理器的文档丰富,各类嵌入式软件大多(往往首选)支持ARM处理器,使用ARM开发板来学习嵌入式开发是个好选择。基于不同架构CPU的开发是相通的,掌握ARM架构之后,在使用其他CPU时也会很快上手。当然,作为产品进行选材时,需要考虑的因素就非常多了,这不在本书的介绍范围之内。
ARM(Advanced RISC Machine),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM公司是32位嵌入式RISC微处理器技术的领导者,自从1990年创办公司以来,基于ARM技术IP核的微处理器的销售量已经超过了100亿。
ARM公司并不生产芯片,而是出售芯片技术授权。其合作公司针对不同需求搭配各类硬件部件,比如UART、SDI、I2C等,设计出不同的SoC芯片。
ARM公司在技术上的开放性使得它的合作伙伴既有世界项级的半导体公司,也有各类中、小型公司。随着合作伙伴的增多,也使得ARM处理器可以得到更多的第三方工具、制造和软件支持,又使整个系统成本降低,使新品上市时间加快,从而具有更大的竞争优势。
基于ARM的处理器以其高速度、低功耗、价格低等优点得到非常广泛的应用,它可以应用于以下领域:
①为无级通信、消费电子、成像设备等产品提供可运行复杂操作系统的开放应用平台;
②在海量存储、汽车电子、工业控制和网络应用等领域提供实时嵌入式应用;
③安全系统,比如信用卡、SIM卡等。
……
第1章嵌入式Linux开发概述
1.2基于ARM处理器的嵌入式Linux系统
1.2.1ARM处理器介绍
1.ARM的概念
嵌入式处理器种类繁多,有ARM、MIPS、PPC等多种架构。ARM处理器的文档丰富,各类嵌入式软件大多(往往首选)支持ARM处理器,使用ARM开发板来学习嵌入式开发是个好选择。基于不同架构CPU的开发是相通的,掌握ARM架构之后,在使用其他CPU时也会很快上手。当然,作为产品进行选材时,需要考虑的因素就非常多了,这不在本书的介绍范围之内。
ARM(Advanced RISC Machine),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM公司是32位嵌入式RISC微处理器技术的领导者,自从1990年创办公司以来,基于ARM技术IP核的微处理器的销售量已经超过了100亿。
ARM公司并不生产芯片,而是出售芯片技术授权。其合作公司针对不同需求搭配各类硬件部件,比如UART、SDI、I2C等,设计出不同的SoC芯片。
ARM公司在技术上的开放性使得它的合作伙伴既有世界项级的半导体公司,也有各类中、小型公司。随着合作伙伴的增多,也使得ARM处理器可以得到更多的第三方工具、制造和软件支持,又使整个系统成本降低,使新品上市时间加快,从而具有更大的竞争优势。
基于ARM的处理器以其高速度、低功耗、价格低等优点得到非常广泛的应用,它可以应用于以下领域:
①为无级通信、消费电子、成像设备等产品提供可运行复杂操作系统的开放应用平台;
②在海量存储、汽车电子、工业控制和网络应用等领域提供实时嵌入式应用;
③安全系统,比如信用卡、SIM卡等。
……
评论交流
共有77人开贴评论 85人参与评论 51人参与打分 查看
评价等级:







发表于:2010-1-12 12:43:00
市面上很多同类型的书不是东拼西凑,就是简单知识大量堆积,比如ARM 汇编指令、Makefile 的简单用法、内核编译选项的罗列等等。其实是在充篇幅。而对于内核移植等读者真正关心的部分,往往描述甚为简单,甚至一笔带过,内核移植在厚厚一本书中往往仅占1,2页。而初学者不易鉴别,这些书籍其实非常有害,误人子弟。另外,所谓“初学者”,是有一定基础的,否则不会切入嵌入式研发领域,并不需要简单知识的堆积。
而该书则完全不同,它也谈ARM 汇编、Makefile等,但谈得很精要。比如避开ARM 指令的罗列,而谈 ldr伪指令与指令的差别、adr指令(P318)、ATPCS规则等。Makefile 避谈简单用法,而谈重要函数的用法等。另外对ld、objcopy、objdump等binutils 的用法有非常精要的归纳、总结。这些都是在其它书上找不到,同时又是开发中非常重要的内容。
对内核移植,该书从Makefile、vmlinux.lds 分析入手,这样才能抓到那些源码进入编译,什么源码是入口点,以及源码的结构问题。这也是开发者关心的问题。但这样的分析入手在其它书上找不到,其它书往往就说修改这、修改那的3、5处就搞定了,事实上不是这么简单。另外并非16章才谈内核移植,以下章节:16、17.2.2、17.4.2、18.1、20、21等,均谈内核移植,并且和s3c2410、s3c2440相关,还入木三分,实践兼顾理论,开发中非常实用、重要。这和世面上内核移植在厚厚一本书中往往仅占1,2页者大不同,也和专讲内核理论的书大不同。
在应用开发中,作者只提到图形界面开发的两种重要方法,而避谈一些简单C 程序的罗列。实用、言简意赅。
我的补充建议是,对内核移植的部分可适当增加内容,比如根据U-boot 传人内核的根文件设备参数(u.core.rootdev),内核如何确定根文件设备并挂载它,该根文件设备是在什么时机初始化的(应该在挂载前),以及初始化过程等。另外,可对本书单板内存管理的初始化部分适当增加内容等等,作一个启示、引导的作用。
而该书则完全不同,它也谈ARM 汇编、Makefile等,但谈得很精要。比如避开ARM 指令的罗列,而谈 ldr伪指令与指令的差别、adr指令(P318)、ATPCS规则等。Makefile 避谈简单用法,而谈重要函数的用法等。另外对ld、objcopy、objdump等binutils 的用法有非常精要的归纳、总结。这些都是在其它书上找不到,同时又是开发中非常重要的内容。
对内核移植,该书从Makefile、vmlinux.lds 分析入手,这样才能抓到那些源码进入编译,什么源码是入口点,以及源码的结构问题。这也是开发者关心的问题。但这样的分析入手在其它书上找不到,其它书往往就说修改这、修改那的3、5处就搞定了,事实上不是这么简单。另外并非16章才谈内核移植,以下章节:16、17.2.2、17.4.2、18.1、20、21等,均谈内核移植,并且和s3c2410、s3c2440相关,还入木三分,实践兼顾理论,开发中非常实用、重要。这和世面上内核移植在厚厚一本书中往往仅占1,2页者大不同,也和专讲内核理论的书大不同。
在应用开发中,作者只提到图形界面开发的两种重要方法,而避谈一些简单C 程序的罗列。实用、言简意赅。
我的补充建议是,对内核移植的部分可适当增加内容,比如根据U-boot 传人内核的根文件设备参数(u.core.rootdev),内核如何确定根文件设备并挂载它,该根文件设备是在什么时机初始化的(应该在挂载前),以及初始化过程等。另外,可对本书单板内存管理的初始化部分适当增加内容等等,作一个启示、引导的作用。
| 我要写评论 |
| 查看所有评论交流(共77条) |


点击看大图





加载中...
