cortex-A7架構概要


1.運行模式

1.1:m3架構就只有特權和非特權兩種模式,而A7有1種用戶模式+8種特權模式

1.2:用戶模式不能訪問系統的所有資源,需借助異常來切換到其他模式才能訪問被授以權限的資源

1.3:當發生中斷或異常,處理器進入相應的處理模式,為了保護用戶模式下的寄存器不被破壞,相應的模式提供了對應的寄存器組以供使用

 

 

2.寄存器組

2.1:淺色即是與user共用的寄存器,藍色是各個模式所特有的

 

2.2:未備份寄存器R0-R7,9種模式所共用,切換模式,數據就會被破壞

2.3.:備份寄存器:R8-R14;R13也即sp,存放專用的棧地址;R14即連接寄存器,存放當前子程序的返回地址

2.4:程序計數器:R15,存放指向正在執行的指令的地址+8bytes(32位arm三級流水線,取指>譯碼>執行)

2.5:程序狀態寄存器:CPSR,該寄存器包含了條件標志位、中斷禁止位、當前處理器模式標志等一些狀態位以及一些控制位。所有的處理器模式都共用一個 CPSR 必然會導致沖突,為此,除了 User 和 Sys 這兩個模式以外,其他 7 個模式每個都配備了一個專用的物理狀態寄存器,叫做 SPSR(備份程序狀態寄存器),當特定的異常中斷發生時,SPSR 寄存器用來保存當前程序狀態寄存器(CPSR)的值,當異常退出以后可以用 SPSR 中保存的值來恢復 CPSR

 

 

3.GNU匯編語法

3.1:語句組成:         label:instruction @ comment

3.2:(1)預定義段:.text 表示代碼段,.data 初始化的數據段,.bss 未初始化的數據段,.rodata 只讀數據段;

   (2)自定義段:.section .mysection @定義一個 mysetcion 段

3.3:偽操作:

.byte 定義單字節數據,比如.byte 0x12。
.align 數據字節對齊,比如:.align 4 表示 4 字節對齊。
.end 表示源文件結束。
.global 定義一個全局符號,格式為:.global symbol,比如:.global _start;匯編程序的默認入口標號是_start
3.4:常用指令:

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM