ARM Bootloader新书推荐

[复制链接]
6497|11
 楼主| galaxy9229 发表于 2008-3-13 17:32 | 显示全部楼层 |阅读模式
ARM程序分析与设计<br /><br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;王宇行&nbsp;&nbsp;编著<br /><br /><br />北京航空航天大学出版社&nbsp;<br /><br /><br /><br /><br />内容简介<br /><br />以实例阐述知识点,从简到难,系统阐述ARM嵌入式开发的知识和技能。内容包括:ARM的开发工具及其开发的整个过程,ARM映像文件分析,ARM汇编语言和C语言,标准C库的用法,ARM汇编语言和C语言混合编程的技术,引导代码分析,ARM中断处理原理和实现方法,调试的基本原理和技术,分散加载技术,位置无关代码和数据的原理和开发方法。<br />本书可作为ARM嵌入式系统开发人员的参考书,也可作为学习ARM嵌入式技术的培训教材。<br /><br /><br /><br />?&nbsp;2008,北京航空航天大学出版社,版权所有。<br />未经本书出版者书面许可,任何单位和个人不得以任何形式或手段复制或传播本书内容。<br />侵权必究。<br /><br />&nbsp;<br />前&nbsp;&nbsp;言<br />嵌入式技术与ARM<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在现实生活中,嵌入式设备随处可见,成为生活的一部分,如人人使用的手机,数码相机,个人数字助理(PDA)等。中国作为嵌入式设备消费和制造大国,对嵌入式技术人才的需求是巨大的。ARM处理器(它的全程是Advanced&nbsp;RISC&nbsp;Machines)是目前世界上最为流行的和应用最为广泛的32位处理器,它被嵌入到日常生活中使用的各种产品中,从手机到汽车里的定位仪器。它体积小,重量轻,成本低,可靠性高,高性能,低功耗,是嵌入式设备的核心。社会对基于ARM嵌入式技术的软硬件设计人才、应用开发人才的需求越来越大,同时基于ARM系统的开发人员也越来越庞大,有初学者,也有身经百战的资深工程师。这就是本书诞生的根本缘由。本书的目的,就是为读者提供学习和开发ARM系统所需要的技能和经过消化的知识点;使读者掌握基础知识的同时,系统地掌握基于ARM的嵌入式系统的开发方法,以最快的速度和最短的时间掌握ARM系统下的开发技术。<br />本书特点<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.基础与实践的结合<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本书详细地以实例阐述了开发基于ARM的嵌入式系统所需要的基础知识,而采用的实例都来源于实际的工程开发,所以可以在实际的工程项目中直接采用。对于入门者,可以用它来学习基础知识;对于资深工程师,可以强化基础知识,也可以在实际的开发中参考借鉴。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.分散与系统的结合<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本书独立地阐述了基于ARM的嵌入式系统基础知识,同时也用实例系统地阐述了嵌入式系统的开发流程,点面结合,可以帮助读者系统地掌握ARM嵌入式系统的开发技术。<br />主要内容<br />&nbsp;&nbsp;&nbsp;全书共分11章,以实例阐述知识点,从简到难,系统地阐述了嵌入式开发知识和技能。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第1章:描述ARM的开发工具及其开发的整个过程,包括编译、链接以及最终可执行映像文件的产生。并对常用的编译参数和makefile做了简单的描述。最终的目的是,给大家一个总体开**廓和概念,为理解以后的章节做准备。<br />第2章:系统的介绍ARM编译器armcc,armasm输出的目标文件,和ARM链接器输出的可执行映像文件的物理结构和逻辑结构。并详细描述与之相关的一些技术和实现实例:装载域和运行域的存储映射,分散加载技术。<br />第3章:详细的阐述ARM处理器的基本概念,ARM汇编语言编程及大量的ARM汇编实例。<br />第4章:介绍用C语言开发ARM系统常用的一些技术概念,以及C语言编程的优化技术。<br />第5章:介绍标准C库的使用方法,使用流程以及对标准C库的裁减方法以满足实际的目标系统。<br />第6章:以实例阐述ARM语言和C语言混合编程的技术,包括内联汇编、嵌入式汇编以及ARM语言和C语言函数相互调用的编程技术。<br />第7章:详细阐述系统初始化原理和流程。对系统初始化过程中相关的硬件作了详细描述。<br />第8章:详细阐述中断处理原理和实现方法。以一个外部中断为例来介绍编写中断服务程序的流程和一些基本概念<br />第9章:介绍调试的基本原理和技术。重点讨论基于JTAG的调试的基本理论和方法。<br />第10章:阐述分散加载技术所需要的配置文件和分散加载技术在实际开发中的使用技术和方法。<br />第11章:用一个实例来阐述位置无关的代码和数据的原理和开发方法。<br />主要读者<br />本书对ARM处理器从基本概念到整个系统开发做了详细的阐述。涉及到每个概念和知识点,不是对他们简单的罗列,而是以通俗易懂的语言和详细的实例来阐述他,使读者不需要咀嚼消化,就可以直接吸收。通过阅读本书,读者可以系统地掌握ARM开发的各方面知识,所以,他可以做为学习ARM技术的培训资料、可以作为开发人员的参考资料、也可以作为大学学生的辅导教材。<br />致&nbsp;&nbsp;谢<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;感谢我的很多同事提供了技术上的建议,感谢我的家人对我的支持和关心。由于时间仓促和水平所限,错误和不妥的地方,请读者批评指正并给出宝贵意见。<br />&nbsp;<br /><br />王宇行&nbsp;<br />2007年8月&nbsp;<br /><br /><br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;目录<br />第一章&nbsp;&nbsp;ARM&nbsp;开发工具&nbsp;1<br />1.1&nbsp;&nbsp;开发流程&nbsp;1<br />1.2&nbsp;&nbsp;开发工具&nbsp;3<br />1.2.1&nbsp;&nbsp;编译器简介&nbsp;3<br />1.2.2&nbsp;&nbsp;链接器简介&nbsp;4<br />1.2.3&nbsp;&nbsp;fromelf工具&nbsp;5<br />1.2.4&nbsp;&nbsp;常用的编译和链接参数&nbsp;6<br />1.2.5&nbsp;&nbsp;makefile基础&nbsp;10<br />1.3&nbsp;&nbsp;总&nbsp;&nbsp;结&nbsp;14<br />第二章&nbsp;&nbsp;ARM&nbsp;映像文件分析&nbsp;15<br />2.1&nbsp;映像文件物理结构&nbsp;15<br />2.1.1&nbsp;ELF简介&nbsp;16<br />2,1,2&nbsp;目标文件的物理结构&nbsp;17<br />2.1.3&nbsp;可执行映象文件的物理结构&nbsp;22<br />2.2&nbsp;映像文件的逻辑结构&nbsp;26<br />2.2.1逻辑结构的基本构成&nbsp;26<br />2.2.2&nbsp;装载域和运行域&nbsp;29<br />2.2.3&nbsp;分散加载技术&nbsp;32<br />2.2.4&nbsp;装载域到运行域的数据拷贝&nbsp;36<br />2.3&nbsp;本章总结&nbsp;41<br />第三章:ARM汇编语言基础&nbsp;42<br />3.1&nbsp;ARM&nbsp;处理器概述&nbsp;42<br />3.1.1&nbsp;ARM处理器模式&nbsp;42<br />3.1.2&nbsp;寄存器&nbsp;43<br />3.1.3&nbsp;处理器工作状态&nbsp;52<br />3.1.4&nbsp;ARM数据长度&nbsp;52<br />3.1.5&nbsp;ARM存储系统&nbsp;53<br />3.1.6&nbsp;存储和地址相关内容&nbsp;54<br />3.2&nbsp;ARM&nbsp;汇编程序的结构&nbsp;59<br />3.2.1段&nbsp;59<br />3.2.2&nbsp;标识符(label)&nbsp;60<br />3.2.3&nbsp;程序入口&nbsp;62<br />3.2.4&nbsp;程序结束&nbsp;62<br />3.2.5&nbsp;包含其它汇编源文件&nbsp;62<br />3.2.6引用外部标识符&nbsp;62<br />3.3&nbsp;&nbsp;ARM&nbsp;汇编程序的常量和变量&nbsp;63<br />3.3.1常量&nbsp;63<br />3.3.2变量&nbsp;64<br />3.4&nbsp;ARM&nbsp;汇编程序的运算符和表达式&nbsp;68<br />3.4.1数字表达式&nbsp;69<br />3.4.2&nbsp;逻辑表达式&nbsp;70<br />3.4.3&nbsp;数字和逻辑表达式实例&nbsp;70<br />3.4.4&nbsp;字符串表达式&nbsp;71<br />3.5&nbsp;ARM&nbsp;汇编程序的数据定义&nbsp;75<br />3.5.1&nbsp;LTORG&nbsp;75<br />3.5.2&nbsp;DCB&nbsp;79<br />3.5.3&nbsp;DCW&nbsp;79<br />3.5.4&nbsp;DCD&nbsp;79<br />3.5.5&nbsp;DCB,DCW,DCD使用实例&nbsp;80<br />3.5.6&nbsp;SPACE&nbsp;81<br />3.5.7&nbsp;MAP和FILED&nbsp;82<br />3.5.8&nbsp;MAP和FILED实例&nbsp;82<br />3.6&nbsp;ARM&nbsp;汇编程序的控制结构&nbsp;84<br />3.6.1&nbsp;选择&nbsp;84<br />3.6.2&nbsp;循环&nbsp;85<br />3.6.3&nbsp;选择和循环实例&nbsp;86<br />3.7&nbsp;ARM&nbsp;汇编指令&nbsp;87<br />3.7.1&nbsp;数据处理指令&nbsp;88<br />3.7.2&nbsp;比较指令&nbsp;98<br />3.7.3&nbsp;存储器访问指令&nbsp;103<br />3.7.4&nbsp;堆栈操作指令&nbsp;112<br />3.7.5&nbsp;交换指令&nbsp;119<br />3.7.6&nbsp;跳转指令&nbsp;121<br />3.7.7条件执行指令&nbsp;125<br />3.7.8&nbsp;软件中断指令SWI&nbsp;132<br />3.8.&nbsp;ARM&nbsp;程序和THUMB程序混合使用&nbsp;135<br />3.8.1混合使用的原因&nbsp;135<br />3.8.2&nbsp;ARM和Thumb状态的切换方式&nbsp;135<br />3.9&nbsp;汇编语言实例&nbsp;138<br />3.9.1&nbsp;字符串处理&nbsp;138<br />3.9.2&nbsp;十进制数转换为7段数码显示&nbsp;141<br />3.9.3&nbsp;系统初始化简介&nbsp;143<br />3.9.4&nbsp;七段数码显示&nbsp;147<br />3.10&nbsp;总结&nbsp;154<br />第四章:ARM&nbsp;C语言基础&nbsp;155<br />4.1&nbsp;数据类型&nbsp;155<br />4.1.1&nbsp;基本数据类型&nbsp;155<br />4.1.2&nbsp;数据类型修饰符&nbsp;156<br />4.2&nbsp;常量&nbsp;157<br />4.2.1&nbsp;整数&nbsp;157<br />4.2.2&nbsp;字符&nbsp;157<br />4.2.3&nbsp;字符串&nbsp;157<br />4.3&nbsp;变量&nbsp;158<br />4.3.1变量修饰符.&nbsp;158<br />4.4&nbsp;操作符&nbsp;162<br />4.4.1&nbsp;算数操作符&nbsp;162<br />4.4.2&nbsp;关系操作符&nbsp;163<br />4.4.3&nbsp;逻辑操作符&nbsp;163<br />4.4.4&nbsp;位操作符&nbsp;163<br />4.5&nbsp;控制结构&nbsp;164<br />4.5.1选择&nbsp;164<br />4.5.2&nbsp;循环&nbsp;167<br />4.6&nbsp;结构体&nbsp;169<br />4.7&nbsp;编译指令&nbsp;171<br />4.7.1&nbsp;#define和#undef&nbsp;171<br />4.7.2&nbsp;#if&nbsp;和#endif&nbsp;171<br />4.7.3&nbsp;:#error&nbsp;172<br />4.8&nbsp;&nbsp;C程序优化&nbsp;172<br />4.8.1除法和求余运算&nbsp;172<br />4.8.2&nbsp;条件执行&nbsp;174<br />4.8.3&nbsp;关系表达式&nbsp;175<br />4.8.4&nbsp;循环&nbsp;177<br />4.8.5&nbsp;寄存器分配&nbsp;177<br />4.8.6&nbsp;函数&nbsp;180<br />第五章:标准C库的应用&nbsp;184<br />5.1&nbsp;标准C库的组成&nbsp;184<br />5.1.1&nbsp;与目标硬件无关的库函数&nbsp;184<br />5.1.2&nbsp;与目标硬件相关的库函数&nbsp;184<br />5.2&nbsp;标准C库的位置&nbsp;185<br />5.3&nbsp;标准C库的使用流程&nbsp;185<br />5.3.1&nbsp;标准C库完成的功能&nbsp;185<br />5.3.2&nbsp;应用程序使用库函数时的调用过程&nbsp;185<br />5.4&nbsp;标准C库函数的移植和重定向简例&nbsp;188<br />5.4.1系统初始化程序init.s&nbsp;189<br />5.4.2&nbsp;主程序main.c&nbsp;190<br />5.5&nbsp;ARM编译器对C语言的扩展&nbsp;193<br />5.5.1&nbsp;__irq&nbsp;193<br />5.5.2&nbsp;__swi&nbsp;194<br />5.5.3&nbsp;__asm&nbsp;195<br />5.5.4&nbsp;__inline&nbsp;196<br />5.5.5&nbsp;__weak&nbsp;196<br />5.5.6&nbsp;register&nbsp;197<br />5.5.7&nbsp;_int64&nbsp;197<br />5.5.8&nbsp;_pure&nbsp;198<br />5.5.9&nbsp;__value_in_regs&nbsp;198<br />第六章:ARM&nbsp;汇编和C混合编程&nbsp;199<br />6.1&nbsp;C语言里嵌入汇编指令&nbsp;199<br />6.1.1&nbsp;内联汇编(Inline&nbsp;Assemble)&nbsp;199<br />6.1.2&nbsp;内联汇编实例&nbsp;199<br />6.1.3&nbsp;嵌入式汇编(Embedded&nbsp;Assemble)&nbsp;201<br />6.2&nbsp;&nbsp;C&nbsp;程序调用汇编语言函数&nbsp;202<br />6.3&nbsp;汇编程序调用C语言函数&nbsp;203<br />6.3.1&nbsp;汇编中调用用户自定义的C函数&nbsp;203<br />6.3.2&nbsp;汇编中调用标准库函数&nbsp;203<br />6.5&nbsp;APCS概述&nbsp;205<br />6.5.1&nbsp;寄存器的使用规则&nbsp;205<br />6.5.2&nbsp;堆栈的使用规则&nbsp;205<br />6.5.3&nbsp;参数传递规则&nbsp;206<br />6.5.4&nbsp;函数返回值规则&nbsp;207<br />6.5.5&nbsp;参数传递和函数返回值总结&nbsp;207<br />6.6&nbsp;混合编程实例&nbsp;209<br />6.6.1生成伪随机数&nbsp;209<br />6.6.2&nbsp;数字转化成字符串&nbsp;212<br />6.7&nbsp;编写基于ROM的程序&nbsp;217<br />6.7.1系统初始化&nbsp;217<br />6.7.2&nbsp;裁剪库函数&nbsp;224<br />6.7.3&nbsp;中断处理&nbsp;226<br />6.7.4&nbsp;串口驱动&nbsp;230<br />6.7.5&nbsp;I/O地址映射&nbsp;230<br />6.7.6&nbsp;生成并装载Rom映像文件&nbsp;232<br />6.7.7&nbsp;在scatter文件里定义堆栈&nbsp;235<br />第七章:引导代码分析&nbsp;237<br />7.1&nbsp;前言&nbsp;237<br />7.2&nbsp;概述&nbsp;237<br />7.2.1&nbsp;BOOT相关硬件:FLASH&nbsp;ROM&nbsp;237<br />7.2.2&nbsp;BOOT的主要功能&nbsp;238<br />7.2.3&nbsp;主要功能分析&nbsp;242<br />7.2.4&nbsp;&nbsp;BOOT流程图&nbsp;255<br />7.2.5&nbsp;地址重映射&nbsp;262<br />第八章:ARM中断处理&nbsp;266<br />8.1中断概述&nbsp;266<br />8.1.1&nbsp;中断分类&nbsp;266<br />8.1.2&nbsp;响应时间&nbsp;266<br />8.1.3&nbsp;屏蔽和使能中断&nbsp;267<br />8.1.4可重入的中断处理程序&nbsp;268<br />8.2&nbsp;硬件中断处理流程&nbsp;268<br />8.2.1&nbsp;ARM内核自动完成的动作&nbsp;268<br />8.2.2&nbsp;跳转到中断处理函数&nbsp;269<br />8.2.3&nbsp;中断处理完成后返回&nbsp;269<br />8.2.4&nbsp;中断处理流程图(图8.2)&nbsp;270<br />8.3&nbsp;硬件中断实现&nbsp;272<br />8.3.1&nbsp;定义中断服务程序&nbsp;274<br />8.3.2&nbsp;主程序&nbsp;274<br />8.4&nbsp;中断服务子程序中关键的变量类型&nbsp;276<br />8.4.1&nbsp;Volatile&nbsp;276<br />8.4.2&nbsp;_irq&nbsp;279<br />8.4.3&nbsp;访问绝对地址的内存位置&nbsp;280<br />第九章:调试基础&nbsp;281<br />9.1&nbsp;调试构架&nbsp;281<br />9.1.1&nbsp;调试主机&nbsp;282<br />9.1.2&nbsp;协议转换器&nbsp;282<br />9.1.3&nbsp;调试目标&nbsp;282<br />9.2&nbsp;调试逻辑结构&nbsp;287<br />9.3&nbsp;JTAG简介&nbsp;288<br />9.3.1&nbsp;基本概念&nbsp;288<br />9.3.2&nbsp;使用举例&nbsp;290<br />第十章:SCATTER文件&nbsp;291<br />10.1&nbsp;&nbsp;SCATTER文件的作用&nbsp;291<br />10.2&nbsp;&nbsp;SCATTER文件简介&nbsp;291<br />10.2.1&nbsp;对加载域的描述&nbsp;291<br />10.2.2&nbsp;对运行域的描述&nbsp;292<br />10.2.3&nbsp;对输入段的描述&nbsp;292<br />10.3&nbsp;&nbsp;SCATTER文件的使用&nbsp;293<br />10.3.1系统挂接不同类型的存储器&nbsp;293<br />10.3.2&nbsp;复杂的内存映射(memory&nbsp;map)&nbsp;293<br />10.3.3&nbsp;映射外部控制寄存器的地址&nbsp;295<br />10.3.4&nbsp;映射堆和栈的地址&nbsp;296<br />10.3.5&nbsp;Scatter文件实例&nbsp;297<br />第十一章:位置无关代码和数据&nbsp;298<br />11.1&nbsp;简介&nbsp;298<br />11.2&nbsp;只读段(RO)位置无关(PI)&nbsp;298<br />11.2.1编写位置无关的代码&nbsp;298<br />11.2.2&nbsp;位置无关的代码编译和连接参数&nbsp;299<br />11.2.3&nbsp;位置无关的代码段分析&nbsp;299<br />11.3&nbsp;读写段(RW)位置无关(PI)&nbsp;307<br />11.3.1可重入代码(Reentrant&nbsp;Code)&nbsp;307<br />11.3.2&nbsp;位置无关的数据编译和连接参数&nbsp;310<br />11.4&nbsp;位置无关(PI)代码段和数据段编写实例分析&nbsp;310<br />11.4.1实例简介&nbsp;310<br />11.4.2&nbsp;symdefs文件&nbsp;311<br />11.4.3&nbsp;实例分析&nbsp;315<br /><br />
jack.king 发表于 2008-3-13 17:33 | 显示全部楼层

有没有电子版本?>

  
 楼主| galaxy9229 发表于 2008-3-13 17:35 | 显示全部楼层

电子的现在还没

电子的现在还没,需要出版社同意
icecut 发表于 2008-3-13 22:16 | 显示全部楼层

徒有虚名吧

NOT&nbsp;FOR&nbsp;BOOTLOADER
sz_kd 发表于 2008-3-13 22:31 | 显示全部楼层

电子版的有没有

  
huangbingg 发表于 2008-3-14 14:19 | 显示全部楼层

ARM Bootloader新书推荐?

就是一本普通的ARM的书....社么"Bootloader"???<br />    骗小孩的...
wchq1 发表于 2008-3-14 14:22 | 显示全部楼层

好像不是为了专门描述bootloader

好像不是为了专门描述bootloader的。感觉跟普通的ARM书籍差不多
Ice_River 发表于 2008-3-15 15:51 | 显示全部楼层

一本普通的书!

估计讲的也是太泛泛!
文峰聊书斋 发表于 2014-4-29 14:10 | 显示全部楼层
泛泛而已。我也在找这方面的书。
lr2131 发表于 2014-7-23 10:22 | 显示全部楼层
这本书感觉还不错,但没有怎么讲bootloader,讲加载域和运行域讲得不错。
aabb888 发表于 2014-10-9 21:50 | 显示全部楼层
看下..................
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

69

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部