Cortex-M3 處理器內(nèi)核
Cortex-M3 處理器系統(tǒng)方框圖Cortex ‐ M3總線連接范例寄存器組Cortex ‐ M3處理器擁有R0‐R15 的寄存器組。其中 R13 作為堆棧指針 SP 。SP 有兩個,但在同一時刻只能有一個可以看到,這也就是所謂的“banked ”寄存器。
存儲器映射Cortex ‐ M3預定義的存儲器映射不像其它的 ARM 架構(gòu),它們的存儲器映射由半導體廠家說了算,Cortex ‐ M3預先定義好了“粗線條的”存儲器映射。通過把片上外設(shè)的寄存器映射到外設(shè)區(qū),就可以簡單地以訪問內(nèi)存的方式來訪問這些外設(shè)的寄存器,從而控制外設(shè)的工作。結(jié)果,片上外設(shè)可以使用 C 語言來操作。這種預定義的映射關(guān)系,也使得對訪問速度可以做高度的優(yōu)化,而且對于片上系統(tǒng)的設(shè)計而言更易集成(還有一個重要的,不用每學一種不同的單片機就要熟悉一種新的存儲器映射——譯注)。
Cortex ‐ M3的內(nèi)部擁有一個總線基礎(chǔ)設(shè)施,專用于優(yōu)化對這種存儲器結(jié)構(gòu)的使用。在此之上,CM3 甚至還允許這些區(qū)域之間“越權(quán)使用”。比如說,數(shù)據(jù)存儲器也可以被放到代碼區(qū),而且代碼也能夠在外部RAM 區(qū)中執(zhí)行(但是會變慢不少——譯注)。處于最高地址的系統(tǒng)級存儲區(qū),是CM3 用于藏“私房錢”的——包括中斷控制器、MPU以及各種調(diào)試組件。所有這些設(shè)備均使用固定的地址。通過把基礎(chǔ)設(shè)施的地址定死,就至少在內(nèi)核水平上,為應(yīng)用程序的移植掃清了障礙。
cortex m3 中的異常類型