目錄
? ? ? 1.SOC
? ? ? ? 2.內核架構的分類
? ? ? ? 3.馮諾依曼架構和哈佛架構
? ? ? ? 4.kernel
? ? ? ? 5.指令集
? ? ? ? 6.ARM處理器產品分類
? ? ? ? 7.編譯的四個步驟?編輯
? ? ? ? 8.RAM和ROM?編輯
? ? ? ? 9.ARM處理器工作模式
? ? ? ? 10.異常處理
????????11.CPSR程序狀態寄存器
? ? ? 1.SOC
????????system on chip 片上系統,可以運行操作系統的一種高端的功能強大的芯片。
? ? ? ? ps? 圖中arm指的是arm的kernel
? ? ? ? 2.內核架構的分類
? ? ? ? (1)ARM公司的ARM架構(收費)? ? ?該公司不生產芯片,只設計芯片,賣給別人授權
? ? ? ? (2)x86架構(收費)? ? ?主機電腦
? ? ? ? (3)MIPS
? ? ? ? (4)RISC V
? ? ? ? 3.馮諾依曼架構和哈佛架構
? ? ? ? (1)馮諾依曼架構中將數據與指令存放在同一存儲器中
? ? ? ? (2)哈佛架構是將數據與指令存放在不同的存儲器中。ARM采用的是哈佛架構
? ? ? ? 4.kernel
????????
? ? ? ? ALU:arithmetic logic unit算數邏輯單元。作用 算數。
? ? ? ? R0-R15??通用寄存器? ? ?裝那些計算需要用的數。?
? ? ? ? R13(SP)?棧指針寄存器? ?操作棧需要一個指針,該指針也存放在此寄存器中。??
????????R14(LR)??鏈接寄存器? ?函數跳轉時將將來要回來的地址裝到LR中。
????????R15(PC)?程序計數器,指向當前執行的指令的下一個指令地址。
? ? ? ? cache 高速緩存
? ? ? ? i cache? (instructinon cache) 指令cache
? ? ? ? d cache (data cache) 數據cache
????????MMU:memory management unit 內存管理單元,把虛擬內存映射為RAM中的物理內存。從物理內存寫回到虛擬內存時,還要把物理內存映射為虛擬內存。
? ? ? ? CPSR current program?status?register? 當前程序狀態寄存器,存放當前的程序狀態
? ? ? ? SPSR saved program?status?register?是CPSR的備份,方便程序返回之前CPSR的狀態
? ? ? ? 5.指令集CISC RISC
????????CISC:complex instruction set computer復雜指令集計算機;性能強大、功能豐富但成本高、不利于便攜使用,如x86
????????RISC:reduced?instruction set computer精簡指令集計算機;體積小,成本低,如ARM
????????
????????AHB:先進高速總線,連接高速設備,RAM,網口,USB
????????APB:? ?先進外設總線,連接低速設備,UART,GPIO,TIMER
? ? ? ? ps? Kernel與外設連線稱為總線:
? ? ? ? 若只有一根稱為單總線結構;
? ? ? ? 若有兩根及以上稱為多總線結構;
????????
? ? ? ? 6.ARM處理器產品分類
ARM Cortex A(application)(應用于消費類電子產品)
????????????????????R(realtime embeded)(應用于實時性方向,如軍事,通信)?
? ? ? ? ? ? ? ? ? ? M(MCU&FPGA)(應用于微控制器MAU方向,如STM32)
? ? ? ? ? ? ? ? ? ? ?
? ? ? ? 7.編譯的四個步驟
? ? ? ? (1)預處理? 文件包含,條件包含,宏定義那些操作
? ? ? ? (2)編譯? 把c語言代碼轉換為助記符的寫法
? ? ? ? (3)匯編? ?助記符換為二進制機器指令
? ? ? ? (4)鏈接? 多個.c .o文件,確定彼此之間函數調用關系
? ? ? ? 8.RAM和ROM
? ? ? ? ?nor flash 可被尋址? ?nand flash 不可尋址
????????
? ? ? ? 9.ARM處理器工作模式
? ? ? ? ????????ARM有7個基本工作模式:
? ? ? ? ? ? ? ? User:非特權模式,大部分任務執行在這種模式
? ? ? ? ? ? ? ? FIQ:當一個高優先級(fast)中斷產生時將會進入這種模式
? ? ? ? ? ? ? ? IRQ:當一個低優先級(normal)中斷產生時將會進入這種模式
? ? ? ? ? ? ? ? Supervisor:當復位或軟中斷指令執行時將會進入這種模式
? ? ? ? ? ? ? ? Abort:當存取異常時將會進入這種模式
? ? ? ? ? ? ? ? Undef:當執行未定義指令時會進入這種模式
? ? ? ? ? ? ? ? System:使用和User模式相同寄存器集的特權模式
? ? ? ? 10.異常處理
????????
注意:
中斷的本質也是一種異常;
異常向量表:用于存儲不同類型異常發生時,處理器跳轉到特定的異常處理程序的地址;————用于存儲不同類型異常發生時處理器跳轉地址的特定內存區域,就是由操作系統初始化并設置基址寄存器指向的異常向量表(EVT)。這個表的每個條目都存儲著對應異常處理程序的起始地址。
在同一種中斷中,同一模式下的中斷不能被再次被直接打斷
FIQ中斷
IRQ中斷
(保留)
Data Abort(數據存儲異常)————對RAM的訪問發生錯誤
Prefetch Abort(預取失敗異常)————指令預取階段內存訪問失敗觸發
Software Interrupt(軟中斷異常)————軟件中斷(任務切換),多任務的并發靠底層的軟中斷實現
Undefined Instruction(未定義指令異常)
Reset(復位異常)
????????11.CPSR程序狀態寄存器
1、N,V,C,Z位
注:匯編指令的s后綴,幾乎所有的匯編指令都可以在指令后面加上s后綴,s后綴的含義是在指令執行過程中會更新cpsr寄存器的N,V,C,Z位N:在結果是有符號的二進制補碼情況下,如果結果為負數,則N=1;如果結果為非負數,則N=0
Z:如果結果為0,則Z=1;如果結果為非零,否則Z=0
C:是針對無符號數最高有效位向更高位進位時C=1;減法中運算結果的最高有效位從更高位借位時C=0
V:該位是針對有符號數的操作,會在下面兩種情形變為1,兩個最高有效位均為0的數相加,得到的結果最高有效位為1;兩個最高有效位均為1的數相加,得到的結果最高有效位為0;除了這兩種情況以外V位為0