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

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

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

cortex-m3的操作模式及特權(quán)級(jí)別

CHANBAEK ? 來源:硬件工程師干貨 ? 作者:硬件工程師干貨 ? 2023-03-01 11:00 ? 次閱讀

STM32是cortex-m3內(nèi)核芯片,擁有cortex-m3的特性,以下介紹了cortex-m3的特權(quán)級(jí)別。

1、先來說一下操作模式:

cortex-m3有兩種操作模式:筆者覺得也可以稱為代碼執(zhí)行模式,線程模式(thread mode)和異常模式(handler mode),用于表示處理器在執(zhí)行什么代碼。

thread mode:執(zhí)行非異常代碼,也就是用戶代碼。

handler mode:執(zhí)行異常代碼,如中斷服務(wù)程序。

2、再來說一下特權(quán)級(jí)別:

cortex-m3有兩種權(quán)利級(jí)別:特權(quán)級(jí)(Privilege)和用戶級(jí)(user)。這兩種模式主要用于阻止對(duì)硬件的異常訪問,比如存儲(chǔ)資源、關(guān)鍵寄存器等。

特權(quán)級(jí)別:能夠訪問硬件所有存儲(chǔ)資源,能夠執(zhí)行所有指令。

用戶級(jí)別:禁止使用MSR和MRS訪問特殊功能寄存器(APSR除外),不能使用CPS指令。對(duì)系統(tǒng)控制空間的訪問有限制,即,不能訪問system tick、NVIC、system control block(SCB)。

如何才能在這兩個(gè)級(jí)別切換呢?答案是修改寄存器CONTROL[0]。這個(gè)寄存器只能在特權(quán)級(jí)別下修改,用戶級(jí)別下是不能修改此寄存器的,要想從用戶級(jí)別轉(zhuǎn)到特權(quán)級(jí)別,只能進(jìn)入異常/中斷,然后在異常/中斷中修改寄存器,因?yàn)樵诋惓?中斷中總是特權(quán)級(jí)別。

在線程模式,可以是特權(quán)級(jí),也可以是用戶級(jí)。handler模式總是特權(quán)級(jí)的。在復(fù)位后,處理器處于線程模式+特權(quán)級(jí)。

3、介紹一下系統(tǒng)控制空間(SCS):

系統(tǒng)控制空間(system control space):在地址空間的位置,如下圖所示,地址區(qū)間0xE000E000-0xE000F000,這部分區(qū)域包含:System control block、system tick、Nested Vectored Interrupt Controller(NVIC)、PMU等。這些寄存器是處理器能夠工作的根本,必須有相應(yīng)權(quán)限才能修改,即,特權(quán)級(jí)才能修改。

poYBAGP-v3aAQ9rNAAMZjpHl_GA060.png

System control block(SCB)包含了系統(tǒng)相關(guān)的寄存器,如下:

poYBAGP-v4yARrPiAAK40gAfTJA273.png

4、總結(jié):

特權(quán)級(jí)有特權(quán),權(quán)利大,能訪問所有資源,用戶級(jí)權(quán)利小,不能所有資源。說實(shí)話這權(quán)利級(jí)別一般不做修改,即,保持默認(rèn)的特權(quán)級(jí)別。因?yàn)閏ortex-M3內(nèi)核是個(gè)低端內(nèi)核,很大一部分應(yīng)用都是無操作系統(tǒng)的裸機(jī)執(zhí)行程序,在沒有特殊安全要求的前提下沒必要切來切去的,比較麻煩。

5、題外話:

我們?cè)谑褂肧TM32跑實(shí)時(shí)操作系統(tǒng)的時(shí)候經(jīng)常使用systick作為操作系統(tǒng)的心跳,很多人不知道這個(gè)systick和普通的定時(shí)器有什么區(qū)別,通過上面介紹這個(gè)systick相關(guān)寄存器位于系統(tǒng)控制空間(SCS),用戶級(jí)別不能訪問systick寄存器,防止用戶級(jí)別代碼誤操作,篡改systick寄存器威脅系統(tǒng)安全。

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

    關(guān)注

    31

    文章

    5295

    瀏覽量

    119839
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1361

    瀏覽量

    40185
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354341
  • Cortex
    +關(guān)注

    關(guān)注

    2

    文章

    202

    瀏覽量

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

    關(guān)注

    9

    文章

    269

    瀏覽量

    59406
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【圖書分享】Cortex-M3 + μC/OS-II嵌入式系統(tǒng)開發(fā)入門與應(yīng)用

    體系結(jié)構(gòu)   2.1 Cortex-M3綜述   2.2 Cortex-M3編程模式    2.2.1 Cortex-M3的工作模式和工作狀
    發(fā)表于 03-13 11:02

    【安富萊】【RTX操作系統(tǒng)教程】第9章 任務(wù)運(yùn)行在特權(quán)級(jí)或非特權(quán)級(jí)模式

    第9章任務(wù)運(yùn)行在特權(quán)級(jí)或非特權(quán)級(jí)模式 本章教程為大家講解RTX運(yùn)行模式的一個(gè)重要知識(shí)點(diǎn),特權(quán)級(jí)模式
    發(fā)表于 01-23 17:11

    第9章 任務(wù)運(yùn)行在特權(quán)級(jí)或非特權(quán)級(jí)模式

    轉(zhuǎn)rtx操作系統(tǒng)本章教程為大家講解RTX運(yùn)行模式的一個(gè)重要知識(shí)點(diǎn),特權(quán)級(jí)模式和非特權(quán)級(jí)模式,有些
    發(fā)表于 10-04 17:43

    嵌入式MCU ARM Cortex-M3工作模式與異常

    并行不悖。這樣一來數(shù)據(jù)訪問不再占用指令總線,從而提升了性能。下面宇芯電子介紹關(guān)于嵌入式MCU ARM Cortex-M3工作模式與異常。 一、工作模式 線程模式和手柄
    發(fā)表于 04-16 14:17

    Cortex-M3簡(jiǎn)述

    Cortex-M3Cortex-M3簡(jiǎn)述Cortex-M3是ARM公司設(shè)計(jì)的ARMv7架構(gòu)下Cortex系列的首秀,其目的是為了讓32位處理器加入單片機(jī)市場(chǎng),Cortex-M3的特點(diǎn)有
    發(fā)表于 11-10 08:19

    Cortex-M3 技術(shù)參考手冊(cè)

    第 1 章概述本章描述了 Cortex-M3 處理器的組件以及處理器的指令集。第 2 章編程模型(programmer’s model)本章描述了 Cortex-M3 的寄存器集,工作模式,和其它與
    發(fā)表于 07-08 16:40 ?112次下載

    淺談Cortex-M3Cortex-M4在高性能信號(hào)處理中

    淺談Cortex-M3Cortex-M4在高性能信號(hào)處理中的差異
    發(fā)表于 11-02 10:22 ?0次下載

    Cortex-M3權(quán)威指南介紹

    Cortex-M3處理器介紹基本的硬件構(gòu)架和指令系統(tǒng)待
    發(fā)表于 11-23 11:01 ?0次下載

    基于Cortex-M3的MP3播放器設(shè)計(jì)

    基于Cortex-M3的MP3播放器設(shè)計(jì).
    發(fā)表于 01-22 14:26 ?0次下載

    Cortex-M3技術(shù)參考手冊(cè)

    Cortex-M3技術(shù)參考手冊(cè)
    發(fā)表于 12-27 22:11 ?12次下載

    Cortex-M3操作指南

    Cortex-M3操作指南
    發(fā)表于 12-27 22:12 ?3次下載

    Cortex-M3的技術(shù)參考手冊(cè)

    Cortex-M3的技術(shù)參考手冊(cè)
    發(fā)表于 10-30 10:56 ?43次下載
    <b class='flag-5'>Cortex-M3</b>的技術(shù)參考手冊(cè)

    ARM Cortex-M3 內(nèi)核的不同功能模塊

    進(jìn)行。Cortex-M3還提供一個(gè) 可選的MPU,對(duì)存儲(chǔ)器進(jìn)行保護(hù),而且在需要的情況下也可以使用外部的cache。另外在Cortex-M3中, 存儲(chǔ)器支持小端模式和大端存儲(chǔ)格式。Cortex-
    發(fā)表于 07-08 15:18 ?9次下載
    ARM <b class='flag-5'>Cortex-M3</b> 內(nèi)核的不同功能模塊

    Cortex-M3 技術(shù)參考手冊(cè)

    Cortex-M3 技術(shù)參考手冊(cè)
    發(fā)表于 09-30 16:31 ?17次下載

    Cortex-M3處理器內(nèi)核與基于Cortex-M3的MCU關(guān)系

    Cortex-M3Cortex-M3簡(jiǎn)述Cortex-M3是ARM公司設(shè)計(jì)的ARMv7架構(gòu)下Cortex系列的首秀,其目的是為了讓32位處理器加入單片機(jī)市場(chǎng),Cortex-M3的特點(diǎn)有
    發(fā)表于 11-05 18:35 ?8次下載
    <b class='flag-5'>Cortex-M3</b>處理器內(nèi)核與基于<b class='flag-5'>Cortex-M3</b>的MCU關(guān)系