色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

STM32的基本知識

技術(shù)讓夢想更偉大 ? 來源:技術(shù)讓夢想更偉大 ? 2023-05-04 16:48 ? 次閱讀

首先,在學(xué)習(xí)Cortex-M3時,我們必須要知道必要的縮略語。

整理如下:

AMBA:先進單片機總線架構(gòu) ADK:AMBA設(shè)計套件

AHB:先進高性能總線 AHB-AP:AHB訪問端口

APB:先進外設(shè)總線 ARM ARM:ARM架構(gòu)參考手冊

ASIC:行業(yè)領(lǐng)域?qū)S?a target="_blank">集成電路 ATB :先進跟蹤總線

BE8:字節(jié)不變式大端模式 CPI:每條指令的周期數(shù)

DAP:調(diào)試訪問端口 DSP數(shù)字信號處理(器)

DWT:數(shù)據(jù)觀察點及跟蹤 ETM:嵌入式跟蹤宏單元

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

HTM:Core Sight AHB跟蹤宏單元

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

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

ISA:指令系統(tǒng)架構(gòu) ISR:中斷服務(wù)例程

ITM:儀器化跟蹤宏單元

JTAG:連接點測試行動組(一個關(guān)于測試和調(diào)試接口的標準)

LR:連接寄存器

LSB:最低有效位

MSB:最高有效位

LSU:加載存儲單元

MCU微控制器單元

MPU:存儲器保護單元

MMU:存儲器管理單元

MSP:主堆棧指針

NMI:不可屏蔽中斷

NVIC:嵌套向量中斷控制器

PC:程序計數(shù)器

PPB:私有外設(shè)總線

同時,還要如下規(guī)定:

數(shù)值

1. 4''hC , 0x123 都表示16進制數(shù)

2. #3表示數(shù)字3 (e.g., IRQ #3 就是指3號中斷)

3. #immed_12表示一個12位的立即數(shù)

4. 寄存器位。通常是表示一個位段的數(shù)值,例如

bit[15:12] 表示位序號從15往下數(shù)到12,這一段的數(shù)值。

寄存器訪問類型

1. R 表示只讀

2. W表示只寫

3. RW 表示可讀可寫(前3條好像地球人都知道)

4. R/Wc 表示可讀,但是寫訪問將使之清 0

Cortex-M3芯片簡介

1、芯片的基本結(jié)構(gòu)如下圖

5a259462-e6db-11ed-ab56-dac502259ad0.jpg

2、關(guān)于ARMv7的知識了解

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

款式A:設(shè)計用于高性能的“開放應(yīng)用平臺”——越來越接近電腦了 。

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

款式M:用于深度嵌入的,單片機風(fēng)格的系統(tǒng)中。

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

R:用于高端的嵌入式系統(tǒng),要求實時性的。

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

3、Cortex-M3處理器的舞臺

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

(1)低成本單片機

(2)汽車電子

(3)數(shù)據(jù)通信

(4)工業(yè)控制

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

4、Cortex-M3概覽

(1)簡介

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

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

(2)Cortex-M3的簡化圖

5a346604-e6db-11ed-ab56-dac502259ad0.jpg

(3)寄存器組

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

5a3bdc40-e6db-11ed-ab56-dac502259ad0.jpg

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

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

主堆棧指針(MSP):復(fù)位后缺省使用的堆棧指針,用于操作系統(tǒng)內(nèi)核以及異常處理例程(包括中斷服務(wù)例程)

進程堆棧指針(PSP):由用戶的應(yīng)用程序代碼使用。

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

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

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

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

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

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

控制寄存器(CONTROL)

Cortex-M3處理器支持兩種處理器的操作模式,還支持兩級特權(quán)操作。

兩種操作模式分別為:處理者模式和線程模式(thread mode)。引入兩個模式的本意,是用于區(qū)別普通應(yīng)用程序的代碼和異常服務(wù)例程的代碼——包括中斷服務(wù)例程的代碼。

Cortex-M3 的另一個側(cè)面則是特權(quán)的分級——特權(quán)級和用戶級。這可以提供一種存儲器訪問的保護機制,使得普通的用戶程序代碼不能意外地,甚至是惡意地執(zhí)行涉及到要害的操作。處理器支持兩種特權(quán)級,這也是一個基本的安全模型。

5a45bdc8-e6db-11ed-ab56-dac502259ad0.jpg

在 CM3 運行主應(yīng)用程序時(線程模式),既可以使用特權(quán)級,也可以使用用戶級;但是異常服務(wù)例程必須在特權(quán)級下執(zhí)行。復(fù)位后,處理器默認進入線程模式,特權(quán)極訪問。在特權(quán)級下,程序可以訪問所有范圍的存儲器(如果有 MPU,還要 在MPU規(guī)定的禁地之外),并且可以執(zhí)行所有指令。

在特權(quán)級下的程序可以為所欲為,但也可能會把自己給玩進去——切換到用戶級。一旦進入用戶級,再想回來就得走“法律程序”了——用戶級的程序不能簡簡單單地試圖改寫 CONTROL寄存器就回到特權(quán)級,它必須先“申訴”:執(zhí)行一條系統(tǒng)調(diào)用指令(SVC)。這會觸發(fā)SVC異常,然后由異常服務(wù)例程(通常是操作系統(tǒng)的一部分)接管,如果批準了進入,則異常服務(wù)例程修改 CONTROL寄存器,才能在用戶級的線程模式下重新進入特權(quán)級。

事實上,從用戶級到特權(quán)級的唯一途徑就是異常:如果在程序執(zhí)行過程中觸發(fā)了一個異常,處理器總是先切換入特權(quán)級,并且在異常服務(wù)例程執(zhí)行完畢退出時,返回先前的狀態(tài)。

5a543b96-e6db-11ed-ab56-dac502259ad0.jpg

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

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

Cortex-M3 在內(nèi)核水平上搭載了一顆中斷控制器——嵌套向量中斷控制器 NVIC(Nested Vectored Interrupt Controller)。它與內(nèi)核有很深的“親密接觸”——與內(nèi)核是緊耦合的。

NVIC提供如下的功能:

可嵌套中斷支持

向量中斷支持

動態(tài)優(yōu)先級調(diào)整支持

中斷延遲大大縮短

中斷可屏蔽

可嵌套中斷支持: 可嵌套中斷支持的作用范圍很廣,覆蓋了所有的外部中斷和絕大多數(shù)系統(tǒng)異常。外在表現(xiàn)是,這些異常都可以被賦予不同的優(yōu)先級。當前優(yōu)先級被存儲在 xPSR 的專用字段中。當一個異常發(fā)生時,硬件會自動比較該異常的優(yōu)先級是否比當前的異常優(yōu)先級更高。如果發(fā)現(xiàn)來了更高優(yōu)先級的異常,處理器就會中斷當前的中斷服務(wù)例程(或者是普通程序),而服務(wù)新來的異?!戳⒓磽屨?。

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

(5)存儲器映射

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

5a543b96-e6db-11ed-ab56-dac502259ad0.jpg

(6)總線接口

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

指令存儲區(qū)總線(兩條)

系統(tǒng)總線

私有外設(shè)總線

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

系統(tǒng)總線用于訪問內(nèi)存和外設(shè),覆蓋的區(qū)域包括 SRAM,片上外設(shè),片外 RAM,片外擴展設(shè)備,以及系統(tǒng)級存儲區(qū)的部分空間。

私有外設(shè)總線負責(zé)一部分私有外設(shè)的訪問,主要就是訪問調(diào)試組件。它們也在系統(tǒng)級存儲區(qū)。

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

Cortex-M3有一個可選的存儲器保護單元。配上它之后,就可以對特權(quán)級訪問和用戶級訪問分別施加不同的訪問限制。當檢測到犯規(guī)(violated)時,MPU 就會產(chǎn)生一個 fault 異常,可以由fault異常的服務(wù)例程來分析該錯誤,并且在可能時改正它。

MPU 有很多玩法。最常見的就是由操作系統(tǒng)使用 MPU,以使特權(quán)級代碼的數(shù)據(jù),包括操作系統(tǒng)本身的數(shù)據(jù)不被其它用戶程序弄壞。MPU在保護內(nèi)存時是按區(qū)管理的。它可以把某些內(nèi)存 region設(shè)置成只讀,從而避免了那里的內(nèi)容意外被更改;還可以在多任務(wù)系統(tǒng)中把不同任務(wù)之間的數(shù)據(jù)區(qū)隔離。一句話,它會使嵌入式系統(tǒng)變得更加健壯,更加可靠(很多行業(yè)標準,尤其是航空的,就規(guī)定了必須使用 MPU來行使保護職能——譯

注) 。

(8)Cortex-M3的簡評

1、高性能

許多指令都是單周期的——包括乘法相關(guān)指令。并且從整體性能上,Cortex-M3比得過絕大多數(shù)其它的架構(gòu)。

指令總線和數(shù)據(jù)總線被分開,取值和訪內(nèi)可以并行不悖 。

Thumb-2的到來告別了狀態(tài)切換的舊世代,再也不需要花時間來切換于 32位 ARM狀態(tài)和16位Thumb狀態(tài)之間了。這簡化了軟件開發(fā)和代碼維護,使產(chǎn)品面市更快。

Thumb-2指令集為編程帶來了更多的靈活性。許多數(shù)據(jù)操作現(xiàn)在能用更短的代碼搞定,這意味著 Cortex-M3的代碼密度更高,也就對存儲器的需求更少。

取指都按 32位處理。同一周期最多可以取出兩條指令,留下了更多的帶寬給數(shù)據(jù)傳輸。

Cortex-M3的設(shè)計允許單片機高頻運行(現(xiàn)代半導(dǎo)體制造技術(shù)能保證 100MHz以上的速度)即使在相同的速度下運行,CM3的每指令周期數(shù)(CPI)也更低,于是同樣的 MHz下可以做更多的工作;另一方面,也使同一個應(yīng)用在 CM3上需要更低的主頻。

2、先進的中斷處理功能

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

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

NVIC支持對每一路中斷設(shè)置不同的優(yōu)先級,使得中斷管理極富彈性。最粗線條的實現(xiàn)也至少要支持 8級優(yōu)先級,而且還能動態(tài)地被修改。

優(yōu)化中斷響應(yīng)還有兩招,它們分別是“咬尾中斷機制”和“晚到中斷機制”。

有些需要較多周期才能執(zhí)行完的指令,是可以被中斷-繼續(xù)的——就好比它們是一串指令一樣。這些指令包括加載多個寄存器(LDM),存儲多個寄存器(STM),多個寄存器參與的PUSH,以及多個寄存器參與的 POP。

除非系統(tǒng)被徹底地鎖定,NMI(不可屏蔽中斷)會在收到請求的第一時間予以響應(yīng)。對很多安全-關(guān)鍵(safety-critical)的應(yīng)用,NMI都是必不可少的(如化學(xué)反應(yīng)即將失控時的緊急停機)。

通過上面我們可以很容易理解STM32的一些基本知識和結(jié)構(gòu),為學(xué)習(xí)STM32打好了基礎(chǔ)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6035

    文章

    44554

    瀏覽量

    634653
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16332

    瀏覽量

    177812
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355743
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1017

    瀏覽量

    83722
  • Cortex-M3
    +關(guān)注

    關(guān)注

    9

    文章

    269

    瀏覽量

    59463

原文標題:STM32的這些經(jīng)典功能,你真的掌握了嗎?

文章出處:【微信號:技術(shù)讓夢想更偉大,微信公眾號:技術(shù)讓夢想更偉大】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    資料下載:STM32學(xué)習(xí)篇Step1—基礎(chǔ)知識,軟件安裝,工程創(chuàng)建

    ======================STM32基本知識入門==================購買STM32的淘寶店: 深圳育松電子(馬馬虎虎,便宜)telesky旗艦店(貴,資料齊)陳老師
    發(fā)表于 07-05 06:56

    STM32F4的基本知識

    學(xué)習(xí)STM32F4的基本知識,掌握I/O口的基本操作,了解MDK開發(fā)環(huán)境使用方法之后,通過學(xué)習(xí)LED,BEEP,KEY基本模塊的應(yīng)用實例,最終設(shè)計出通過按鍵控制LED和蜂鳴器的實驗程序。最終目標結(jié)果:按鍵按下一次,LED燈亮,同時蜂鳴器發(fā)出響聲,再次按下按鍵,LED燈滅,
    發(fā)表于 08-04 07:27

    用寄存器點亮led燈

    本篇文章介紹了STM32基本知識,以及寄存器編程,映射等有關(guān)知識,最后實例為用寄存器點亮led燈
    發(fā)表于 08-24 06:57

    STM32基本知識入門

    ARM主流的芯片框架有哪些?怎樣去搭建一種STM32開發(fā)環(huán)境?
    發(fā)表于 10-11 07:05

    有關(guān)STM32基本知識都總結(jié)在這里了

    STM32系列的作用有哪些?STM32系列產(chǎn)品的功能有哪些?
    發(fā)表于 10-28 06:08

    有關(guān)STM32基本知識總結(jié)

    STM32的特點有哪些呢?STM32系統(tǒng)有何作用?
    發(fā)表于 11-01 07:26

    寄存器與庫函數(shù)和HAL庫這些都是什么區(qū)別

    最近深感自己學(xué)習(xí)STM32過于短淺,趁著有時間補充了一些STM32基本知識,用博客記錄一下,話不多說進入正題。本文可用于剛開始學(xué)習(xí)STM32的同學(xué)更好地進行
    發(fā)表于 02-28 06:34

    網(wǎng)絡(luò)基本知識教程

    網(wǎng)絡(luò)基本知識教程
    發(fā)表于 01-13 12:55 ?1576次閱讀

    安全用電基本知識

    安全用電基本知識安全用電基本知識安全用電基本知識
    發(fā)表于 01-14 15:54 ?0次下載

    STM32基本知識的詳細剖析

    STM32是一種功能比較強大的32位單片機,廣泛應(yīng)用于各種嵌入式設(shè)備中,由于它的普及性及豐富的資源,受到廣大嵌入式開發(fā)者的喜歡,但要想學(xué)好用好STM32也并非易事,畢竟,相比8位、16位產(chǎn)品,STM32要復(fù)雜得多。
    的頭像 發(fā)表于 01-16 14:29 ?2.5w次閱讀
    對<b class='flag-5'>STM32</b><b class='flag-5'>基本知識</b>的詳細剖析

    關(guān)于STM32基本知識

    STM32簡介 STM32是意法半導(dǎo)體生產(chǎn)的基于ARM公司Cortex-M3內(nèi)核的32位高性能MCU。 ST芯片制造商意法半導(dǎo)體,SOC廠商 ARMIP廠商,負責(zé)芯片內(nèi)核設(shè)計的公司
    的頭像 發(fā)表于 11-27 16:26 ?7495次閱讀

    STM32學(xué)習(xí)篇Step1—基礎(chǔ)知識,軟件安裝,工程創(chuàng)建

    ======================STM32基本知識入門==================購買STM32的淘寶店: 深圳育松電子(馬馬虎虎,便宜) ?telesky旗艦店(貴,資料齊
    發(fā)表于 11-19 13:51 ?12次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)篇Step1—基礎(chǔ)<b class='flag-5'>知識</b>,軟件安裝,工程創(chuàng)建

    關(guān)于STM32基本知識

    1、STM32是“意法半導(dǎo)體”生產(chǎn)的基于“ARM公司Cortex-M3內(nèi)核”的32位高性能MCU。ST----意法半導(dǎo)體,即SOC廠商(芯片制造商)。ARM----IP廠商,負責(zé)芯片內(nèi)核設(shè)計的公司
    發(fā)表于 11-22 11:06 ?27次下載
    關(guān)于<b class='flag-5'>STM32</b>的<b class='flag-5'>基本知識</b>

    STM32庫函數(shù)文件結(jié)構(gòu)說明整理

    最近深感自己學(xué)習(xí)STM32過于短淺,趁著有時間補充了一些STM32基本知識,用博客記錄一下,話不多說進入正題。本文可用于剛開始學(xué)習(xí)STM32的同學(xué)更好地進行
    發(fā)表于 01-13 16:08 ?4次下載
    <b class='flag-5'>STM32</b>庫函數(shù)文件結(jié)構(gòu)說明整理

    電氣基本知識科普

    電氣基本知識科普
    的頭像 發(fā)表于 09-09 10:23 ?6119次閱讀
    電氣<b class='flag-5'>基本知識</b>科普
    主站蜘蛛池模板: 国产精品青青草原app大全| 97成人碰碰在线人妻少妇| 美女搞鸡网站| 被滋润的艳妇疯狂呻吟白洁老七| 视频一区二区三区蜜桃麻豆| 亚洲免费无码中文在线亚洲在| 久久AV亚洲精品一区无码网| 99热婷婷国产精品综合| 天堂网久久| 久cao在线香蕉| WWW国产精品内射老师| 袖珍人与大黑人性视频| 老师你下面好紧夹死了| 动漫美女的阴| 艳妇臀荡乳欲伦岳TXT下载| 欧美阿v在线免播播放| 国产色婷亚洲99精品AV在| 2020久久精品永久免费| 涩涩爱涩涩电影网站| 久久精品日本免费线| 成人精品视频| 一区二区三区高清视频| 琪琪午夜福利免费院| 国内精品自线在拍2020不卡| 99精品国产在热久久| 香蕉久久av一区二区三区| 妈妈的朋友6未删减版完整在线| 高h原耽肉汁动漫视频| 伊人久久综合热青草| 日韩亚洲人成在线| 久久精品一区二区免费看| 攻把受做哭边走边肉楼梯PLAY| 一区二区三区高清视频| 色男人的天堂久久综合| 久久精品亚洲视频| 国产成人精品午夜福麻豆报告| 中文无码字慕在线观看| 天天狠狠色综合图片区| 蜜桃传媒在线观看入口| 国产免费人视频在线观看免费| 99久久免热在线观看|