單片機內核Cortex-M3的八個知識點1.指令集 32位ARM指令集:對應ARM狀態 16位Thumb指令集:對應Thumb狀態(是ARM指令集的一個子集) 指令集演進圖 2.BKP備份寄存器(42個16位寄存器組成),用來存儲用戶應用程式數據。在Vdd掉電時由Vbat供電。。在待機複位、系統復 ...
單片機內核Cortex-M3的八個知識點
1.指令集
32位ARM指令集:對應ARM狀態
16位Thumb指令集:對應Thumb狀態(是ARM指令集的一個子集)
指令集演進圖
2.BKP備份寄存器(42個16位寄存器組成),用來存儲用戶應用程式數據。在Vdd掉電時由Vbat供電。。在待機複位、系統複位、電源複位後,這些寄存器不會被覆位
3.不再像別的ARM7那樣從thumb狀態和ARM狀態來回切換
Thumb-2指令集橫空出世,Cortex-M3不支持ARM指令集
4.DMA用來提供外設和存儲器以及存儲器和存儲器之間的高速數據傳輸,而不需要CPU干預。
當DMA和CM3核同時訪問相同的目標(外設或者RAM)時,匯流排仲裁器會迴圈調度,確保CM3核得到至少一半的系統匯流排帶寬。
5.Cortex-M3的內核是指MCU的CPU,而完整的MCU還要加上其他外設,如存儲器、IO等其他模塊。
下圖是一個MCU內部組成結構圖
6.ARM結構的發展V4(ARM7)、V5(ARM9)、V6(ARM11)、V7A/R/M(Cortex系列)
ARM處理器架構進化史
7.Cortex-M3使用的是Thumb-2指令集:支持16位/32位指令,因此不用再來回切換
8.Cortex-M3為32位處理器內核。存儲器機構、寄存器、內部的數據路徑都是32位的。採用哈弗結構,擁有獨立的指令匯流排和數據匯流排,使得指令匯流排和數據匯流排並行不悖。但是指令匯流排和數據匯流排共用同一個存儲器空間。