|
ARM体系结构与编程--杜春雷
本书内容非常详实,之所以成为国内几乎最著名的ARM教材,原因并不是因为作者自己写得好,而是“抄”得好,几乎就是ARM公司《ARM Arthitecture Reference Manual》的翻译版。作为教材,作者将原手册适度删减,绝大多数情况下不影响读者对基本知识的把握,但偶尔也出 现了因为删减影响读者的理解。但最让人恼火的是,书中实在是错误连篇,而且有些错误是致命的直接影响理解!市面的教材都是二传手,难 免说不清楚不全或者有谬误,建议英文好的读者直接阅读原版手册!正确的学习方法是找一本中文书先通读入门,里面有问题不要纠缠不要浪 费时间去从其他中文书找答案,大概学完一遍直接阅读原版手册所有问题都将解决!
部分勘误:(读完后再继续补全)
P13在描述R13常用做堆栈指针时,未交代R13可以写成SP,但书后直接出现SP这个符号,这是不严谨的。
P59 倒数第7行 “33554432-33554430”应为“-33554432-33554428”,注意手册上是33554428而非33554430
P60 倒数第8行 “33554432-33554430”应为“-33554432-33554430”
P71 第20行 “表示的数值与寄存器<Rn>的值的反码”应为“表示的数值的反码与寄存器<Rn>的值”
P179 第9行“因此强烈完成禁止”应为“因此强烈建议禁止”
注意本书第5章《ARM存储系统》有相当多的错误,阅读时候千万小心!
P181 图5.4最后一行“二级描述符地址”应为“物理地址”,31-20位的“二级页表基地址”应为“段基址”
P181 表5.14 位[11:10]说“在前面已经有详细的介绍”,但实际上前面根本没有介绍,是在后面P188介绍的
P182 倒数第三行细粒度二级页表的基地址末两位应为11
P182 图5.5一级描述符末两位应为01
P183 图5.6第二行“二级页表内偏移序号”应为19-10位
P185 图5.8一级描述符末两位应为01。且位8,9上的标记8,9反了。
P186 图5.9 一级描述符末两位应为01
P187 图5.10 一级描述符的域应是8-5位,8未标出。
很多评论认为该书是《ARM Arthitecture Reference Manual》的中文翻译删减版,但准确来说应该是ADS 1.2系列手册的中文翻译删减版,Reference Manual的内容只占该书的一小部分,各章大致对应关系是:
第一章:ARM Architecture Reference Manual (ARM DDI 0100)的一部分
第二章:ARM Architecture Reference Manual (ARM DDI 0100)的Chapter A5
第三章:ADS Assembler Guide (ARM DUI 0068)的Chapter 4
第四章:ADS Assembler Guide (ARM DUI 0068)的Chapter 7
第五章:ARM Architecture Reference Manual (ARM DDI 0100)的Part B的一部分
第六章:ADS Developer Guide (ARM DUI 0056)的Chapter 2
第七章:ADS Developer Guide (ARM DUI 0056)的Chapter 3
第八章:ADS Developer Guide (ARM DUI 0056)的Chapter 4
第九章:ADS Developer Guide (ARM DUI 0056)的Chapter 5
第十章:ADS Compilers and Libraries Guide (ARM DUI 0067)的一部分
第十一章:ADS Linker and Utilities Guide (ARM DUI 0151)的一部分
第十三章:CodeWarrior IDE Guide (ARM DUI 0065)的一部分
书中前言最后的“参考文献”有以上资料的详细列表,这些大部分都可以在ARM官方网站下载到
撇开原创性不说,能把这么多本手册的内容浓缩到一本书中,并基本能覆盖实际应用中大部分问题,也算是作者水平所在了 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|