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

查看: 3162|回復: 0
打印 上一主題 下一主題

純干貨|最經典的STM32-M3概述!

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2017-8-6 09:20:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: STM32
4、Cortex-M3概覽
1)簡介     
Cortex-M3是一個 32位處理器內核。內部的數據路徑是 32位的,寄存器是 32位的,存儲器接口也是 32 位的。CM3 采用了哈佛結構,擁有獨立的指令總線和數據總線,可以讓取指與數據訪問并行不悖。這樣一來數據訪問不再占用指令總線,從而提升了性能。為實現這個特性, CM3內部含有好幾條總線接口,每條都為自己的應用場合優化過,并且它們可以并行工作。但是另一方面,指令總線和數據總線共享同一個存儲器空間(一個統一的存儲器系統)。     
比較復雜的應用可能需要更多的存儲系統功能,為此CM3提供一個可選的MPU,而且在需要的情況下也可以使用外部的 cache。另外在CM3中,Both小端模式和大端模式都是支持的。
2)Cortex-M3的簡化圖
file:///C:/Users/%E9%83%AD%E6%99%93%E5%A8%9F/AppData/Local/Temp/ksohtml/wps78DB.tmp.png
3)寄存器組
處理器擁有R0-R15的寄存器組,其中R13最為堆棧指針SP,SP有兩個,但是同一時刻只能有一個可以看到,這就是所謂的“banked”寄存器。
file:///C:/Users/%E9%83%AD%E6%99%93%E5%A8%9F/AppData/Local/Temp/ksohtml/wps78DC.tmp.png
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)
file:///C:/Users/%E9%83%AD%E6%99%93%E5%A8%9F/AppData/Local/Temp/ksohtml/wps78ED.tmp.png
Cortex-M3處理器支持兩種處理器的操作模式,還支持兩級特權操作。
      
兩種操作模式分別為:處理者模式和線程模式(thread mode)。引入兩個模式的本意,是用于區別普通應用程序的代碼和異常服務例程的代碼——包括中斷服務例程的代碼。
Cortex-M3 的另一個側面則是特權的分級——特權級和用戶級。這可以提供一種存儲器訪問的保護機制,使得普通的用戶程序代碼不能意外地,甚至是惡意地執行涉及到要害的操作。處理器支持兩種特權級,這也是一個基本的安全模型。
file:///C:/Users/%E9%83%AD%E6%99%93%E5%A8%9F/AppData/Local/Temp/ksohtml/wps78FE.tmp.png
CM3 運行主應用程序時(線程模式),既可以使用特權級,也可以使用用戶級;但是異常服務例程必須在特權級下執行。復位后,處理器默認進入線程模式,特權極訪問。在特權級下,程序可以訪問所有范圍的存儲器(如果有 MPU,還要 在MPU規定的禁地之外),并且可以執行所有指令。
在特權級下的程序可以為所欲為,但也可能會把自己給玩進去——切換到用戶級。一旦進入用戶級,再想回來就得走“法律程序”了——用戶級的程序不能簡簡單單地試圖改寫 CONTROL寄存器就回到特權級,它必須先“申訴”:執行一條系統調用指令(SVC)。這會觸發SVC異常,然后由異常服務例程(通常是操作系統的一部分)接管,如果批準了進入,則異常服務例程修改 CONTROL寄存器,才能在用戶級的線程模式下重新進入特權級。信盈達,扣扣:一以七捂捂吧就領久要!
        
事實上,從用戶級到特權級的唯一途徑就是異常:如果在程序執行過程中觸發了一個異常,處理器總是先切換入特權級,并且在異常服務例程執行完畢退出時,返回先前的狀態。
通過引入特權級和用戶級,就能夠在硬件水平上限制某些不受信任的或者還沒有調試好的程序,不讓它們隨便地配置涉及要害的寄存器,因而系統的可靠性得到了提高。進一步地,如果配了 MPU,它還可以作為特權機制的補充——保護關鍵的存儲區域不被破壞,這些區域通常是操作系統的區域。
(4)內建的嵌套向量中斷控制器
Cortex-M3 在內核水平上搭載了一顆中斷控制器——嵌套向量中斷控制器 NVIC(Nested Vectored Interrupt Controller)。它與內核有很深的“親密接觸”——與內核是緊耦合的。
NVIC提供如下的功能:
·   可嵌套中斷支持
·   向量中斷支持
·   動態優先級調整支持
·   中斷延遲大大縮短
·   中斷可屏蔽
可嵌套中斷支持:  可嵌套中斷支持的作用范圍很廣,覆蓋了所有的外部中斷和絕大多數系統異常。外在表現是,這些異常都可以被賦予不同的優先級。當前優先級被存儲在 xPSR 的專用字段中。當一個異常發生時,硬件會自動比較該異常的優先級是否比當前的異常優先級更高。如果發現來了更高優先級的異常,處理器就會中斷當前的中斷服務例程(或者是普通程序),而服務新來的異常——即立即搶占。
向量中斷支持:  當開始響應一個中斷后,CM3會自動定位一張向量表,并且根據中斷號從表中找出 ISR的入口地址,然后跳轉過去執行。不需要像以前的 ARM那樣,由軟件來分辨到底是哪個中斷發生了,也無需半導體廠商提供私有的中斷控制器來完成這種工作。這么一來,中斷延遲時間大為縮短。

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色综合久久88色综合天天| 日本黄视色视频在线观看| 四虎三级| 亚洲一区二区综合| 亚洲国产精品91| 色老头一级毛片| 欧美同志xxxxvideo| 欧美激情亚洲精品日韩1区2区| 欧美福利二区| 欧美激情欧美啪欧美照片| 亚洲一区二区视频| 青草香蕉精品视频在线观看| 欧美成人性色xxxxx视频大| 亚洲精品m在线观看| 一级a爱片久久毛片| 欧美一区二区三区不卡| 天天视频国产精品| 亚洲国产欧美精品一区二区三区| 一级床片40分钟免费视频| 亚洲成人www| 日本一二三区视频| 日本欧美成人免费观看| 一级黄色在线| 天天做天天操| 亚洲伦理中文字幕| 欧美极品一区| 污片在线看| 亚洲欧美视频一区二区| 热99视频| 亚洲大片免费看| 一级毛片无毒不卡直接观看| 一本久久a久久精品亚洲| 欧美一区二区三区在线播放| 青青草国产青春综合久久 | 亚洲精品黄| 亚洲欧洲日韩国产一区二区三区| 日本www色视频成人免费免费| 亚洲夜夜操| 天天色视频| 香蕉大黄香蕉在线观看| 欧美韩日在线|