一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

Cortex-M0系統(tǒng)控制塊(SCB)介紹

安芯教育科技 ? 來源:靈動MM32MCU ? 2023-03-25 15:14 ? 次閱讀

Cortex-M0系統(tǒng)控制塊(SCB)是內(nèi)核外設(shè)的主要模塊之一,提供系統(tǒng)控制以及系統(tǒng)執(zhí)行信息,包括配置,控制,上報(bào)系統(tǒng)異常等。

eaf64be8-cada-11ed-bfe3-dac502259ad0.png

為了提高軟件效率,CMSIS簡化了SCB寄存器表示,在CMSIS中系統(tǒng)控制寄存器結(jié)構(gòu)體:

typedefstruct
{__IMuint32_tCPUID;/*!

一、CPUID

CPUID基地址寄存器包含處理器型號、版本等相關(guān)信息,是只讀的,可以通過應(yīng)用軟件、調(diào)試器和燒錄器等獲取處理器的類型和版本信息。

Address: 0xE000ED00
Reset value: 0x410CC200

eb02a618-cada-11ed-bfe3-dac502259ad0.png

這個(gè)地方CPUID與我們經(jīng)常提到的MCU的96位UID不同,CPUID是處理器的ID號,由Arm提供并實(shí)現(xiàn),通過CPUID可以知道內(nèi)核型號及版本等信息。

而96位UID是MCU產(chǎn)品ID,屬于MM32,由上海靈動微電子股份有限公司提供并按照一定的規(guī)則實(shí)現(xiàn),96位的產(chǎn)品唯一身份標(biāo)識所提供的參考號碼對任意一個(gè)系列微控制器,在任何情況下都是唯一的。

用戶在何種情況下,都不能修改這個(gè)身份標(biāo)識。

MCU還有一個(gè)DEV_ID編碼,這個(gè)ID定義了MCU的器件號和硅片版本號,它是DBG_MCU的一個(gè)組成部分,并且映射到外部APB總線上。SW 調(diào)試口(2個(gè)引腳) 或通過用戶代碼都可以訪問此編碼。

DEV_ID地址:0x40013400 只支持32位訪問,只讀。

eb16265c-cada-11ed-bfe3-dac502259ad0.png

在CMSIS驅(qū)動庫中,可以直接使用“ SCB->CPUID ” 獲取處理器ID。讀取MM32F0130的CPUID、UID和DEV_ID如下所示:

eb220292-cada-11ed-bfe3-dac502259ad0.png

CPUID (0x410CC200)解析處理器信息:

eb36add2-cada-11ed-bfe3-dac502259ad0.png

二、ICSR (Interrupt Control and State Register)

提供:

NMI異常的設(shè)置掛起位

為PendSV和SysTick異常設(shè)置掛起和清除掛起位

表示:

正在處理的異常的異常編號

是否有被搶占的活動異常

最高優(yōu)先級未決異常的異常編號

是否有任何中斷待處理

Address: 0xE000ED04
Reset value: 0x0000 0000

eb4518d6-cada-11ed-bfe3-dac502259ad0.png

ICSR中的某些控制位僅供調(diào)試使用,大多數(shù)情況下,應(yīng)用程序只會用ICSR來控制或者檢查系統(tǒng)異常掛起狀態(tài)。

PendSV(可掛起的系統(tǒng)調(diào)用)異常對 OS 操作非常重要,其優(yōu)先級可以通過編程設(shè)置??梢酝ㄟ^將中斷控制和壯態(tài)寄存器 ICSR 的 bit28掛起位置1來觸發(fā)PendSV中斷。與SVC異常不同,它是不精確的,因此它的掛起狀態(tài)可在更高優(yōu)先級異常處理內(nèi)設(shè)置,且會在高優(yōu)先級處理完成后執(zhí)行。

利用該特性,若將PendSV設(shè)置為最低的異常優(yōu)先級,可以讓PendSV異常處理在所有其他中斷處理完成后執(zhí)行,這對于上下文切換非常有用,也是各種OS設(shè)計(jì)中的關(guān)鍵。在具有嵌入式OS的典型系統(tǒng)中,處理時(shí)間被劃分為了多個(gè)時(shí)間片。

通過向中斷控制和狀態(tài)寄存器 ICSR 的 bit28 寫入1掛起PendSV來啟動PendSV中斷,如果中斷啟用且有編寫 PendSV 異常服務(wù)函數(shù)的話,則內(nèi)核會響應(yīng) PendSV 異常,去執(zhí)行PendSV 異常服務(wù)函數(shù),這樣就可以在PendSV中斷服務(wù)函數(shù)中進(jìn)行任務(wù)切換了。

三、AIRCR (Application Interrupt and Reset Control Register)

AIRCR為數(shù)據(jù)訪問和系統(tǒng)的復(fù)位控制提供字節(jié)序狀態(tài)。

要寫入該寄存器,您必須寫入0x05FA VECTKEY 字段,否則處理器將忽略寫入。

Address: 0xE000ED0C
Reset value: 0xFA05 0000

eb5b2586-cada-11ed-bfe3-dac502259ad0.png

任何對該寄存器的寫操作,都必須將0x05FA寫入到AIRCR[30:16],否則寫操作將無效,若需要半字讀取,需要寫入0xFA05。

應(yīng)用程序中系統(tǒng)執(zhí)行軟復(fù)位函數(shù):

__STATIC_INLINEvoidNVIC_SystemReset(void)
{__DSB();//確保所有未完成的內(nèi)存訪問包括緩沖寫入在重置之前完成
SCB->AIRCR=((0x5FAUL<

四、SCR (System Control Register)

SCR 控制進(jìn)入和退出低功耗狀態(tài)的特性。

Address: 0xE000ED10
Reset value: 0x0000 0000





審核編輯:劉清

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

    關(guān)注

    68

    文章

    19740

    瀏覽量

    232918
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5401

    瀏覽量

    122808
  • CMSIS
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    12162
  • Cortex-M0
    +關(guān)注

    關(guān)注

    4

    文章

    125

    瀏覽量

    39224
  • 中斷控制
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    8957

原文標(biāo)題:Cortex-M0中斷控制和系統(tǒng)控制(四)

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    靈動微課堂 (第176講) | Cortex-M0中斷控制系統(tǒng)控制(二)

    開始時(shí)完成的。arm官方資料提示應(yīng)該避免在中斷使能之后改變中斷優(yōu)先級,因?yàn)檫@種情況的結(jié)果在ARMv6-M系統(tǒng)結(jié)構(gòu)是不可預(yù)知的,并且不被Cortex-M0處理器支持。Cortex-M3/
    發(fā)表于 07-29 18:49

    靈動微課堂 (第178講) | Cortex-M0中斷控制系統(tǒng)控制(四)

    Cortex-M0系統(tǒng)控制(SCB)是內(nèi)核外設(shè)的主要模塊之一,提供系統(tǒng)控制以及系統(tǒng)執(zhí)行信息,包
    發(fā)表于 08-06 14:49

    恩智浦推出基于Cortex-M0控制LPC1100微控制

    恩智浦推出基于Cortex-M0控制LPC1100微控制器系列 恩智浦半導(dǎo)體(NXP Semiconductors)今天宣布,旗下基于ARM Cortex-M0的LPC1100微
    發(fā)表于 11-18 09:04 ?1604次閱讀

    新唐科技推出基于Cortex-M0內(nèi)核的32位MCU

    新唐科技推出基于Cortex-M0內(nèi)核的32位MCU 新唐科技宣布推出以 ARM? Cortex?-M0 為核心的 32 位微控制器 — NuMicro? 家族。 NuMicro?
    發(fā)表于 01-09 10:40 ?1006次閱讀

    Cortex-M0的指令集

    Cortex-M0的指令集,有需要的下來看看。
    發(fā)表于 01-13 17:17 ?29次下載

    TinyM0配套教程】LPC1100系列Cortex-M0最小系統(tǒng)設(shè)計(jì)

    TinyM0配套教程】LPC1100系列Cortex-M0最小系統(tǒng)設(shè)計(jì)
    發(fā)表于 09-29 19:18 ?16次下載
    TinyM<b class='flag-5'>0</b>配套教程】LPC1100系列<b class='flag-5'>Cortex-M0</b>最小<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    TinyM0配套教程LPC1100系列Cortex-M0最小系統(tǒng)設(shè)計(jì)

    TinyM0配套教程LPC1100系列Cortex-M0最小系統(tǒng)設(shè)計(jì)
    發(fā)表于 10-09 09:39 ?7次下載
    TinyM<b class='flag-5'>0</b>配套教程LPC1100系列<b class='flag-5'>Cortex-M0</b>最小<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    cortex-m0加密

    cortex-m0加密
    發(fā)表于 10-13 15:08 ?5次下載
    <b class='flag-5'>cortex-m0</b>加密

    新塘 Cortex-M0 最小系統(tǒng)

    新塘 Cortex-M0 最小系統(tǒng)
    發(fā)表于 10-16 15:52 ?23次下載
    新塘 <b class='flag-5'>Cortex-M0</b> 最小<b class='flag-5'>系統(tǒng)</b>

    基于ARM Cortex-M0核的MCU設(shè)計(jì)及應(yīng)用

    知網(wǎng)鏈接:基于ARM Cortex-M0核的MCU設(shè)計(jì)及應(yīng)用
    發(fā)表于 11-05 15:35 ?18次下載
    基于ARM <b class='flag-5'>Cortex-M0</b>核的MCU設(shè)計(jì)及應(yīng)用

    Cortex-M0中斷控制系統(tǒng)控制(二)

    每一個(gè)外部中斷都有一個(gè)對應(yīng)的優(yōu)先級寄存器,Cortex-M0中NVIC-IPR共有8個(gè)寄存器,而每個(gè)寄存器管理4個(gè)IRQ中斷,所以M0的IRQ中斷源最多只支持32個(gè),再加上16個(gè)內(nèi)核中斷,也就是說M0最多48個(gè)中斷源。
    發(fā)表于 02-08 15:48 ?3次下載
    <b class='flag-5'>Cortex-M0</b>中斷<b class='flag-5'>控制</b>和<b class='flag-5'>系統(tǒng)控制</b>(二)

    Cortex-M0中斷控制系統(tǒng)控制

    Cortex-M0采用Armv6-M架構(gòu),優(yōu)先級寄存器配置位有8位,但是有效位只有最高2位,這個(gè)地方很多人使用了Cortex-M3后一直也認(rèn)為Cortex-M0也是最高3或4位有效位
    的頭像 發(fā)表于 04-24 11:20 ?3382次閱讀

    全球最強(qiáng)性能Cortex-M0 MCU誕生!

    Arm傳統(tǒng)的、為MCU打造的Cortex-M系列CPU主要有:Cortex-M0, Cortex-M3, Cortex-M4。其中Cortex-M0
    的頭像 發(fā)表于 12-20 11:15 ?1441次閱讀

    Cortex-M0中斷控制系統(tǒng)控制知識點(diǎn)

    每一個(gè)外部中斷都有一個(gè)對應(yīng)的優(yōu)先級寄存器,Cortex-M0中NVIC-IPR共有8個(gè)寄存器,而每個(gè)寄存器管理4個(gè)IRQ中斷,所以M0的IRQ中斷源最多只支持32個(gè),再加上16個(gè)內(nèi)核中斷,也就是說M0最多48個(gè)中斷源。
    的頭像 發(fā)表于 03-20 09:28 ?3699次閱讀

    敏矽微電子Cortex-M0學(xué)習(xí)筆記02——Cortex-M0開發(fā)環(huán)境的建立及調(diào)試

    敏矽微電子Cortex-M0學(xué)習(xí)筆記02——Cortex-M0開發(fā)環(huán)境的建立及調(diào)試
    的頭像 發(fā)表于 09-26 17:05 ?1822次閱讀
    敏矽微電子<b class='flag-5'>Cortex-M0</b>學(xué)習(xí)筆記02——<b class='flag-5'>Cortex-M0</b>開發(fā)環(huán)境的建立及調(diào)試