在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32的一些基本知識總結

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 作者:STM32嵌入式開發 ? 2020-11-20 09:46 ? 次閱讀

Cortex-M3縮略語

AMBA:先進單片機總線架構 ADK:AMBA設計套件 AHB:先進高性能總線 AHB-AP:AHB訪問端口 APB:先進外設總線 ARM ARM:ARM架構參考手冊 ASIC:行業領域專用集成電路 ATB :先進跟蹤總線 BE8:字節不變式大端模式 CPI:每條指令的周期數 DAP:調試訪問端口 DSP數字信號處理(器) DWT:數據觀察點及跟蹤 ETM:嵌入式跟蹤宏單元 FPB:閃存地址重載及斷點 FSR:fault狀態寄存器 HTM:Core Sight AHB跟蹤宏單元 ICE:在線仿真器 IDE:集成開發環境 IRQ:中斷請求(通常是外中斷請求) ISA:指令系統架構 ISR:中斷服務例程 ITM:儀器化跟蹤宏單元 JTAG:連接點測試行動組(一個關于測試和調試接口的標準) LR:連接寄存器 LSB:最低有效位 MSB:最高有效位 LSU:加載存儲單元 MCU微控制器單元 MPU:存儲器保護單元 MMU:存儲器管理單元 MSP:主堆棧指針 NMI:不可屏蔽中斷 NVIC:嵌套向量中斷控制器 PC:程序計數器 PPB:私有外設總線

數值
1. 4''hC , 0x123 都表示16進制數
2. #3表示數字3 (e.g., IRQ #3 就是指3號中斷)
3. #immed_12表示一個12位的立即數
4. 寄存器位。通常是表示一個位段的數值,例如
bit[15:12] 表示位序號從15往下數到12,這一段的數值。

寄存器訪問類型

R :表示只讀
W:表示只寫
RW :表示可讀可寫(前3條好像地球人都知道)
R/Wc :表示可讀,但是寫訪問將使之清 0

Cortex-M3芯片簡介

芯片的基本結構如下圖:

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

款式A:設計用于高性能的“開放應用平臺”——越來越接近電腦

款式R:用于高端的嵌入式系統,尤其是那些帶有實時要求的——又要快又要實時。

款式M:用于深度嵌入的,單片機風格的系統中

介紹:

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

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

M:用于深度嵌入的、單片機風格的系統中

Cortex-M3處理器的舞臺

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

低成本單片機

汽車電子

數據通信

工業控制

消費類電子產品

Cortex-M3概覽(1)簡介 Cortex-M3是一個 32位處理器內核。內部的數據路徑是 32位的,寄存器是 32位的,存儲器接口也是 32 位的。CM3 采用了哈佛結構,擁有獨立的指令總線和數據總線,可以讓取指與數據訪問并行不悖。這樣一來數據訪問不再占用指令總線,從而提升了性能。為實現這個特性, CM3內部含有好幾條總線接口,每條都為自己的應用場合優化過,并且它們可以并行工作。但是另一方面,指令總線和數據總線共享同一個存儲器空間(一個統一的存儲器系統)。 比較復雜的應用可能需要更多的存儲系統功能,為此CM3提供一個可選的MPU,而且在需要的情況下也可以使用外部的 cache。另外在CM3中,Both小端模式和大端模式都是支持的。

(2)Cortex-M3的簡化圖

(3)寄存器組

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

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

Cortex-M3擁有兩個堆棧指針,然而它們是 banked,因此任一時刻只能使用其中的一個。

主堆棧指針(MSP):復位后缺省使用的堆棧指針,用于操作系統內核以及異常處理例程(包括中斷服務例程)。

進程堆棧指針(PSP):由用戶的應用程序代碼使用。堆棧指針的最低兩位永遠是0,這意味著堆棧總是4字節對齊的。

R14:連接寄存器--當呼叫一個子程序時,由R14存儲返回地址。

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

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支持4G存儲空間,具體分配如下圖:

(6)總線接口 Cortex-M3內部有若干個總線接口,以使 CM3能同時取址和訪內(訪問內存),它們是:

指令存儲區總線(兩條)

系統總線

私有外設總線

有兩條代碼存儲區總線負責對代碼存儲區的訪問,分別是 I-Code 總線和 D-Code 總線。前者用于取指,后者用于查表等操作,它們按最佳執行速度進行優化。

系統總線用于訪問內存和外設,覆蓋的區域包括 SRAM,片上外設,片外 RAM,片外擴展設備,以及系統級存儲區的部分空間。 私有外設總線負責一部分私有外設的訪問,主要就是訪問調試組件。它們也在系統級存儲區。 (7)存儲器保護單元(MPU) Cortex-M3有一個可選的存儲器保護單元。配上它之后,就可以對特權級訪問和用戶級訪問分別施加不同的訪問限制。當檢測到犯規(violated)時,MPU 就會產生一個 fault 異常,可以由fault異常的服務例程來分析該錯誤,并且在可能時改正它。 MPU 有很多玩法。最常見的就是由操作系統使用 MPU,以使特權級代碼的數據,包括操作系統本身的數據不被其它用戶程序弄壞。MPU在保護內存時是按區管理的。它可以把某些內存 region設置成只讀,從而避免了那里的內容意外被更改;還可以在多任務系統中把不同任務之間的數據區隔離。一句話,它會使嵌入式系統變得更加健壯,更加可靠。 很多行業標準,尤其是航空的,就規定了必須使用 MPU來行使保護職能。 (8)Cortex-M3的簡評

高性能

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

先進的中斷處理功能

內建的嵌套向量中斷控制器支持240條外部中斷輸入。向量化的中斷功能大大減少了中斷延遲,因為不在需要軟件去判斷中斷源。中斷的嵌套也是在硬件水平上實現的,不需要軟件代碼來實現。 Cortex-M3在進入異常服務例程時,自動壓棧了 R0-R3, R12, LR, PSR 和PC,并且在返回時自動彈出它們,這多清爽!既加速了中斷的響應,也再不需要匯編語言代碼了。 NVIC支持對每一路中斷設置不同的優先級,使得中斷管理極富彈性。最粗線條的實現也至少要支持 8級優先級,而且還能動態地被修改。
優化中斷響應還有兩招,它們分別是“咬尾中斷機制”和“晚到中斷機制”。 有些需要較多周期才能執行完的指令,是可以被中斷-繼續的——就好比它們是一串指令一樣。這些指令包括加載多個寄存器(LDM),存儲多個寄存器(STM),多個寄存器參與的PUSH,以及多個寄存器參與的 POP。 除非系統被徹底地鎖定,NMI(不可屏蔽中斷)會在收到請求的第一時間予以響應。對很多安全-關鍵(safety-critical)的應用,NMI都是必不可少的(如化學反應即將失控時的緊急停機)。總結以上內容總結了STM32的一些基本知識,希望能為STM32的學習打好基礎。

責任編輯:lq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5424

    瀏覽量

    123505
  • 存儲器
    +關注

    關注

    38

    文章

    7637

    瀏覽量

    166520
  • STM32
    +關注

    關注

    2290

    文章

    11018

    瀏覽量

    362667

原文標題:概述STM32

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    關于芯片設計的一些基本知識

    芯片的設計理念眾所周知,芯片擁有極為復雜的結構。以英偉達的B200芯片為例,在巴掌大的面積上,塞入了2080億個晶體管。里面的布局,堪稱個異次元空間級的迷宮。英偉達B200芯片如此復雜的架構
    的頭像 發表于 06-11 12:16 ?95次閱讀
    關于芯片設計的<b class='flag-5'>一些</b><b class='flag-5'>基本知識</b>

    Debian和Ubuntu哪個好一些

    兼容性對比Debian和Ubuntu哪個好一些,并為您揭示如何通過RAKsmart服務器釋放Linux系統的最大潛能。
    的頭像 發表于 05-07 10:58 ?248次閱讀

    直流電機基本知識彩色PDF來啦

    1 直流電機的工作原理、主要結構、額定值 2直流電機的電樞繞組 3直流電機的電樞反應 4電樞繞組感應電動勢和電磁轉矩 5直流電機換向 文帶你了解直流電機基本知識,免費下載
    發表于 02-28 01:28

    AN29-關于DC-DC轉換器的一些想法

    電子發燒友網站提供《AN29-關于DC-DC轉換器的一些想法.pdf》資料免費下載
    發表于 01-08 13:57 ?0次下載
    AN29-關于DC-DC轉換器的<b class='flag-5'>一些</b>想法

    關于NAND Flash的一些知識

    前言 作為名電子專業的學生,半導體存儲顯然是繞不過去的個坎,今天聊聊關于Nand Flash的一些知識。 這里十分感謝深圳雷龍發展有
    的頭像 發表于 12-17 17:33 ?679次閱讀

    總結一些繼電器開關電路選型時需要關注的器件參數

    Part 01 前言 為了正確使用繼電器,應了解所選繼電器的特性,并確認繼電器的使用條件是否與產品的實際環境條件相匹配,同時,必須事先充分了解實際使用的繼電器的線圈規格、觸點規格和環境條件。以下總結
    的頭像 發表于 12-04 09:09 ?1.5w次閱讀
    <b class='flag-5'>總結</b>了<b class='flag-5'>一些</b>繼電器開關電路選型時需要關注的器件參數

    硬件工程師需要掌握的硬件基礎知識

    作為個資深硬件工程師,我們需要掌握一些硬件基礎知識,今天總結下哪些算是基礎知識。給學電子方面
    的頭像 發表于 12-02 09:22 ?1512次閱讀
    硬件工程師需要掌握的硬件基礎<b class='flag-5'>知識</b>

    一些半導體的基礎知識

    我們身邊的材料可以按導電性分為導體(Conductor)、絕緣體(Insulator)和半導體(Semiconductor)。金屬、石墨、人體等具有良好的導電能力,被稱為導體。橡膠、塑料、干木頭等是不導電的,或者說導電能力極差,屬于絕緣體。而導電能力介于導體與絕緣體之間的硅、鍺等材料,就是半導體。來張圖直觀看看物體的導電性: 按照導電性可分為: 絕緣體:電導率很低,介于10-18~10-8 S/cm,如熔融石英、玻璃; 導體:電導率較高,介于103~108 S/cm,如鉍、銀等金
    的頭像 發表于 11-27 10:14 ?1244次閱讀
    <b class='flag-5'>一些</b>半導體的基礎<b class='flag-5'>知識</b>

    一些常見的動態電路

    無論是模電還是數電,理論知識相對來說還是比較枯燥,各種電路原理理解清楚不算容易,換種生動形象的方式或許會增加一些趣味性,也更容易理解這些知識。下面整理了
    的頭像 發表于 11-16 09:26 ?995次閱讀
    <b class='flag-5'>一些</b>常見的動態電路

    分享一些常見的電路

    理解模電和數電的電路原理對于初學者來說可能比較困難,但通過一些生動的教學方法和資源,可以有效地提高學習興趣和理解能力。 下面整理了一些常見的電路,以動態圖形的方式展示。 整流電路 單相橋式整流
    的頭像 發表于 11-13 09:28 ?741次閱讀
    分享<b class='flag-5'>一些</b>常見的電路

    LED驅動器應用的一些指南和技巧

    電子發燒友網站提供《LED驅動器應用的一些指南和技巧.pdf》資料免費下載
    發表于 09-25 11:35 ?0次下載
    LED驅動器應用的<b class='flag-5'>一些</b>指南和技巧

    堆棧和內存的基本知識

    本文主要聊聊關于堆棧的內容。包括堆棧和內存的基本知識。常見和堆棧相關的 bug,如棧溢出,內存泄漏,堆內存分配失敗等。后面介紹軟件中堆棧統計的重要性,以及如何使用工具工具軟件中堆棧使用的范圍,并給出在軟件開發中,如何降低堆棧問題,優化堆棧的一些實踐。
    的頭像 發表于 08-29 14:10 ?959次閱讀
    堆棧和內存的<b class='flag-5'>基本知識</b>

    貼片電阻燒壞了看不出型號怎么辦

    貼片電阻的基本知識 在開始確定貼片電阻型號之前,我們需要了解一些關于貼片電阻的基本知識。貼片電阻是種表面貼裝元件,其尺寸較小,通常為0402、0603、0805、1206等。貼片電阻
    的頭像 發表于 08-27 09:47 ?2776次閱讀

    光刻工藝的基本知識

    在萬物互聯,AI革命興起的今天,半導體芯片已成為推動現代社會進步的心臟。而光刻(Lithography)技術,作為先進制造中最為精細和關鍵的工藝,不管是半導體芯片、MEMS器件,還是微納光學元件都離不開光刻工藝的參與,其重要性不言而喻。本文將帶您起認識光刻工藝的基本知識
    的頭像 發表于 08-26 10:10 ?1768次閱讀
    光刻工藝的<b class='flag-5'>基本知識</b>

    咨詢一些關于LED燈具的問題

    各位大佬,咨詢一些關于LED燈具的問題 120W的吸頂燈,用的非隔離式電源,用不到1年,燈具就會閃爍、頻閃或不亮,主要是什么原因造成的?是不是驅動芯片太差?
    發表于 07-02 22:33
    主站蜘蛛池模板: 精品欧美一区二区三区 | 天堂网在线最新版官网 | 岛国午夜精品视频在线观看 | 日韩免费视频一区 | ww.色| 视频二区中文字幕 | 成人亚洲网站www在线观看 | 痴女在线播放免费视频 | sese综合| 色噜噜噜噜 | 日韩欧美色 | 欲香欲色天天综合和网 | 六月丁香激情综合成人 | 国产色系视频在线观看免费 | 狠狠ri| 五月婷婷之综合激情 | 亚洲精品456人成在线 | 亚洲日本中文字幕天天更新 | 日本国产在线观看 | 欧美午夜视频一区二区 | 免费性视频| 国语自产自拍秒拍在线视频 | 亚洲国产片 | 国内精品伊人久久大香线焦 | 国模精品 | 四虎伊人 | 欧美一级特黄aaaaaa在线看首页 | www男人的天堂 | 久久综合九色综合欧美狠狠 | 手机在线看| 一个人看的www片免费高清视频 | 亚洲人成网站在线在线 | 亚洲精品理论 | 精品亚洲综合在线第一区 | 色天使久久 | 天天爽天天| 曰本在线 | 久青草国产手机在线观 | 日本黄色片黄色片 | 噜噜嘿 | 亚洲一区二区三区高清 |