精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

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

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

Cortex-M0系統控制塊(SCB)是內核外設的主要模塊之一,提供系統控制以及系統執行信息,包括配置,控制,上報系統異常等。

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

為了提高軟件效率,CMSIS簡化了SCB寄存器表示,在CMSIS中系統控制寄存器結構體:

typedefstruct
{__IMuint32_tCPUID;/*!

一、CPUID

CPUID基地址寄存器包含處理器型號、版本等相關信息,是只讀的,可以通過應用軟件、調試器和燒錄器等獲取處理器的類型和版本信息。

Address: 0xE000ED00
Reset value: 0x410CC200

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

這個地方CPUID與我們經常提到的MCU的96位UID不同,CPUID是處理器的ID號,由Arm提供并實現,通過CPUID可以知道內核型號及版本等信息。

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

用戶在何種情況下,都不能修改這個身份標識。

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

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

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

在CMSIS驅動庫中,可以直接使用“ 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異常的設置掛起位

為PendSV和SysTick異常設置掛起和清除掛起位

表示:

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

是否有被搶占的活動異常

最高優先級未決異常的異常編號

是否有任何中斷待處理

Address: 0xE000ED04
Reset value: 0x0000 0000

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

ICSR中的某些控制位僅供調試使用,大多數情況下,應用程序只會用ICSR來控制或者檢查系統異常掛起狀態。

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

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

通過向中斷控制和狀態寄存器 ICSR 的 bit28 寫入1掛起PendSV來啟動PendSV中斷,如果中斷啟用且有編寫 PendSV 異常服務函數的話,則內核會響應 PendSV 異常,去執行PendSV 異常服務函數,這樣就可以在PendSV中斷服務函數中進行任務切換了。

三、AIRCR (Application Interrupt and Reset Control Register)

AIRCR為數據訪問和系統的復位控制提供字節序狀態。

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

Address: 0xE000ED0C
Reset value: 0xFA05 0000

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

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

應用程序中系統執行軟復位函數:

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

四、SCR (System Control Register)

SCR 控制進入和退出低功耗狀態的特性。

Address: 0xE000ED10
Reset value: 0x0000 0000





審核編輯:劉清

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

    關注

    68

    文章

    19178

    瀏覽量

    229201
  • 寄存器
    +關注

    關注

    31

    文章

    5325

    瀏覽量

    120053
  • CMSIS
    +關注

    關注

    0

    文章

    39

    瀏覽量

    11874
  • Cortex-M0
    +關注

    關注

    4

    文章

    124

    瀏覽量

    38643
  • 中斷控制
    +關注

    關注

    0

    文章

    26

    瀏覽量

    8860

原文標題:Cortex-M0中斷控制和系統控制(四)

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

收藏 人收藏

    評論

    相關推薦

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

    開始時完成的。arm官方資料提示應該避免在中斷使能之后改變中斷優先級,因為這種情況的結果在ARMv6-M系統結構是不可預知的,并且不被Cortex-M0處理器支持。Cortex-M3/
    發表于 07-29 18:49

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

    Cortex-M0系統控制(SCB)是內核外設的主要模塊之一,提供系統控制以及系統執行信息,包
    發表于 08-06 14:49

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

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

    新唐科技推出基于Cortex-M0內核的32位MCU

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

    Cortex-M0的指令集

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

    TinyM0配套教程】LPC1100系列Cortex-M0最小系統設計

    TinyM0配套教程】LPC1100系列Cortex-M0最小系統設計
    發表于 09-29 19:18 ?16次下載
    TinyM<b class='flag-5'>0</b>配套教程】LPC1100系列<b class='flag-5'>Cortex-M0</b>最小<b class='flag-5'>系統</b>設計

    TinyM0配套教程LPC1100系列Cortex-M0最小系統設計

    TinyM0配套教程LPC1100系列Cortex-M0最小系統設計
    發表于 10-09 09:39 ?7次下載
    TinyM<b class='flag-5'>0</b>配套教程LPC1100系列<b class='flag-5'>Cortex-M0</b>最小<b class='flag-5'>系統</b>設計

    cortex-m0加密

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

    新塘 Cortex-M0 最小系統

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

    基于ARM Cortex-M0核的MCU設計及應用

    知網鏈接:基于ARM Cortex-M0核的MCU設計及應用
    發表于 11-05 15:35 ?18次下載
    基于ARM <b class='flag-5'>Cortex-M0</b>核的MCU設計及應用

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

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

    Cortex-M0中斷控制系統控制

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

    全球最強性能Cortex-M0 MCU誕生!

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

    Cortex-M0中斷控制系統控制知識點

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

    敏矽微電子Cortex-M0學習筆記02——Cortex-M0開發環境的建立及調試

    敏矽微電子Cortex-M0學習筆記02——Cortex-M0開發環境的建立及調試
    的頭像 發表于 09-26 17:05 ?1526次閱讀
    敏矽微電子<b class='flag-5'>Cortex-M0</b>學習筆記02——<b class='flag-5'>Cortex-M0</b>開發環境的建立及調試