《ARM Linux入门与实践》主要记录的是作者学习Linux等相关的软件部分的笔记,适用于高校学生、工程师使用。
arm linux_《ARM Linux入门与实践》 -基本信息
作者:程昌南方强
书号:978-7-81124-422-9
配盘:光盘
《ARM Linux入门与实践》封皮
出版日期:200810
开本:787×10921/16开
字数:706千字
arm linux_《ARM Linux入门与实践》 -内容简介
本书是以作者自学、应用嵌入式Linux时的笔记(包括实验、出现的问题、调试过程、经验总结等)为基础,再增加应用到的硬件平台而成的。全书以亲自制作实验平台硬件,亲自设计实验软件为线索,指导读者从零开始学习到最终掌握ARM和Linux应用的方方面面。
全书可以分成ARM硬件、ARM前后台系统应用和基于Linux系统的应用3个部分。ARM硬件部分包括整个硬件的原理分析、原理图、PCB板的绘制、元件焊接、硬件的检测与调试。ARM前后台系统应用部分包括启动代码、处理器内部外设、扩展外部设备及接口等的所有底层软件分析与实现,还有Bootloader、文件系统、GUI等的原理与实现。Linux系统的应用部分包括基于PC机的操作、应用编程和驱动、嵌入式Linux的开发环境创建、各种硬件的驱动实现、网络编程、图形用户界面设计等。
本书可作为有志于掌握ARM、Linux等嵌入式技术的高校学生、工程师等的参考书。
arm linux_《ARM Linux入门与实践》 -前言
本书的使用与相关知识的同步学习曾经有一个朋友这样告诉阿南:“如果看您的笔记就能掌握ARMLinux驱动,那就是最好的目的了”。对不起,阿南做不到,写不出这种“葵花宝典”。这本
《ARM Linux入门与实践》
书的前身是在21ICBBS上发表的《嵌入式Linux入门笔记》,主要是阿南在自学Linux和在项目中应用Linux时记录的笔记、出现的错误和心得等,是自己平时工作中非常重要的参考手册。发表后得到众网友的喜爱、支持及北航出版社胡晓柏主任的鼓励,故花更多的时间、精力将笔记丰富出版。
嵌入式是一门实践性很强的技术,而《嵌入式Linux入门笔记》主要记录的是Linux等相关的软件部分,没有包括硬件相关的部分,为了让读者能够亲自实践,故增加了ARM及硬件部分。并且亲自设计了AN2410SSB(最小系统板)和AN2410MB(扩展底板),给出了所有原理图,介绍了制作过程,记录了用裸板开始调试的步骤和过程,介绍了如何让ARM运行及启动等各方面的内容,以及前后台(无操作系统下)的应用等。本书没有将所涉及的技术及理论都包括进来,不仅篇幅有限,而且也没有必要,因为已有太多相当经典的资料。
本书第1章为概述。第2章分析了硬件的原理图,读者应该阅读S3C2410A的数据手册,特别是信号引脚功能描述,内存控制部分。第3章主要介绍了关于Protel原理图和PCB板的绘制,如果读者没有Protel的基础可以参考人民邮电出版社的《电路设计与制版――Protel99入门与提高》或其他Protel书。如果有Protel基础,只是没有绘制过多层板,那么可以参考人民邮电出版社的《Protel99SE多层电路板设计与制作》。第4章介绍了S3C2410A系统核心部分的调试方法和工具的使用,以及利用工具进行测试的方法、手段。该部分是整个系统的基础,也是非常重要的,读者需要多试验,出现问题时多参考S3C2410A的数据手册。第5章专门分析了S3C2410A的启动代码,用于理解S3C2410A的启动过程,中断处理过程及存储器等相关部分,也是非常基础和重要的。因为启动代码由汇编组成,此时可参考清华大学出版社的《ARM体系结构与编程》,学习理解ARM的汇编语言等相关知识。第6、7章为硬件平台上实现ARM的外围实验和扩展实验,读者仍然要参考S3C2410A的数据手册,在仿真调试情况下理解ARM内部的寄存器、存储器、状态寄存器等与ARM体系相关的知识。另外还要阅读如WAV音频格式,SD卡规范及相关的数据手册等。CPLD部分读者可以参考电子工业出版社的《基于QuartusII的FPGA/CPLD设计》,学习基本的工程创建,图形设计输入,编译和编程等。AlteraCPLD更详细的资料可以去官网下载。第8章介绍了前后台系统还需要考虑的相关知识:NANDBootloader、文件系统和图形界面。图形界面部分,读者需要理解一些基本的绘图原理和算法,可以参考机械工业出版社的《计算机图形学的算法基础》。第9章介绍了在PC机下的Linux各方面技术,这些都是嵌入式Linux的基础,非常重要,涉及的知识内容也很多。在该章中,阿南只是总结了一些实践操作的部分内容,所以还需要读者自己去参考学习Linux的这些书籍:Linux系统的基本操作参考清毕大学出版社的《RedHatLinux9系统管理》(这本书应该被实践安装的桌面Linux系统相应版本的书替代),应用编程参考清华大学出版社的《GNU/Linux编程指南》或机械工业出版社的《Unix高级环境编程》,驱动编程参考中国电力出版社的《Linux设备驱动程序》。第10章主要介绍S3C2410A的嵌入式Linux开发环境的搭建及工具的使用。这里采用的是MIZI公司的LinuxforS3C2410平台,读者也可以直接参考《MIZILinuxSDKforS3C2410》文档。第11章介绍在S3C2410A下实现Linux驱动,很多原理性的知识依然要参考《Linux设备驱动程序》一书,而且要多试验验证。读者在调试实现过程中也可以直接参考LinuxforS3C2410的内核源码中和硬件、驱动相关的代码例子(可以在Windows系统下安装SourceInsight软件,方便阅读Linux内核源代码)。第12章介绍嵌入式Linux桌面系统,可读写文件系统yaffs的实现,嵌入式Web服务器BOA、NFS及WIFI。这些都是实践性很强的应用操作,所以读者主要是应用它们,出现问题时上网查找相关应用操作,寻找解决问题的思路,再测试验证。第13章是网络编程方面的知识,主要参考清华大学出版社的《UNIX网络编程第1卷:套接口API》,目的是掌握TCP客服机/服务器的实现及网络的调试方法。第14章介绍嵌入式GUI开发环境的创建和开发方法,桌面系统的移植。学习前读者应该先学习基于Qt的应用编程,可以参考北航出版社的《C++GUIQt3编程》,如果没有C++的基础可以参考清华大学出版社的《C++程序设计教程》。
致谢
感谢我的导师(也是本书的另一位作者)――方强多年来的关心与指导,且对本书付出的辛苦劳动。
感谢我的公司――广州市天誉创高科技有限公司及同事们,他们对本书提供了很大帮助
arm linux_《ARM Linux入门与实践》 -目录
第一篇ARM硬件
第1章概述
1.1嵌入式系统、单片机、ARM及Linux概述3
1.2ARM处理器的选择3
1.3S3C2410A简介和公版资源4
1.4ARM开发工具及调试方法5
1.4.1集成开发环境5
1.4.2硬件仿真器6
1.4.3前后台系统的调试方法7
1.4.4嵌入式Linux的开发调试方法8
1.5亲自制作实验平台在ARM学习中的意义和可行性9
第2章实验平台硬件分析
2.1平台概述及组成11
2.2地址空间分配13
2.2.1S3C2410A内存映射图13
2.2.2AN2410平台地址空间分配14
2.3常用元件概述14
2.3.1电阻标称值14
2.3.2肖特基二极管18
2.3.3功率电感18
2.3.4铁氧体磁珠19
2.3.5自恢复保险丝PPTC19
2.3.6有源蜂鸣器和无源蜂鸣器20
2.4最小系统板AN2410SSB原理图分析20
2.4.1CPU部分20
2.4.2BootROM设置和时钟电路29
2.4.3JTAG接口电路30
2.4.4NANDFlash存储器30
2.4.5SDRAM存储器33
2.4.6调试串口34
2.4.710M以太网35
2.4.8按键中断和LED电路38
2.4.9ADC/PWM_DAC和蜂鸣器控制电路39
2.4.10复位电路39
2.4.11电源电路40
2.4.12最小系统板与底板的接口42
2.5底板AN2410MB原理图分析42
2.5.1缓冲电路43
2.5.2NORFlash存储器43
2.5.3USBHost/Device43
2.5.4100M以太网46
2.5.5pcmcia接口46
2.5.6SD卡接口49
2.5.7IIS音频电路50
2.5.8IIC存储器51
2.5.9LCD显示52
2.5.10触摸屏55
2.5.11RS485总线55
2.5.12IrDA、红外遥控发射与学习电路57
2.5.13CPLD扩展电路58
2.5.14SC16C554串口扩展电路58
2.5.15I/O口和红外遥控发射扩展电路60
2.5.16电源提供电路62
2.6下载板电路64
2.6.1S3C2410AFlash烧写工具SJF241064
2.6.2CPLD下载工具ByteBlasterII64
2.7S3C2440A与S3C2410A的不同点及注意事项66
第3章硬件制作
3.1原理图和PCB绘制过程及心得67
3.2PCB常用快捷键73
3.3焊接心得74
第4章系统核心部分硬件调试
4.1调试步骤及概述76
4.2电源/复位/时钟/NANDFlash设置77
4.3Multi?ICE仿真器的使用78
4.3.1仿真器与目标板硬件安装78
4.3.2ADS1.2/Multi?ICEServer安装和配置78
4.4处理器内核检测82
4.5仿真测试85
4.6SDRAM测试85
4.7调试串口测试91
4.8NANDFlash测试92
4.9Flash的烧写92
4.9.1SJF2410的安装92
4.9.2NANDFlash烧写93
4.9.3NORFlash烧写93
第二篇ARM前后台系统部分
第5章启动代码分析
5.1启动代码和Bootloader的区别99
5.2汇编基础100
5.2.1伪操作100
5.2.2汇编指令及伪指令104
5.3启动代码功能模块分解108
5.3.1定义程序入口地址108
5.3.2看门狗及中断的禁止112
5.3.3测试LED的显示112
5.3.4系统时钟初始化113
5.3.5低功耗模式114
5.3.6初始化内存控制器118
5.3.7堆栈初始化120
5.3.8中断向量表122
5.3.9映像文件运行域的初始化129
5.3.10进入C语言程序133
5.4S3C2410A启动过程总结133
第6章基于AN2410SSB的外设实验
6.1LED跑马灯显示实验135
6.1.1实验功能和目的135
6.1.2工程的创建135
6.1.3仿真调试及工程的设置138
6.1.4脱机运行及设置141
6.2按键输入及中断实验143
6.2.1实验功能和目的143
6.2.2GPIO口输入实验144
6.2.3外部中断实验145
6.3串口通信实验147
6.3.1实验功能和