国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

STM32的這些經典功能,你真的掌握了嗎?

發布時間:2017-8-28 14:17    發布者:一個有趣的靈魂
STM32的這些經典功能,你真的掌握了嗎?
Cortex-M3芯片簡介
1、關于ARMv7的知識了解
在這個版本中,內核架構首次從單一款式變成3種款式。
款式A:設計用于高性能的“開放應用平臺”——越來越接近電腦了 。
款式R:用于高端的嵌入式系統,尤其是那些帶有實時要求的——又要快又要實時。
款式M:用于深度嵌入的,單片機風格的系統中。
介紹A:用于高性能的“開放應用平臺”,應用在那些需要運行復雜應用程序的處理器。支持大型嵌入式操作系統。
R:用于高端的嵌入式系統,要求實時性的。
M:用于深度嵌入的、單片機風格的系統中。
2、Cortex-M3處理器的舞臺
高性能+高代碼密度+小硅片面積,使得CM3大面積地成為理想的處理平臺,主要應用在以下領域:
(1)低成本單片機
(2)汽車電子
(3)數據通信
(4)工業控制
(5)消費類電子產品
3、Cortex-M3概覽
(1)簡介
Cortex-M3是一個 32位處理器內核。內部的數據路徑是 32位的,寄存器是 32位的,存儲器接口也是 32 位的。CM3 采用了哈佛結構,擁有獨立的指令總線和數據總線,可以讓取指與數據訪問并行不悖。這樣一來數據訪問不再占用指令總線,從而提升了性能。為實現這個特性, CM3內部含有好幾條總線接口,每條都為自己的應用場合優化過,并且它們可以并行工作。但是另一方面,指令總線和數據總線共享同一個存儲器空間(一個統一的存儲器系統)
比較復雜的應用可能需要更多的存儲系統功能,為此CM3提供一個可選的MPU,而且在需要的情況下也可以使用外部的 cache。另外在CM3中,Both小端模式和大端模式都是支持的。
(2)寄存器組
處理器擁有R0-R15的寄存器組,其中R13最為堆棧指針SP,SP有兩個,但是同一時刻只能有一個可以看到,這就是所謂的“banked”寄存器。
a、R0-R12都是 32位通用寄存器,用于數據操作。但是注意:絕大多數 16位Thumb指令只能訪問R0-R7,而 32位 Thumb-2指令可以訪問所有寄存器。
b、Cortex-M3擁有兩個堆棧指針,然而它們是 banked,因此任一時刻只能使用其中的一個。
主堆棧指針(MSP):復位后缺省使用的堆棧指針,用于操作系統內核以及異常處理例程(包括中斷服務例程)  
進程堆棧指針(PSP):由用戶的應用程序代碼使用。
---堆棧指針的最低兩位永遠是0,這意味著堆?偸4字節對齊的。---
c、R14:連接寄存器--當呼叫一個子程序時,由R14存儲返回地址
d、R15:程序計數寄存器--指向當前的程序地址,如果修改它的值,就能改變程序的執行流(這里有很多高級技巧)
e、Cortex-M3還在內核水平上搭載了若干特殊功能寄存器,包括:
程序狀態字寄存器組(PSRs)
中斷屏蔽寄存器組(PRIMASK, FAULTMASK, BASEPRI)
控制寄存器(CONTROL)
Cortex-M3處理器支持兩種處理器的操作模式,還支持兩級特權操作。
兩種操作模式分別為:處理者模式和線程模式(thread mode)。引入兩個模式的本意,是用于區別普通應用程序的代碼和異常服務例程的代碼——包括中斷服務例程的代碼。
Cortex-M3 的另一個側面則是特權的分級——特權級和用戶級。這可以提供一種存儲器訪問的保護機制,使得普通的用戶程序代碼不能意外地,甚至是惡意地執行涉及到要害的操作。處理器支持兩種特權級,這也是一個基本的安全模型。
在 CM3 運行主應用程序時(線程模式),既可以使用特權級,也可以使用用戶級;但是異常服務例程必須在特權級下執行。復位后,處理器默認進入線程模式,特權極訪問。在特權級下,程序可以訪問所有范圍的存儲器(如果有 MPU,還要 在MPU規定的禁地之外),并且可以執行所有指令。
在特權級下的程序可以為所欲為,但也可能會把自己給玩進去——切換到用戶級。一旦進入用戶級,再想回來就得走“法律程序”了——用戶級的程序不能簡簡單單地試圖改寫 CONTROL寄存器就回到特權級,它必須先“申訴”:執行一條系統調用指令(SVC)。這會觸發SVC異常,然后由異常服務例程(通常是操作系統的一部分)接管,如果批準了進入,則異常服務例程修改 CONTROL寄存器,才能在用戶級的線程模式下重新進入特權級。
事實上,從用戶級到特權級的唯一途徑就是異常:如果在程序執行過程中觸發了一個異常,處理器總是先切換入特權級,并且在異常服務例程執行完畢退出時,返回先前的狀態。
通過引入特權級和用戶級,就能夠在硬件水平上限制某些不受信任的或者還沒有調試好的程序,不讓它們隨便地配置涉及要害的寄存器,因而系統的可靠性得到了提高。進一步地,如果配了 MPU,它還可以作為特權機制的補充——保護關鍵的存儲區域不被破壞,這些區域通常是操作系統的區域。
(4)內建的嵌套向量中斷控制器
Cortex-M3 在內核水平上搭載了一顆中斷控制器——嵌套向量中斷控制器 NVIC(Nested Vectored Interrupt Controller)。它與內核有很深的“親密接觸”——與內核是緊耦合的。
NVIC提供如下的功能:
  可嵌套中斷支持
  向量中斷支持
  動態優先級調整支持
  中斷延遲大大縮短
  中斷可屏蔽
可嵌套中斷支持:  可嵌套中斷支持的作用范圍很廣,覆蓋了所有的外部中斷和絕大多數系統異常。外在表現是,這些異常都可以被賦予不同的優先級。當前優先級被存儲在 xPSR 的專用字段中。當一個異常發生時,硬件會自動比較該異常的優先級是否比當前的異常優先級更高。如果發現來了更高優先級的異常,處理器就會中斷當前的中斷服務例程(或者是普通程序),而服務新來的異!戳⒓磽屨。
向量中斷支持:  當開始響應一個中斷后,CM3會自動定位一張向量表,并且根據中斷號從表中找出 ISR的入口地址,然后跳轉過去執行。不需要像以前的 ARM那樣,由軟件來分辨到底是哪個中斷發生了,也無需半導體廠商提供私有的中斷控制器來完成這種工作。這么一來,中斷延遲時間大為縮短。
(5)總線接口
Cortex-M3內部有若干個總線接口,以使 CM3能同時取址和訪內(訪問內存),它們是:
指令存儲區總線(兩條)
系統總線
私有外設總線
有兩條代碼存儲區總線負責對代碼存儲區的訪問,分別是 I-Code 總線和 D-Code 總線。前者用于取指,后者用于查表等操作,它們按最佳執行速度進行優化。
系統總線用于訪問內存和外設,覆蓋的區域包括 SRAM,片上外設,片外 RAM,片外擴展設備,以及系統級存儲區的部分空間。
私有外設總線負責一部分私有外設的訪問,主要就是訪問調試組件。它們也在系統級存儲區。
(6)存儲器保護單元(MPU)   
Cortex-M3有一個可選的存儲器保護單元。配上它之后,就可以對特權級訪問和用戶級訪問分別施加不同的訪問限制。當檢測到犯規(violated)時,MPU 就會產生一個 fault 異常,可以由fault異常的服務例程來分析該錯誤,并且在可能時改正它。
MPU 有很多玩法。最常見的就是由操作系統使用 MPU,以使特權級代碼的數據,包括操作系統本身的數據不被其它用戶程序弄壞。MPU在保護內存時是按區管理的。它可以把某些內存 region設置成只讀,從而避免了那里的內容意外被更改;還可以在多任務系統中把不同任務之間的數據區隔離。一句話,它會使嵌入式系統變得更加健壯,更加可靠(很多行業標準,尤其是航空的,就規定了必須使用 MPU來行使保護職能——譯
注) 。
(7)Cortex-M3的簡評
1、高性能
許多指令都是單周期的——包括乘法相關指令。并且從整體性能上,Cortex-M3比得過絕大多數其它的架構。
指令總線和數據總線被分開,取值和訪內可以并行不悖 。
Thumb-2的到來告別了狀態切換的舊世代,再也不需要花時間來切換于 32位 ARM狀態和16位Thumb狀態之間了。這簡化了軟件開發和代碼維護,使產品面市更快。
Thumb-2指令集為編程帶來了更多的靈活性。許多數據操作現在能用更短的代碼搞定,這意味著 Cortex-M3的代碼密度更高,也就對存儲器的需求更少。
取指都按 32位處理。同一周期最多可以取出兩條指令,留下了更多的帶寬給數據傳輸。
Cortex-M3的設計允許單片機高頻運行(現代半導體制造技術能保證 100MHz以上的速度)即使在相同的速度下運行,CM3的每指令周期數(CPI)也更低,于是同樣的 MHz下可以做更多的工作;另一方面,也使同一個應用在 CM3上需要更低的主頻。
2、先進的中斷處理功能
內建的嵌套向量中斷控制器支持240條外部中斷輸入。向量化的中斷功能大大減少了中斷延遲,因為不在需要軟件去判斷中斷源。中斷的嵌套也是在硬件水平上實現的,不需要軟件代碼來實現。
Cortex-M3在進入異常服務例程時,自動壓棧了 R0-R3, R12, LR, PSR 和PC,并且在返回時自動彈出它們,這多清爽!既加速了中斷的響應,也再不需要匯編語言代碼了
NVIC支持對每一路中斷設置不同的優先級,使得中斷管理極富彈性。最粗線條的實現也至少要支持 8級優先級,而且還能動態地被修改。
優化中斷響應還有兩招,它們分別是“咬尾中斷機制”和“晚到中斷機制”。
有些需要較多周期才能執行完的指令,是可以被中斷-繼續的——就好比它們是一串指令一樣。這些指令包括加載多個寄存器(LDM),存儲多個寄存器(STM),多個寄存器參與的PUSH,以及多個寄存器參與的 POP。
除非系統被徹底地鎖定,NMI(不可屏蔽中斷)會在收到請求的第一時間予以響應。對很多安全-關鍵(safety-critical)的應用,NMI都是必不可少的(如化學反應即將失控時的緊急停機)。
通過上面我們可以很容易理解STM32的一些基本知識和結構,為學習STM32打好了基礎。


本文地址:http://m.qingdxww.cn/thread-516291-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲色四在线视频观看 | 国片一级 免费看 | 成人伊人青草久久综合网破解版 | 伊人网欧美 | 成人欧美一区二区三区视频 | 日本精品一区二区三本中文 | 亚洲天堂久 | 大蕉久久伊人中文字幕 | 国产麻豆免费 | 国产在线视频国产永久视频 | 日韩伦理在线看不卡 | 欧美激情一区 | 欧美网站在线 | 丁香六月 久久久 | 精品91麻豆免费免费国产在线 | 青青青青久在线观看视频 | 天天操网| 韩国在线观看日韩 | 韩国特黄毛片一级毛片免费 | 字幕网在线观看 | 九九精品视频一区二区三区 | 日日摸夜夜夜夜夜添 | 国产日韩欧美一区二区三区在线 | 香蕉精品高清在线观看视频 | 97精品国产高清在线看入口 | 99热这里精品 | 成年男女免费视频观看性 | 诱惑网综合 | 色综合在 | 亚洲国产成人精品女人久久久 | 91麻豆国产精品91久久久 | 欧美视频免费在线观看 | 日韩精品亚洲人成在线观看 | 国产精品9999久久久久 | 亚洲天堂国产精品 | 天堂在线观看视频观看www | 国产a国产片国产 | 成人午夜视频网站 | 久久性视频| 中文字幕欧美在线观看 | 一区二区三区欧美日韩 |