arm架構與編程
㈠ arm體系結構與編程 pdf
http://wenku..com/view/335eb719227916888486d78d.html
希望這個能夠符合你的要求
直接下載就可以了,不需要積分的
㈡ ARM體系結構與編程的作品目錄
第1章 ARM概述及其基本編程模型
1. 1 ARM技術的應用領域及其特點
1. 2 ARM體系結構的版本及命名方法
1. 2. 1 ARM體系結構的版本
1. 2. 2 ARM體系的變種
1. 2. 3 ARM/Thumb體系版本的命名格式
l. 3 ARM處理器系列
1. 3. 1 ARM7系列
1. 3. 2 ARM9系列
1. 3. 3 ARM9E系列
1. 3. 4 ARM1OE系列
1. 3. 5 SecurCore系列
l. 4 ARM處理器模式
1. 5 ARM寄存器介紹
1. 5. l 通用寄存器
1. 5. 3 程序狀態寄存器
1. 6 ARM體系的異常中斷
1. 6. 1 ARM中異常中斷種類
1. 6. 2 ARM處理器對異常中斷的響應過程
1. 6. 3 從異常中斷處理程序中返回
1. 7 ARM體系中存儲系統
1. 7. 1 ARM體系中的存儲空間
1. 7. 2 ARM存儲器格式
1. 7. 3 非對齊的存儲訪問操作
1. 7. 4 指令預取和自修改代碼
第2章 ARM指令分類及其定址方式
2. 1 ARM指令集概要介紹
2. 1. 1 ARM指令的分類
2. 1. 2 ARM指令的一般編碼格式
2. 1. 3 ARM指令的條件碼域
2. 2 ARM指令定址方式
2. 2. l 數據處理指令的操作數的定址方式
2. 2. 2 字及無符號位元組的Load/Store指令的定址方式
2. 2. 3 雜類Load/Store指令的定址方式
2. 2. 4 批量Load/Store指令的定址方式
2. 2. 5 協處理器Load/Store指令的定址方式
第3章 ARM指令集介紹
3. 1 ARM指令集
3. 1. l 跳轉指令
3. l. 2 數據處理指令
3. 1. 3 乘法指令
3. 1. 4 雜類的算術指令
3. 1. 5 狀態寄存器訪問指令
3. l. 6 Load/Store內存訪問指令
3. 1. 7 批量Load/Store內存訪問指令
3. 1. 8 信號量操作指令
3. 1. 9 異常中斷產生指令
3. 1. 10 ARM協處理器指令
3. 2 一些基本的ARM指令功能段
3. 2. l 算術邏輯運算指令的應用
3. 2. 2 跳轉指令的應用
3. 2. 3 Loacl/Store指令的應用
3. 2. 4 批量Load/Store指令的應用
3. 2. 5 信號量指令的應用
3. 2. 6 與系統相關的一些指令代碼段
3. 3 Thumb指令介紹
第4章 ARM匯編語言程序設計
4. 1 偽操作
4. 1. l 符號定義偽操作
4. 1. 2 數據定義偽操作
4. 1. 3 匯編控制偽操作
4. 1. 4 棧中數據幀描述偽操作
4. 1. 5 信息報告偽操作
4. 1. 6 其他的偽操作
4. 2 ARM匯編語言偽指令
4. 3 ARM匯編語言語句格式
4. 3. 1 ARM匯編語言中的符號
4. 3. 2 ARM匯編語言中的表達式
4. 4 ARM匯編語言程序格式.
4. 4. l 匯編語言程序格式
4. 4. 2 匯編語言子程序調用
4. 5 ARM匯編編譯器的使用
4. 6 匯編程序設計舉例
4. 6. 1 ARM中偽操作使用實例
4. 6. 2 ARM中匯編程序實例
第5章 ARM存儲系統
5. 1 ARM存儲系統概述
5. 2 ARM中用於存儲管理的系統控制協處理器CP15
5. 2. 1 訪問CP15寄存器的指令
5. 2. 2 CP15中的寄存器
5. 3 存儲器管理單元MMU
5. 3. l 存儲器管理單元MMU概述
5. 3. 2 禁止/使能MMU
5. 3. 3 MMU中地址變換過程
5. 3. 4 MMU中存儲訪問許可權控制
5. 3. 5 MMU中的域
5. 3. 6 關於快表的操作
5. 3. 7 ARM中的存儲訪問失效
5. 4 高速緩沖存儲器和寫緩沖區
5. 4. 1 基本概念
5. 4. 2 cache的工作原理和地址映像方法
5. 4. 3 cache的分類
5. 4. 4 cache的替換演算法
5. 4. 5 緩沖技術的使用注意事項
5. 4. 6 存儲系統的一致性問題
5. 4. 7 cache內容鎖定
5. 4. 8 與cache和寫緩沖區相關的編程介面
5. 5 快速上下文切換技術
5. 5. l 快速上下文切換技術原理
5. 5. 2 快速上下文切換技術編程介面
5. 6 與存儲系統相關的程序設計指南
5. 6. l 地址空間
5. 6. 2 存儲器格式
5. 6. 3 非對齊的存儲訪問操作
5. 6. 4 指令預取和自修改代碼
5. 6. 5 IMB
5. 6. 6 存儲器映射的I/O空間
5. 7 AIOA存儲系統的實例
5. 7. 1 L7205的存儲系統概述
5. 7. 2 L7205中的SDRAM
5. 7. 3 L7205中的 MMU
第6章 ATPCS介紹
6. 1 ATPCS概述
6. 2 基本ATPCS
6. 2. l 寄存器的使用規則
6. 2. 2 數據棧使用規則
6. 2. 3 參數傳遞規則
6. 3 幾種特定的ATPCS
6. 3. l 支持數據棧限制檢查的ATPCS
6. 3. 2 支持只讀段位置無關(ROPI)的ATPCS
6. 3. 3 支持可讀寫段位置無關(RWPI)的ATPCS
6. 3. 4 支持ARM程序和Thumb程序混合使用的ATPCS
6. 3. 5 處理浮點運算的ATPCS
第7章 ARM程序和Thumb程序混合使用
7. 1 概述
7. 2 在匯編語言程序中通過用戶代碼支持interwork
7. 2. l 可以實現程序狀態切換的指令
7. 2. 2 與程序狀態切換相關的偽操作
7. 2. 3 進行狀態切換的匯編程序實例
7. 3 在C/C++程序中實現interwork
7. 4 在匯編語言程序中通過連接器支持interwork
7. 4. l 利用veneers實現匯編程序間的程序狀態切換
7. 4. 2 利用veneers實現匯編程序與C/C++程序間的程序狀態切換
第8章 CC++以及匯編語言的混合編程
8. l 內嵌匯編器的使用
8. 1. l 內嵌的匯編指令用法
8. 1. 2 內嵌的匯編器和armasm的區別
8. l. 3 在CC++程序中使用內嵌的匯編指令
8. 1. 4 內嵌匯編指令的應用舉例
8. 2 從匯編程序中訪問C程序變數
8. 3 匯編程序.C程序以及C++程序的相互調用
8. 3. l 在C++程序中使用C程序頭文件
8. 3. 2 匯編程序.C程序以及C++程序的相互調用舉例
第9章 異常中斷處理
9. 1 ARM中異常中斷處理概述
9. 1. 1 ARM體系中異常中斷種類
9. 1. 2 異常中斷向量表及異常中斷優先順序
9. 1. 3 異常中斷使用的寄存器
9. 2 進入和退出異常中斷的過程
9. 2. 1 ARM處理器對異常中斷的響應過程
9. 2. 2 從異常中斷處理程序中返回
9. 3 在應用程序中安裝異常中斷處理程序
9. 3. 1 在系統復位時安裝異常中斷處理程序
9. 3. 2 在C程序中安裝異常中斷處理程序
9. 4 SWI異常中斷處理程序
9. 4. 1 SWI異常中斷處理程序的實現
9. 4. 2 SWI異常中斷調用
9. 5 FIQ和IRQ異常中斷處理程序
9. 5. 1 IRQ/FIQ異常中斷處理程序
9. 5. 2 IRQ異常中斷處理程序舉例
9. 6 復位異常中斷處理程序
9. 7 未定義指令異常中斷
9. 8 指令預取中止異常中斷處理程序
9. 9 數據訪問中止異常中斷處理程序
第10章 ARM C/0++編譯器
10. 1 ARM C/C++編譯器概述
10. 1. 1 ARM C/C++編譯器及語言庫介紹
10. l. 2 ARM編譯器中與搜索路徑相關的一些基本概念
10. 2 ARM編譯器命令行格式
10. 2. l 過程調用標准
10. 2. 2 設置源程序語言類型
10. 2. 3 指定搜索路徑
10. 2. 4 設置預處理選項
10. 2. 5 設置輸出文件類型
10. 2. 6 指定目標處理器和ARM體系版本
10. 2. 7 生成調試信息
10. 2. 8 代碼生成的控制
10. 2. 9 控制警告信息的產生
10. 2. 10 編譯時進行的一些額外的檢查
10. 2. 11 控制錯誤信息
10. 3 ARM編譯器中的pragmas
10. 4 ARM編譯器特定的關鍵詞
10. 4. 1 用於聲明函數的關鍵詞
10. 4. 2 用於聲明交量的關鍵詞
10. 4. 3 用於限定數據類型的關鍵詞
10. 5 ARM編譯器支持的基本數據類型
10. 6 ARM編譯器中預定義宏
10. 7 ARM中C/C++庫
10. 7. 1 ARM中C/C++運行時庫概述
10. 7. 2 建立一個包含C/C++運行時庫的C/C++應用程序
10. 7. 3 建立不包含C運行時庫的應用程序
10. 7. 4 裁減C/C++運行時庫以適應特定的目標運行環境
第11章 ARM連接器
11. 1 ARM映像文件
11. 1. 1 ARM映像文件的組成
11. 1. 2 ARM映像文件的入口點
11. 1. 3 輸入段的排序規則
11. 2 ARM連接器介紹
11. 3 ARM連接器生成的符號
11. 3. 1 連接器生成的與域相關的符號
11. 3. 2 連接器生成的與輸出段相關的符號
11. 3. 3 連接器生成的與輸入段相關的符號
11. 4 連接器的優化功能
11. 5 運行時庫的使用
11. 5. 1 C/C++運行時庫與目標文件
11. 5. 2 查找需要的C/C++運行時庫
11. 5. 3 選擇合適種類的C/C++運行時庫
11. 5. 4 掃描C/C++運行時庫
11. 6 從一個映像文件中使用另一個映像文件中的符號
11. 6. 1 symdefs文件
11. 6. 2 建立symdefs文件
11. 6. 3 symdefs文件的使用
11. 7 隱藏或者重命名全局符號
11. 7. l steering文件的格式
11. 7. 2 steering文件中的命令
11. 8 ARM連接器命令行選項
11. 9 使用scatter文件定義映像文件的地址映射
11. 9. l scatter文件概述
11. 9. 2 satter文件中各部分介紹
11. 9. 3 scatter文件使用舉例
第12章 嵌入式應用程序示例
12. l 嵌入式應用程序設計的基本知識
12. 1. 1 嵌入式應用系統中的存儲映射
12. 1. 2 系統初始化
12. 2 使用semihosting的 C語言程序示例
12. 2. 1 源程序分析
12. 2. 2 生成映像文件
12. 3 一個嵌入式應用系統示例
12. 3. l 源程序分析
12. 3. 2 生成映像文件
12. 3. 3 本例中地址映射模式
12. 4 進行ROM/RAM地址重映射的嵌入式應用系統
12. 4. l 地址映射模式
12. 4. 2 源程序分析
12. 4. 3 生成映像文件
12. 5 一個嵌入式操作系統示例
第13章 使用CodeWarrior
13. 1 CodeWarrior for ADS概述
13. 2 簡單工程項目的使用
13. 2. 1 工程項目窗口
13. 2. 2 簡單工程項目的使用
13. 3 配置生成目標
13. 3. 1 Debug Settings對話框介紹
13. 3. 2 設置牛成目標的基本選項
13. 3. 3 匯編器選項設置
13. 3. 4 編譯器的選項設置
13. 3. 5 連接器的選項設置
13. 3. 6 fromELF工具的選項設置
13. 4 復雜工程項目的使用
13. 4. l 建立一個新的生成目標
13. 4. 2 將一個生成目標更名
13. 4. 3 建立生成目標之間的依賴關系
13. 4. 4 子工程項目的使用
13. 5 工程項目模板
13. 5. 1 ADS中工程項目模板的使用
13. 5. 2 建立用戶工程項目模板
13. 6 編譯和連接工程項目
13. 6. 1 編譯文件
13. 6. 2 生成工程項目
第14章 ARM體系中的調試方法
14. 1 ARM體系中調試系統概述
14. 2 基於Angel的調試系統
14. 2. l 基於Angel的調試系統的概述
14. 2. 2 使用Angel開發應用程序
14. 2. 3 Angel執行的操作
14. 2. 4 將Angel移植到特定的目標系統
14. 3 基於JTAG的調試系統
14. 3. l 基於JTAG的調試系統的特點
14. 3. 2 基於JTAG的調試系統結構
14. 3. 3 目標系統中的調試功能擴展部件
14. 3. 4 基於JTAG的調試過程
14. 4 ADW使用介紹
14. 4. 1 ADW概述
14. 4. 2 ADW中的窗口
14. 4. 3 ADW使用介紹
㈢ 杜春雷的《arm體系結構與編程》,這本書如何,適合自學嗎,題主是一個
這本書知識點掌握後會對ARM硬體內核有較為透徹的了解。但裡面牽涉內容比較廣泛,對於初學者比較難一次性掌握。
㈣ arm架構下有沒有什麼編程語言
linux -- gcc (android就是這個開發的)
IOS -- object C
Windows -- VC
㈤ 嵌入式需要學什麼嵌入式需要學哪些課程和內容
1.1 有哪些設備使用單片機或Linux
所有的電子產品,所用技術都可以認為要麼是單片機,要麼是Linux;GUI方面主要是QT/Android,它們都是運行於Linux之上的。我們說的單片機不使用操作系統,但是使用單片機設備肯定遠遠超過Linux。很多人也是先學習單片機,從單片機進入電子工程師行業,日常生活中,有哪些產品使用單片機、Linux呢?下面舉一些例子:
下面我們用類比和邏輯推導出嵌入式Linux系統的組成,沒錯,「推導」。
從上圖可以知道:
組成:嵌入式Linux系統= bootloader + linux內核 + 根文件系統(裡面含有APP)。
bootloader:它的目的是啟動內核,去哪等讀內核?讀到哪裡?去Flash等外設讀內核,存到內存里去。所以需要有Flash里外設的驅動能力,為了調試方便還會有網路功能。所以,可以認為 booloader = 裸機集合,它就是一個復雜的單片機程序。
Linux內核:Linux內核的最主要目的是去啟動APP,APP保存在哪裡?保存在「根文件系統」里。「根文件系統」又保存在哪裡?在Flash、SD卡等設備里,甚至可能在網路上。所以Linux內核要有這些Flash、SD卡里設備的驅動能力。
不僅如此,Linux內核還有進程調度能力、內存管理等功能。
所以:Linux內核 = 驅動集合 + 進程調度 + 內存管理等。
2.3 要學習bootloader嗎
Bootloader有很多種,常用的叫u-boot。
在實際工作中,對於u-boot基本上是修修改改,甚至不改。但是u-boot本身是很復雜的,比如為了便於調試,它支持網路功能;有些內核是保存在FAT32分區里,於是它要能解析FAT32分區,讀FAT32分區的文件。
花那麼多精力去學習u-boot,但是工作中基本用不到,這對初學者很不友善。
所以,對於初學者,我建議:理解u-boot的作用、會使用u-boot的命令,這就可以了。
如果你的工作就是修改、完善bootloader,那麼再去研究它吧。
2.4 要學習Linux內核、要學習驅動程序嗎
之前我們說過Linux內核 = 驅動集合 + 進程調度 + 內存管理等,如果要學習Linux內核,從驅動程序入手是一個好辦法。
但是人人都要學習Linux內核、人人都要學習Linux驅動嗎?顯然不是。
作為初學者,懂幾個簡單的驅動程序,有利於工作交流;理解中斷、進程、線程的概念,無論是對驅動開發、應用程序開發,都是很有好處的。
所以對於初學者,建議前期只學習這幾個驅動:LED、按鍵、中斷。
LED驅動程序:這是最簡單的驅動程序。
按鍵驅動程序:它也比較簡單,從它引入「中斷」。
中斷:從「中斷」它可以引入:休眠-喚醒、進程/線程、POLL機制、非同步通知等概念。這些概念無論是對驅動開發,還是對應用開發,都很重要。
所以,對於初學者,我建議必須學習這幾個驅動:LED、按鍵、中斷。
入門之後,如果你想從事內核開發、驅動開發,那麼可以去鑽研幾個驅動程序(輸入系統、I2C匯流排、SPI匯流排等),掌握若干個大型驅動程序後,你對內核的套路就有所了解了,再去研究其他部分(比如進程管理、文件系統)時你會發現套路是如此通用。
攝像頭(VL42)、音效卡ALSA驅動是Linux中比較復雜的2類驅動,它們是很難的,如果工作與此相關再去研究。
2.5,要學習Linux應用程序嗎?先學一些基礎技能
要學,即使以後你只想研究內核,一些基本的應用開發編寫能力也是需要的:
基本設備的訪問,比如LCD、輸入設備
進程、線程、進程通信、線程同步與互斥
休眠-喚醒、POLL機制、信號
網路編程
①②③部分的知識,跟驅動有密切的關系,它們是相輔相承的。
掌握了基本驅動開發能力、基本應用開發能力之後,在工作中你就可以跟別人友好溝通了,不至於一臉懵逼。
2.6,應用程序是怎麼啟動的?要了解一下根文件系統
你辛辛苦苦寫出了應用程序,怎麼把它放到板子上,讓它開機就自動啟動?
你寫的程序,它依賴於哪些庫,這些庫放到板子上哪個目錄?
怎麼做一個可升級的系統?即使升級中途斷電了,也要保證程序至少還可以運行老的版本?
這些都需要我們了解一下根文件系統。
先了解一下init進程:它要讀取配置文件,根據配置文件啟動各個APP。
了解了init進程,你就了解了根文件系統的組成,就可以隨心所欲裁剪系統,為你的項目製作出最精簡的系統。
第3章 學習方法
3.1 先不要打破砂鍋問到底
嵌入式涉及的東西太多太雜了,如果心裡沒有主線,碰到什麼都要去研究個透徹,最終反而忘記自己要學什麼了。
嵌入式涉及硬體知識、軟體知識,軟體里涉及匯編、ARM架構、C語言、Makefile、Shell;又分為bootloader、內核、驅動、基本的APP、GUI。
比如我們會用到Makefile,了解它的基本規則,會用我們提供的Makefile就可以。
不需要深入研究那些make函數,因為在工作中都有現成的Makefile給你使用,不需要自己去編寫一套Makefile。何必花上好幾天去深入研究它呢?
比如我們會用到bootloader,難道又要花上幾個月來深入研究u-boot嗎?工作中基本不需要改u-boot,會用那幾個命令就可以。
甚至有些學員先去買本shell的書來學習shell命令,何必?我們在視頻中用到什麼命令,你不懂時再去網路一下這些命令就可以了。
不要脫離初學者的主線:應用基礎、驅動基礎。有了這2個基礎後,你想深入研究某部分時,再去花時間吧。
3.2 思路要清晰,不怕抄代碼
視頻里的代碼,請你一定要自己去寫一次、寫多次。為什麼我現在寫驅動那麼熟?我2009年在華清遠見上課時,
每次上課我都要給學生寫一次那些驅動,十幾次下來閉著眼睛都知道內核的套路了。
記不住那些函數?我也記不住,我都是去參考同類的驅動程序,這又不是閉卷考試。
但是要理清楚思路,你寫這個程序要完成什麼功能、怎麼實現這些功能?這個要弄清楚。
有了思路後再寫代碼,不知道怎麼寫?沒關系,看看視頻,看看示例,然後關閉視頻看看能否自己寫出來。
3.3 對自己的方向很了解,我只能帶你到這里了
我的專長是操作系統,是快速地帶領大家掌握一些項目開發的基礎知識。
如果你決定深入研究某方面時,我並不能帶你多久。你要去看源碼,去看這方面的專業書籍。
比如想深入鑽研內核的內存管理時,它有頁表映射(你需要閱讀ARM架構的手冊)、SLAB分配器、vmalloc/malloc實現、mmap實現、缺頁中斷、父進程子進程之間的頁面管理等等,內容非常多。有時候連書籍都沒有,你需要直接啃代碼。
當你想從事某個行業時,就需要深入研究行業相關的知識。
比如CAN匯流排,它可以寫成一本書:CAN協議、CAN報文、Socket CAN、車身網路拓撲結構,CAN應用報文,CAN網路管理報文,CAN診斷報文。
想做物聯網網關,需要深入研究MQTT,MQTT協議相對簡單,但是MQTT英文原版協議有130多頁,中文版有近100頁,是一本小書了。
每個行業都有自己的業務邏輯,在掌握基本的編程能力之一,你需要結合具體的業務去深入學習。
㈥ 學習 arm體系結構與編程 這門課需要什麼基礎啊
C語言基礎,匯編語言基礎,到後面需要linux的相關知識,最重要的是你學會看arm的用戶手冊,因為arm要記得的東西不算多,因為我們是根據使用手冊來編程的,建議你買一塊arm的板子裡面很多學習arm的資料,你也最好買一本相關的書看,個人建議你買2440的開發板和書本,只要熟悉一個類型的開發,其他類型的開發類似的
㈦ ARM嵌入式系統結構與編程的目錄
ARM嵌入式系統結構與編程(第2版) 目錄第1章緒論1.1嵌入式系統定義1.1.1嵌入式系統發展歷程1.1.2嵌入式系統的定義與特點1.2嵌入式操作系統1.2.1嵌入式實時操作系統1.2.2實時操作系統的典型應用1.3嵌入式技術在工程領域的應用1.4嵌入式技術的發展趨勢思考與練習題第2章ARM技術與ARM體系結構2.1ARM體系結構版本與內核2.1.1ARM體系結構版本2.1.2ARM內核版本命名規則2.1.3主流ARM處理器內核系列與應用2.2ARM內核模塊2.3ARM處理器的工作模式2.4內部寄存器2.4.1通用寄存器及其分布2.4.2程序狀態寄存器2.5ARM異常處理2.6存儲方式與存儲器映射機制2.7ARM流水線技術分析思考與練習題第3章ARM指令集定址方式3.1ARM指令的編碼格式3.2數據處理指令定址方式3.3Load/Store指令定址3.3.1地址計算方法3.3.2字、無符號位元組定址3.3.3半字、有符號位元組定址3.4批量Load/Store指令定址方式3.5協處理器指令定址方式思考與練習題第4章ARM指令集系統4.1數據處理指令4.1.1基本數據處理指令4.1.2乘法指令4.1.3雜類的數據處理指令4.2ARM分支指令4.3載入/存儲指令4.3.1載入/存儲字、無符號位元組指令4.3.2半字、有符號位元組訪問指令4.4批量載入/存儲指令4.4.1基本批量字數據載入/存儲指令4.4.2用戶模式下的批量字數據載入/存儲指令4.4.3帶PSR操作的批量字數據載入指令4.5交換指令4.6程序狀態寄存器PSR訪問指令4.7協處理器操作指令4.7.1協處理器數據操作指令4.7.2協處理器載入/存儲指令4.7.3ARM寄存器與協處理器寄存器數據傳輸指令4.8異常產生指令思考與練習題第5章Thumb指令5.1Thumb數據處理指令5.1.1寄存器移位指令5.1.2低位寄存器算術運算指令5.1.3ALU操作指令5.1.4帶高位寄存器操作的Thumb指令5.1.5帶SP/PC的算術運算指令5.2Thumb存儲器操作指令5.2.1位元組、半字和字的載入/存儲指令5.2.2批量載入/存儲指令5.3Thumb分支指令5.3.1B分支指令5.3.2帶鏈接的分支指令5.3.3帶狀態切換的分支指令5.4Thumb軟中斷指令5.5Thumb指令功能碼段分析5.5.1Thumb與ARM實現功能比較5.5.2Thumb與ARM性能比較思考與練習題第6章ARM匯編偽指令與偽操作6.1匯編語言偽指令6.1.1ARM匯編語言偽指令6.1.2Thumb匯編語言偽指令6.2ARM匯編語言偽操作6.3ARM匯編偽操作6.3.1符號定義偽操作6.3.2數據定義偽操作6.3.3匯編代碼控制偽操作6.3.4匯編信息報告控制偽操作6.3.5指令集類型標識偽操作6.3.6文件包含偽操作6.3.7其他類型偽操作6.4GNU ARM匯編偽操作6.4.1符號定義偽操作6.4.2數據定義偽操作6.4.3匯編與反匯編代碼控制偽操作6.4.4預定義控制偽操作思考與練習題第7章匯編語言程序設計7.1ARM編譯環境下匯編語句7.1.1ARM編譯環境下匯編語句格式7.1.2ARM編譯環境下匯編語句中符號規則7.2GNU環境下匯編語句與編譯說明7.2.1GNU環境下ARM匯編語句格式7.2.2GNU環境下ARM匯編程序編譯7.3ARM匯編語言程序設計規范7.4ARM匯編語言程序設計實例解析思考與練習題第8章ARM匯編語言與嵌入式C混合編程8.1嵌入式C編程規范8.2嵌入式C程序設計中的位運算8.3嵌入式C程序設計中的幾點說明8.3.1volatile限制符8.3.2地址強制轉換與多級指針8.3.3預處理的使用8.4嵌入式C程序設計格式8.5過程調用標准ATPCS與AAPCS8.5.1寄存器使用規則8.5.2數據棧使用規則8.5.3參數傳遞規則8.6ARM匯編語言與嵌入式C混合編程8.6.1內嵌匯編8.6.2ARM匯編語言與嵌入式C程序相互調用思考與練習題第9章S3C44B0/S3C2410/S3C2440硬體結構與關鍵技術分析9.1處理器簡介9.2S3C44B0/S3C2410/S3C2440存儲控制器9.2.1S3C44B0存儲控制與地址空間9.2.2S3C2410/S3C2440存儲控制與地址空間9.2.3S3C44B0/S3C2410/S3C2440存儲位寬控制9.2.4S3C44B0/S3C2410/S3C2440存儲器介面時序分析9.2.5S3C44B0/S3C2410存儲控制寄存器9.2.6SDRAM介面電路設計9.2.7S3C44B0存儲器初始化實例9.3S3C2410/S3C2440 NAND Flash控制器9.4S3C44B0/S3C2410/S3C2440時鍾電源管理9.4.1S3C44B0/S3C2410/S3C2440時鍾管理9.4.2S3C44B0/S3C2410/S3C2440電源管理9.4.3S3C44B0/S3C2410/S3C2440時鍾與電源管理專用寄存器9.5S3C44B0/S3C2410/S3C2440通用 I/O埠9.5.1埠控制描述9.5.2埠寄存器9.5.3通用I/O介面設計實例9.6S3C44B0/S3C2410/S3C2440中斷機制9.6.1S3C44B0中斷控制器9.6.2S3C2410/S3C2440中斷控制器9.6.3S3C44B0/S3C2410/S3C2440中斷控制特殊功能寄存器9.6.4S3C44B0/S3C2410/S3C2440中斷控制器設計實例思考與練習題第10章S3C44B0/S3C2410/S3C2440通信與LCD介面技術10.1S3C44B0/S3C2410/S3C2440 UART10.1.1UART原理10.1.2S3C44B0/S3C2410/S3C2440 UART模塊10.1.3S3C44B0/S3C2410/S3C2440 UART操作10.1.4UART中斷與波特率的計算10.1.5S3C44B0/S3C2410/S3C2440 UART專用功能寄存器10.1.6S3C44B0/S3C2410 UART設計實例10.2S3C44B0/S3C2410/S3C2440 I2C匯流排介面10.2.1I2C匯流排原理10.2.2S3C44B0/S3C2410/S3C2440 I2C匯流排功能模塊10.2.3S3C44B0/S3C2410/S3C2440 I2C匯流排操作10.2.4S3C44B0/S3C2410/S3C2440 I2C專用功能寄存器10.2.5S3C44B0/S3C2410/S3C2440 I2C匯流排設計實例10.3S3C44B0/S3C2410/S3C2440 LCD控制器10.3.1LCD簡介10.3.2S3C44B0/S3C2410/S3C2440 LCD控制器模塊10.3.3S3C44B0/S3C2410/S3C2440 LCD控制器專用功能寄存器10.3.4S3C44B0/S3C2410/S3C2440 LCD控制器設計實例思考與練習題附錄AS3C44B0/S3C2410/S3C2440封裝與I/O復用信息附錄B鏈接定位與系統引導程序附錄CARM嵌入式系統結構課程考核標准試題參考文獻
(此目錄為2013年7月更新的第2版)
㈧ arm體系結構與編程適合沒有學過單片機的初學者么
學arm,其實開始完全不用去看這本書,講的都是匯編指令啥的,開始沒什麼用,現在都是C語言和C++來開發arm,都是跑操作系統的,arm工作方向主要分三個,第一就是硬體工程師,做電路板設計的,第二個就是系統工程師,主要是驅動編寫,和移植嵌入式操作系統,第三個方向就是應用程序開發,完全不用懂硬體,用C++開發或者C語音等,至於你去看arm體系與結構,我告訴你,看100遍都沒什麼用,動手寫一個點燈的驅動,然後開發一個應用程序,調用你的驅動,把燈點亮了,這個初學最快,一點經驗之談