新聞資訊
          center
          地址:浙江省嘉興市南湖區文賢路134號
          電話(huà):400-600-0406
          傳真:0573-82816086
          主頁(yè):www.riyetan.com
          郵箱:jxbovi@163.com
          主營(yíng):全自動(dòng)貼片機、錫膏印刷機、全自動(dòng)上下板機、全熱風(fēng)回流焊、SMT周邊配件等
          4售后服務(wù)?->?售后服務(wù)
          您的位置:首頁(yè)?->?新聞資訊

          Cortex-M3

          作者:博維科技 時(shí)間:2021-01-06 14:56

          首先,在學(xué)習Cortex-M3時(shí),我們必須要知道必要的縮略語(yǔ)。整理如下:AMBA:先進(jìn)單片機總線(xiàn)架構   ADK:AMBA設計套件

          AHB:先進(jìn)高性能總線(xiàn)    AHB-AP:AHB訪(fǎng)問(wèn)端口

          APB:先進(jìn)外設總線(xiàn)    ARM ARM:ARM架構參考手冊

          ASIC:行業(yè)領(lǐng)域專(zhuān)用集成電路    ATB :先進(jìn)跟蹤總線(xiàn)

          BE8:字節不變式大端模式    CPI:每條指令的周期數

          DAP:調試訪(fǎng)問(wèn)端口    DSP:數字信號處理(器)

          DWT:數據觀(guān)察點(diǎn)及跟蹤    ETM:嵌入式跟蹤宏單元

          FPB:閃存地址重載及斷點(diǎn)  FSR:fault狀態(tài)寄存器

          HTM:Core Sight AHB跟蹤宏單元

          ICE:在線(xiàn)仿真器    IDE:集成開(kāi)發(fā)環(huán)境

          IRQ:中斷請求(通常是外中斷請求)

          ISA:指令系統架構   ISR:中斷服務(wù)例程

          ITM:儀器化跟蹤宏單元       

           JTAG:連接點(diǎn)測試行動(dòng)組(一個(gè)關(guān)于測試和調試接口的標準)

          LR:連接寄存器

          LSB:最低有效位

          MSB:最高有效位

          LSU:加載存儲單元

          MCU:微控制器單元

          MPU:存儲器保護單元

          MMU:存儲器管理單元

          MSP:主堆棧指針

          NMI:不可屏蔽中斷

          NVIC:嵌套向量中斷控制器

          PC:程序計數器

          PPB:私有外設總線(xiàn)

           

          同時(shí),還要如下規定:

          ?  數值: 
          1. 4''hC , 0x123  都表示16進(jìn)制數 
          2. #3表示數字3 (e.g., IRQ #3  就是指3號中斷) 
          3. #immed_12表示一個(gè)12位的立即數 
          4.  寄存器位。通常是表示一個(gè)位段的數值,例如 
          bit[15:12]  表示位序號從15往下數到12,這一段的數值。 
           
          ?  寄存器訪(fǎng)問(wèn)類(lèi)型 
          1.  R  表示只讀 
          2.  W表示只寫(xiě) 
          3.  RW  表示可讀可寫(xiě)(前3條好像地球人都知道) 
          4.  R/Wc  表示可讀,但是寫(xiě)訪(fǎng)問(wèn)將使之清 0

          二、Cortex-M3芯片簡(jiǎn)介

          1、關(guān)于A(yíng)RMv7的知識--了解

          在這個(gè)版本中,內核架構首次從單一款式變成3種款式:

          ?  款式A:設計用于高性能的“開(kāi)放應用平臺”——越來(lái)越接近電腦了 
          ?  款式R:用于高端的嵌入式系統,尤其是那些帶有實(shí)時(shí)要求的——又要快又要實(shí)時(shí)。 
          ?  款式M:用于深度嵌入的,單片機風(fēng)格的系統中

          介紹A:用于高性能的“開(kāi)放應用平臺”,應用在那些需要運行復雜應用程序的處理器。支持大型嵌入式操作系統

          R:用于高端的嵌入式系統,要求實(shí)時(shí)性的

          M:用于深度嵌入的、單片機風(fēng)格的系統中

          2、Cortex-M3處理器的舞臺

          高性能+高代碼密度+小硅片面積,使得CM3大面積地成為理想的處理平臺,主要應用在以下領(lǐng)域:

          (1)低成本單片機(2)汽車(chē)電子(3)數據通信(4)工業(yè)控制

          (5)消費類(lèi)電子產(chǎn)品

          3、Cortex-M3概覽

          (1)簡(jiǎn)介

                 Cortex-M3是一個(gè) 32位處理器內核。內部的數據路徑是 32位的,寄存器是 32位的,存儲器接口也是 32 位的。CM3 采用了哈佛結構,擁有獨立的指令總線(xiàn)和數據總線(xiàn),可以讓取指與數據訪(fǎng)問(wèn)并行不悖。這樣一來(lái)數據訪(fǎng)問(wèn)不再占用指令總線(xiàn),從而提升了性能。為實(shí)現這個(gè)特性, CM3內部含有好幾條總線(xiàn)接口,每條都為自己的應用場(chǎng)合優(yōu)化過(guò),并且它們可以并行工作。但是另一方面,指令總線(xiàn)和數據總線(xiàn)共享同一個(gè)存儲器空間(一個(gè)統一的存儲器系統)。

                 比較復雜的應用可能需要更多的存儲系統功能,為此CM3提供一個(gè)可選的MPU,而且在需要的情況下也可以使用外部的 cache。另外在CM3中,Both小端模式和大端模式都是支持的。

          (2)Cortex-M3的簡(jiǎn)化圖

          (3)寄存器組

                 處理器擁有R0-R15的寄存器組,其中R13最為堆棧指針SP,SP有兩個(gè),但是同一時(shí)刻只能有一個(gè)可以看到,這就是所謂的“banked”寄存器。

                 a、R0-R12都是 32位通用寄存器,用于數據操作。但是注意:絕大多數 16位Thumb指令只能訪(fǎng)問(wèn)R0-R7,而 32位 Thumb-2指令可以訪(fǎng)問(wèn)所有寄存器。

                   b、Cortex-M3擁有兩個(gè)堆棧指針,然而它們是 banked,因此任一時(shí)刻只能使用其中的一個(gè)。 
          ?  主堆棧指針(MSP):復位后缺省使用的堆棧指針,用于操作系統內核以及異常處理例程(包括中斷服務(wù)例程) 
          ?  進(jìn)程堆棧指針(PSP):由用戶(hù)的應用程序代碼使用。

          ---堆棧指針的最低兩位永遠是0,這意味著(zhù)堆??偸?字節對齊的。---

                  c、R14:連接寄存器--當呼叫一個(gè)子程序時(shí),由R14存儲返回地址

                    d、R15:程序計數寄存器--指向當前的程序地址,如果修改它的值,就能改變程序的執行流(這里有很多高級技巧)

                    e、Cortex-M3還在內核水平上搭載了若干特殊功能寄存器,包括

           程序狀態(tài)字寄存器組(PSRs)

          中斷屏蔽寄存器組(PRIMASK, FAULTMASK, BASEPRI) 
          控制寄存器(CONTROL)

          Cortex-M3處理器支持兩種處理器的操作模式,還支持兩級特權操作。 
                 兩種操作模式分別為:處理者模式和線(xiàn)程模式(thread mode)。引入兩個(gè)模式的本意,是用于區別普通應用程序的代碼和異常服務(wù)例程的代碼——包括中斷服務(wù)例程的代碼。 
                  Cortex-M3 的另一個(gè)側面則是特權的分級——特權級和用戶(hù)級。這可以提供一種存儲器訪(fǎng)問(wèn)的保護機制,使得普通的用戶(hù)程序代碼不能意外地,甚至是惡意地執行涉及到要害的操作。處理器支持兩種特權級,這也是一個(gè)基本的安全模型。

           
                 在 CM3 運行主應用程序時(shí)(線(xiàn)程模式),既可以使用特權級,也可以使用用戶(hù)級;但是異常服務(wù)例程必須在特權級下執行。復位后,處理器默認進(jìn)入線(xiàn)程模式,特權極訪(fǎng)問(wèn)。在特權級下,程序可以訪(fǎng)問(wèn)所有范圍的存儲器(如果有 MPU,還要 在MPU規定的禁地之外),并且可以執行所有指令。 
                 在特權級下的程序可以為所欲為,但也可能會(huì )把自己給玩進(jìn)去——切換到用戶(hù)級。一旦進(jìn)入用戶(hù)級,再想回來(lái)就得走“法律程序”了——用戶(hù)級的程序不能簡(jiǎn)簡(jiǎn)單單地試圖改寫(xiě) CONTROL寄存器就回到特權級,它必須先“申訴”:執行一條系統調用指令(SVC)。這會(huì )觸發(fā)SVC異常,然后由異常服務(wù)例程(通常是操作系統的一部分)接管,如果批準了進(jìn)入,則異常服務(wù)例程修改 CONTROL寄存器,才能在用戶(hù)級的線(xiàn)程模式下重新進(jìn)入特權級。 
                  事實(shí)上,從用戶(hù)級到特權級的唯一途徑就是異常:如果在程序執行過(guò)程中觸發(fā)了一個(gè)異常,處理器總是先切換入特權級,并且在異常服務(wù)例程執行完畢退出時(shí),返回先前的狀態(tài)

                 通過(guò)引入特權級和用戶(hù)級,就能夠在硬件水平上限制某些不受信任的或者還沒(méi)有調試好的程序,不讓它們隨便地配置涉及要害的寄存器,因而系統的可靠性得到了提高。進(jìn)一步地,如果配了 MPU,它還可以作為特權機制的補充——保護關(guān)鍵的存儲區域不被破壞,這些區域通常是操作系統的區域。 

          (4)內建的嵌套向量中斷控制器

            Cortex-M3 在內核水平上搭載了一顆中斷控制器——嵌套向量中斷控制器 NVIC(Nested Vectored Interrupt Controller)。它與內核有很深的“親密接觸”——與內核是緊耦合的。
          NVIC提供如下的功能: 
          ?  可嵌套中斷支持 
          ?  向量中斷支持 
          ?  動(dòng)態(tài)優(yōu)先級調整支持 
          ?  中斷延遲大大縮短 
          ?  中斷可屏蔽

                 可嵌套中斷支持:  可嵌套中斷支持的作用范圍很廣,覆蓋了所有的外部中斷和絕大多數系統異常。外在表現是,這些異常都可以被賦予不同的優(yōu)先級。當前優(yōu)先級被存儲在 xPSR 的專(zhuān)用字段中。當一個(gè)異常發(fā)生時(shí),硬件會(huì )自動(dòng)比較該異常的優(yōu)先級是否比當前的異常優(yōu)先級更高。如果發(fā)現來(lái)了更高優(yōu)先級的異常,處理器就會(huì )中斷當前的中斷服務(wù)例程(或者是普通程序),而服務(wù)新來(lái)的異常——即立即搶占。

                   向量中斷支持:  當開(kāi)始響應一個(gè)中斷后,CM3會(huì )自動(dòng)定位一張向量表,并且根據中斷號從表中找出 ISR的入口地址,然后跳轉過(guò)去執行。不需要像以前的 ARM那樣,由軟件來(lái)分辨到底是哪個(gè)中斷發(fā)生了,也無(wú)需半導體廠(chǎng)商提供私有的中斷控制器來(lái)完成這種工作。這么一來(lái),中斷延遲時(shí)間大為縮短。

          (5)存儲器映射

          Cortex-M3支持4G存儲空間,具體分配如下圖:

          (6)總線(xiàn)接口

          Cortex-M3內部有若干個(gè)總線(xiàn)接口,以使 CM3能同時(shí)取址和訪(fǎng)內(訪(fǎng)問(wèn)內存),它們是: 
          ?  指令存儲區總線(xiàn)(兩條) 
          ?  系統總線(xiàn) 
          ?  私有外設總線(xiàn) 
                有兩條代碼存儲區總線(xiàn)負責對代碼存儲區的訪(fǎng)問(wèn),分別是 I-Code 總線(xiàn)和 D-Code 總線(xiàn)。前者用于取指,后者用于查表等操作,它們按最佳執行速度進(jìn)行優(yōu)化。 
                 系統總線(xiàn)用于訪(fǎng)問(wèn)內存和外設,覆蓋的區域包括 SRAM,片上外設,片外 RAM,片外擴展設備,以及系統級存儲區的部分空間。 
                私有外設總線(xiàn)負責一部分私有外設的訪(fǎng)問(wèn),主要就是訪(fǎng)問(wèn)調試組件。它們也在系統級存儲區。 

          (7)存儲器保護單元(MPU)

                  Cortex-M3有一個(gè)可選的存儲器保護單元。配上它之后,就可以對特權級訪(fǎng)問(wèn)和用戶(hù)級訪(fǎng)問(wèn)分別施加不同的訪(fǎng)問(wèn)限制。當檢測到犯規(violated)時(shí),MPU 就會(huì )產(chǎn)生一個(gè) fault 異常,可以由fault異常的服務(wù)例程來(lái)分析該錯誤,并且在可能時(shí)改正它。 
                 MPU 有很多玩法。最常見(jiàn)的就是由操作系統使用 MPU,以使特權級代碼的數據,包括操作系統本身的數據不被其它用戶(hù)程序弄壞。MPU在保護內存時(shí)是按區管理的。它可以把某些內存 region設置成只讀,從而避免了那里的內容意外被更改;還可以在多任務(wù)系統中把不同任務(wù)之間的數據區隔離。一句話(huà),它會(huì )使嵌入式系統變得更加健壯,更加可靠(很多行業(yè)標準,尤其是航空的,就規定了必須使用 MPU來(lái)行使保護職能——譯
          注) 。

          (8)Cortex-M3的簡(jiǎn)評

          1、高性能

          ?  許多指令都是單周期的——包括乘法相關(guān)指令。并且從整體性能上,Cortex-M3比得過(guò)絕大多數其它的架構。 
          ?  指令總線(xiàn)和數據總線(xiàn)被分開(kāi),取值和訪(fǎng)內可以并行不悖 
          ?  Thumb-2的到來(lái)告別了狀態(tài)切換的舊世代,再也不需要花時(shí)間來(lái)切換于 32位 ARM狀態(tài)和16位Thumb狀態(tài)之間了。這簡(jiǎn)化了軟件開(kāi)發(fā)和代碼維護,使產(chǎn)品面市更快。 
          ?  Thumb-2指令集為編程帶來(lái)了更多的靈活性。許多數據操作現在能用更短的代碼搞定,這意味著(zhù) Cortex-M3的代碼密度更高,也就對存儲器的需求更少。 
          ?  取指都按 32位處理。同一周期最多可以取出兩條指令,留下了更多的帶寬給數據傳輸。 
          ?  Cortex-M3的設計允許單片機高頻運行(現代半導體制造技術(shù)能保證 100MHz以上的速度)即使在相同的速度下運行,CM3的每指令周期數(CPI)也更低,于是同樣的 MHz下可以做更多的工作;另一方面,也使同一個(gè)應用在 CM3上需要更低的主頻。

          2、先進(jìn)的中斷處理功能

                 內建的嵌套向量中斷控制器支持240條外部中斷輸入。向量化的中斷功能大大減少了中斷延遲,因為不在需要軟件去判斷中斷源。中斷的嵌套也是在硬件水平上實(shí)現的,不需要軟件代碼來(lái)實(shí)現。

                 Cortex-M3在進(jìn)入異常服務(wù)例程時(shí),自動(dòng)壓棧了 R0-R3, R12, LR, PSR 和PC,并且在返回時(shí)自動(dòng)彈出它們,這多清爽!既加速了中斷的響應,也再不需要匯編語(yǔ)言代碼了

                  NVIC支持對每一路中斷設置不同的優(yōu)先級,使得中斷管理極富彈性。最粗線(xiàn)條的實(shí)現也至少要支持 8級優(yōu)先級,而且還能動(dòng)態(tài)地被修改。 
                 優(yōu)化中斷響應還有兩招,它們分別是“咬尾中斷機制”和“晚到中斷機制”。 
                  有些需要較多周期才能執行完的指令,是可以被中斷-繼續的——就好比它們是一串指令一樣。這些指令包括加載多個(gè)寄存器(LDM),存儲多個(gè)寄存器(STM),多個(gè)寄存器參與的PUSH,以及多個(gè)寄存器參與的 POP。 
                  除非系統被徹底地鎖定,NMI(不可屏蔽中斷)會(huì )在收到請求的第一時(shí)間予以響應。對很多安全-關(guān)鍵(safety-critical)的應用,NMI都是必不可少的(如化學(xué)反應即將失控時(shí)的緊急停機)。

          全自動(dòng)六頭貼片機
          博維科技
          浙江省嘉興市南湖區文賢路134號
          鄧經(jīng)理:15958377685    400-600-0406
          博維科技聯(lián)系方式、博維科技官方微信
          點(diǎn)擊這里給我發(fā)消息
          久久夜色精品国产飘飘|久久久久久亚洲精品成人精品|国产精品久久久久久亚洲伦|在线精品亚洲欧洲第一页|欧美精品a∨在线观看|99精品人妻无码专区在线视频|欧美一级a做视频免费