[心得] ARM System Developer's Guide

看板ASM (組合語言)作者 (當憲兵是我一輩子的恥辱)時間15年前 (2010/01/02 17:43), 編輯推噓4(401)
留言5則, 5人參與, 最新討論串1/4 (看更多)
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

01/02 18:41, , 1F
這本真的不錯阿 不過可惜的是沒在更新了
01/02 18:41, 1F

01/03 01:44, , 2F
雖然我還沒看..不過.謝謝你..讓我認識一本好書.
01/03 01:44, 2F

01/03 03:58, , 3F
中文版翻譯好嗎 小弟想拜讀也
01/03 03:58, 3F

01/03 15:07, , 4F
google 就有完整pdf了,還蠻誇張的 :P
01/03 15:07, 4F

02/14 14:51, , 5F
這本書我好多年前就買了,打死台灣出的一堆垃圾ARM相關書籍
02/14 14:51, 5F
文章代碼(AID): #1BFnLDXC (ASM)
文章代碼(AID): #1BFnLDXC (ASM)