Cortex-M3是一個 32位處理器內核。內部的數據路徑是 32位的,寄存器是 32位的,存儲器接口也是 32 位的。CM3 采用了哈佛結構,擁有獨立的指令總線和數據總線,可以讓取指與數據訪問并行不悖。這樣一來數據訪問不再占用指令總線,從而提升了性能。為實現這個特性, CM3內部含有好幾條總線接口,每條都為自己的應用場合優(yōu)化過,并且它們可以并行工作。但是另一方面,指令總線和數據總線共享同一個存儲器空間(一個統一的存儲器系統)。
Cortex-M3 處理器內核
Cortex-M3 處理器系統方框圖
Cortex ‐ M3總線連接范例
寄存器組
Cortex ‐ M3處理器擁有 R0‐R15 的寄存器組。其中 R13 作為堆棧指針 SP 。SP 有兩個,但在同一時刻只能有一個可以看到,這也就是所謂的“banked ”寄存器。
存儲器映射
Cortex ‐ M3預定義的存儲器映射
不像其它的 ARM 架構,它們的存儲器映射由半導體廠家說了算,Cortex ‐ M3預先定義好了“粗線條的”存儲器映射。通過把片上外設的寄存器映射到外設區(qū),就可以簡單地以訪問內存的方式來訪問這些外設的寄存器,從而控制外設的工作。結果,片上外設可以使用 C 語言來操作。這種預定義的映射關系,也使得對訪問速度可以做高度的優(yōu)化,而且對于片上系統的設計而言更易集成(還有一個重要的,不用每學一種不同的單片機就要熟悉一種新的存儲器映射——譯注)。
Cortex ‐ M3 的內部擁有一個總線基礎設施,專用于優(yōu)化對這種存儲器結構的使用。在此之上,CM3 甚至還允許這些區(qū)域之間“越權使用”。比如說,數據存儲器也可以被放到代碼區(qū),而且代碼也能夠在外部RAM 區(qū)中執(zhí)行(但是會變慢不少——譯注)。處于最高地址的系統級存儲區(qū),是CM3 用于藏“私房錢”的——包括中斷控制器、MPU以及各種調試組件。所有這些設備均使用固定的地址。通過把基礎設施的地址定死,就至少在內核水平上,為應用程序的移植掃清了障礙。
cortex m3 中的異常類型