導航:首頁 > 文件教程 > arm映像文件及執行機理

arm映像文件及執行機理

發布時間:2023-08-01 14:08:07

❶ 關於linux移植到arm的問題

你是開始學 arm 嵌入式?還是現在就上手?
這些都是嵌入式的基礎部分,如果你剛開始學,那麼你會首先學到這兩部分。
如果是上手開發,那麼你不會這兩部分那就說不過去了……

arm 需要用交叉編譯器編一個針對你的 arm 環境的內核,以及一個 / 環境,這個都需要用交叉編譯器編譯出來。之後 / 環境燒進 arm 設備的 rom 里。如何實現這些文件的存儲就要看具體的環境了。

之後還需要 bootloader ,arm 設備是沒有 bios 的,也不能上 grub ,他需要一個 bootloader 來初始化硬體以及啟動 linux 內核。bootloader 一般在 arm 設備的存儲器特殊位置,應該位於整個存儲設備的最開始部分,後面是內核在後面是 / 文件系統。這里的具體設置要看你的環境來說了,反正 bootloader 在最開始是必須的。
也有可能 bootloader 不在 ROM 上,他在另外一個存儲器中,與 Linux 系統數據分開存放。

linux 啟動完成內核後,根據你的設置,會掛載 / 後繼續啟動。後面的啟動就和計算機上面差不多了,不過因為 arm 環境都是很簡化的環境,所以他的設計理念不同於計算機,需要盡可能的簡化軟體需求。
----------------------------
很明顯,你連基礎理論都還不知道。這個沒辦法告訴你怎麼操作,環境不同,要求不同,操作也肯定不同。

❷ 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使用介紹

❸ 什麼是內核映像

Linux內核在PC上以文件的形式存在(保存成磁碟文件形式),就是所謂的「映像文件」。Linux內核映像文件最終是要燒錄到目標板的flash中。
Linux
內核映像文件有兩種:一種是非壓縮版本,叫Image;另一種是它的壓縮版本,叫zImage。zImage是Image經過壓縮形成的,所以它的大小比Image小。為了能使用zImage這個壓縮版本,必須在它的開頭加上解壓縮的代碼,將zImage
解壓縮之後才能執行,因此它的執行速度比Image要慢。但考慮到嵌入式系統的存儲空容量一般都比較小,內核要常駐內存,採用zImage可以佔用較少的存儲空間,因此犧牲一點性能上的代價也是值得的,所以一般嵌入式系統均採用壓縮的內核映像文件,即zImage。
zImage是ARM
Linux常用的一種壓縮映像文件,uImage是U-boot專用的映像文件,它是在zImage之前加上一個長度為0x40的「頭」,說明這個映像文件的類型、載入位置、生成時間、大小等信息。換句話說,如果直接從uImage的0x40位置開始執行,zImage和uImage沒有任何區別。另外,Linux2.4內核不支持uImage,Linux2.6內核加入了很多對嵌入式系統的支持,但是uImage的生成也需要設置。

❹ arm7 中 linux 有關BOOTload有雲:「內存映射就是指在整個4GB物理地址空間中有哪些地址范圍被分配用來

恩這個Flash,這速度怎麼跑程序,就像電腦不也得內存加硬碟嗎。簡單的說Flash只是用來存儲數據的,RAM是來跑程序跑系統的啊。內存映射其實是操作系統端來說的,最終還是操作的是硬體地址,一個終端裡面除了內存還有其他的CPU寄存器啊之類的,在系統中運行的程序都會映射到linux內核中去

閱讀全文

與arm映像文件及執行機理相關的資料

熱點內容
nyx在網路上是什麼意思 瀏覽:145
樂播農業app是什麼 瀏覽:530
編程框架如何開發 瀏覽:136
金庸群俠傳3修改代碼 瀏覽:712
檢察院的文件類別有哪些 瀏覽:793
怎麼把九游殘留數據刪除 瀏覽:828
有什麼女生主動聊天的app 瀏覽:436
有哪些可以督促自己的app 瀏覽:244
用USB傳輸視頻文件夾顯示為空 瀏覽:710
恢復文件軟體免費版手機 瀏覽:648
lg怎麼隱藏文件 瀏覽:836
蘋果免費讀書app推薦 瀏覽:497
劉駿微信 瀏覽:113
書旗舊版本80 瀏覽:467
教編程考什麼證 瀏覽:990
下載編程貓後哪裡有客服 瀏覽:13
如何編輯歌曲文件格式 瀏覽:638
cf無限領取cdk工具 瀏覽:350
如何讓手機文件保存到電腦上 瀏覽:459
sa資料庫默認密碼是多少 瀏覽:191

友情鏈接