ARM裸機開發 bootloader 內部看ARM

2021-07-22 09:47:14 字數 2050 閱讀 8643

一、嵌入式大彙總

1、晶元:s3c2440、s3c6410、s5pv210

2、arm核:a8、arm9、arm11

3、指令架構:armv7、armv6

2440使用的是arm9的核,核心使用的是armv4的指令架構;

6410使用的是arm11的核,核心使用的是armv6的指令架構;

210使用的是a8的核,核心使用的是armv7的指令架構。

arm11cortexa5 a8 a9

arm9cortexr4

arm7cortexm0 m1m3 m4 

arm經典cortexm cortexr cortexa

cortexm主要用於工業控制領域,不能安裝作業系統;

cortexr用於實用控制;

cortexa用於多**。

4、核對比

arm7類似cortexm3主要用於裸機開發。

arm9和arm11是介於cortexr與cortexa中間的arm核心。

5、晶元對比

晶元對比

2440

6410

210處理速度

400-500m

533-667m

800-1g

快取16k

16k32k

記憶體介面

sdram

ddrsdram

ddr1

ddr2

支援os

wince/linux

wince/linux/andoid

wince/linux/andoid

其它停產

生產中生產中

二、arm工作模式

1、arm一共有幾種工作模式,為什麼

arm共有7種工作模式,usr、svc、sys、irq、fiq、und、abt

不同的工作模式下,可以訪問不同的暫存器和指令。這就保證了不同工作任務的分類處理。例如在linux中應用程式

工作在usr模式下,而linux核心工作在svc模式下。

sys是在armv4中新加入的模式,一般不會用到。

usrnormal program execution mode

fiqsupports a high-speed data transfer or channel process

irqused for general-purpose interrupt handling

svca protected mode for the operating system

abtimplements virtual memory and memory protection

undsupports software emulation of hardware coprocessors

sysruns privileged operating system tasks(armv4 and above)

2、arm暫存器詳解

arm暫存器、狀態暫存器}

arm共有37個暫存器,其中31個通用暫存器和6個狀態暫存器。

r13:sp堆疊指標暫存器

r15:pc指標,計數器。

cpsr和spsr都是狀態暫存器,它們有著共同的模式。當發生中斷等異常時,將cpsr中的狀態數字儲存到相應的異常模式下的spsr,等要返回原來模式時,就呼叫spsr中的狀態數字,就可以返回原來模式了。

三、arm的定址方式

1、什麼是定址方式

定址方式就是指根據指令中資訊來查詢運算元的方式

2、都有哪些定址方式

1、立即數定址

就是其中指令就是運算元,對指令進行操作就是對運算元直接操作。

2、暫存器定址

暫存器中存放的是運算元,對暫存器進行操作就是對暫存器中的內容運算元進行操作。

3、暫存器間接定址

暫存器中存放的是記憶體位址,通過記憶體位址對運算元進行間接的訪問。

4、基址變址定址

暫存器中存放的是基址,而後又加變址,基址加變址就是乙個運算元的記憶體位址。

5、相對定址

跳轉指令中相對定址pc指標的當前值為基位址,指令中的位址標號作為偏移量,將兩者相加之後得到運算元的有效位址。

ARM 裸機 02 ARM裸機開發流程

執行在不同平台上的程式,開發過程不盡相同。為了更好地理解 arm 裸機的開發流程,我們先和比較熟悉的 windows linux 應用程式開發對比。不同平台程式開發流程對比示意 編譯嵌入式程式的平台稱為宿主機,譬如執行 ubuntu 系統的 pc。執行嵌入式程式的平台稱為目標機,譬如 arm 開發板...

ARM裸機開發快速體驗

一。linux平台 自己寫makefile 自己寫lds指令碼 自己搭建除錯環境 二。裸機開發流程 1 編寫裸機程式 2 除錯裸機程式 3 編譯 鏈結 格式轉換成二進位制映像 1.安裝交叉工具鏈 把課程裡面的工具包拷貝到linux,解壓arm linux gcc到根目錄 c 交叉工具在usr loc...

ARM裸機開發(五)SPI

以下裸機程式基於gt2440,編譯器為arm linux gcc 4.4.3。程式結構 本程式只有乙個spi.s檔案。程式流程 首先上電復位進入復位異常,在復位異常裡依次呼叫子程式關閉看門狗 初始化系統時鐘 初始化串列埠,最後呼叫spi傳送資料,spi傳送的資料在程式裡指定,對於本程式傳送資料為乙個...