作者lihgong (当宪兵是我一辈子的耻辱)
看板ASM
标题[心得] ARM System Developer's Guide
时间Sat Jan 2 17:43:38 2010
ARM System Developer's Guide
Designing and Optimizing System Software
http://www.arm.com/documentation/books/4975.html
----
这本书是圣经等级的书, 有兴趣的人, 我相信很多地方都可以取得 PDF 档
在新竹 NOVA 书耕也有翻译的中文书可以看
总而言之, 推荐 !!
如果修过 computer architecture 的人, 看这本书会更有感觉
这一系列的连载将会把我读过的心得陆续写上
----
Chapter 1
ARM Embedded Systems
这一章是嵌入式简介, 在很多地方都看得到类似的文字
不知道什麽是嵌入式系统的人可以看看
----
Chapter 2
ARM Processor Fundamentals
在 ARM上写程式, 了解 ARM architecture 是必要的
这颗 CPU 有以下的特性...
* 16 General Purpose Registers
* Support ARM(32-bit), Thumb(16-bit), Jazelle(8-bit) instruction sets
* Conditional Execution (很威的功能)
这一章针对这些特性作概略性的描述, 真的要精通, 写点 ARM 组语是免不了的
另外 2.7 ARM Processor Families 这一章也很有意思
他列出 ARM7 ~ ARM11 常见的型号, 以及代表的意义
ARM7 ARM9 ARM10 ARM11
Typical Mhz 80 150 260 335
mW/Mhz
0.06 0.19 0.5 0.4
+cache +cache +cache
MIPS/MHZ 0.97 1.1 1.3 1.2
从上面这张表来看, ARM7 有极低的耗电量, 不错的效能, 难怪会畅销了...
----
Chapter 3
Introduction to the ARM Instruction Set
所有讲 ARM 的书都会介绍指令集, 但是这一本书讲得更详细
比如 ARM 因为内建一个 Barrel Shifter, 可以做些很特别的操作
example: R3 = R1 + 2*R2
-> R3 = R1 + (R1 << 1)
-> add R3, R1,
R2, LSL #1
ARM 指令中, 其中一个 operand 都可以做这种 shift operation
上面这种运算经常出现在程式中, 善用 CPU 的特性, 就能少掉好几道指令
ARM 的 conditional execution 也是极有特色的指令编码
书中举了算最大公因数为例, 说明 conditional exection 的威力
ARM 在一些特定的型号, 也提供 DSP 指令支援, 例如 MAC (multiply-add-accumulate)
还有 CLZ (count-leading-zero), 还有些 Saturated Add 指令
藉着读 ARM 的指令集, 能了解这颗 CPU 的确切能力, 以及限制
----
Chapter 4
Introduction to the THUMB Instruction Set
THUMB 是 ARM 的 16-bit 指令集, 执行效能比较差, 但是程式码比较短
在手机上, Flash 也斤斤计较的场合, 这种指令集就有他的用处了
ARM 能支援 32-bit 和 16-bit 指令互相切换, 具体切换的方式书上有写
切换的程式段叫 veneer (我第一次看到这个词, 完全不知道在说什麽)
这一章看看即可
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.88.68
1F:推 final01:这本真的不错阿 不过可惜的是没在更新了 01/02 18:41
2F:推 utility:虽然我还没看..不过.谢谢你..让我认识一本好书. 01/03 01:44
3F:推 eggru:中文版翻译好吗 小弟想拜读也 01/03 03:58
4F:推 Aquatics:google 就有完整pdf了,还蛮夸张的 :P 01/03 15:07
5F:→ lg31cm:这本书我好多年前就买了,打死台湾出的一堆垃圾ARM相关书籍 02/14 14:51