99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

TC3xx芯片的MPU功能詳解

832065824 ? 來(lái)源:汽車電子嵌入式 ? 2023-09-19 11:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

在前面的<>文章文章中我們介紹了RH850-U2A的內(nèi)存保護(hù)單元(MPU),了解了MPU的概念以及在RH850-U2A上的具體使用流程,但是對(duì)于TC3xx系列芯片的的MPU功能不甚了解。本文就來(lái)詳細(xì)介紹下TC3xx芯片的MPU功能。

wKgZomUJGniAWMcGAABvIJ3pGu8491.jpg

縮略詞

簡(jiǎn)寫 全稱
MPU MemoryProtecionUnit
PS ProtectionSet
PSW ProgramStateWord

參考文檔:

1. TriCoreTM TC1.6.2 core architecture manual

2. AURIXTC3XX_um_part1_v2.0.pdf

3.MPU功能詳解-以RH850U2A為例

4.TC3xx芯片的Trap詳解

注:本公眾號(hào)文章中使用了一些第三方工具和文檔,若有侵權(quán),請(qǐng)聯(lián)系作者刪除!

正文

1.TC3xx芯片MPU介紹

MPU內(nèi)存保護(hù)是芯片的硬件的機(jī)制,可保護(hù)用戶指定的內(nèi)存范圍免受未經(jīng)授權(quán)的讀取,寫入或指令提取訪問(wèn)的影響。通過(guò)MPU配置,把芯片的Memory劃分為位若干(有大小限制)區(qū)域,每個(gè)區(qū)域可以配置讀(DataRead)、寫(DataWrite)、執(zhí)行(CodeFetch)權(quán)限。配置MPU且使能MPU后,如果訪問(wèn)某個(gè)內(nèi)存區(qū)域但是改內(nèi)存區(qū)域沒(méi)有配置對(duì)應(yīng)的權(quán)限,就會(huì)產(chǎn)生MPUTrap。

1.1TC3xx芯片MPU資源

以TC37x(TC1.6.2.P內(nèi)核)為例,有6個(gè)Memory Protection Register Sets;TC37x芯片有3個(gè)Core,每個(gè)核有18個(gè)Data Memory Protection Ranges,10個(gè)Code Protection Ranges。

wKgZomUJGniAR-dEAABnpVYd7Ik399.jpg

wKgZomUJGniAeyxTAAB2gB6_Vgw607.jpg

wKgaomUJGniALUE0AADag8beZO4935.jpg

wKgaomUJGniAU2zmAADZ0uXaEC0762.jpg

Note: 后文會(huì)介紹什么是Memory Protection Sets,Data/Code Protection Range.

1.2 Protection Sets

官方解釋:

wKgaomUJGniAE8K9AANbgzyUZ8I662.jpg

作者理解:TC3xx芯片可以配置多種內(nèi)存保護(hù)集(Sets),每種內(nèi)存保護(hù)集的內(nèi)存劃分及其權(quán)限可以不一樣,這樣我們可以通過(guò)切換當(dāng)前的內(nèi)存保護(hù)集實(shí)現(xiàn)不一樣的內(nèi)存保護(hù)策略。程序狀態(tài)字寄存器的的PRS位域(PSW.PRS)確定了當(dāng)前使用內(nèi)存保護(hù)集。

1.3Protection Range

官方解釋:

wKgZomUJGsyAJ4JhAAGT6QkT91I099.jpg

作者理解:TC3xx芯片的內(nèi)存保護(hù)Range的劃分和RH850不一樣,TC3xx的內(nèi)存保護(hù)Range還區(qū)分Data Protection Ranges和CodeProtection Ranges,對(duì)于Data Protection Ranges只能Enable讀、寫的權(quán)限,對(duì)于Code Protection Range只能Enable可執(zhí)行(Execute Access)權(quán)限。

1.4訪問(wèn)權(quán)限

每個(gè)內(nèi)存保護(hù)區(qū)域可以配置它的DataRead, Data Write, Intruction Fectch權(quán)限,不過(guò)通過(guò)1.2章節(jié)可知,DataProtection Range只能配置Data Read/Write權(quán)限,Code Protection Range只能配置Instruction Fectch權(quán)限。

wKgaomUJGsyAMZY3AAFFXUkyRb4339.jpg

Note1: 兩塊不同Protection Range的公共區(qū)域的訪問(wèn)權(quán)限是兩塊區(qū)域訪問(wèn)權(quán)限的”或”關(guān)系后的訪問(wèn)權(quán)限。

wKgaomUJGxCATqt4AACJoIEV-Rk574.jpg

Note2: 跨Protection Range的訪問(wèn)不會(huì)產(chǎn)生Trap。

wKgaomUJGsyAW0LbAAFMwty-qJo141.jpg

Note3: 為了保持Protection Regions的分離性,Protection Region間應(yīng)該有空置的區(qū)域。

wKgaomUJGsyAGY7qAAEENxSm6Tk235.jpg

1.5使能內(nèi)存保護(hù)

配置SYSCON.PROTEN == 1即使能內(nèi)存保護(hù)功能。

wKgZomUJGsyAQdvIAADX1-NaNJg209.jpg

1.6內(nèi)存保護(hù)Trap

使能了內(nèi)存保護(hù)后,如果產(chǎn)生Error,就會(huì)觸發(fā)對(duì)應(yīng)的Trap??梢詤⒖?>一文。

wKgaomUJGsyATTwlAAFHbO0pU7Q698.jpg

2.TC3xx內(nèi)存保護(hù)配置

ProtectionsSets和Code/Data Protection Type在DavinciConfigurator的SIP包中根據(jù)定制的芯片類型以及預(yù)定義好的,只要使用的在配置Protection Range的時(shí)候引用就行。

wKgZomUJGsyAdA56AAN_cIVLJ6Q659.jpg

wKgZomUJGsyAJ4CYAAG7HHT7dCA461.jpg

如上圖所示,我們配置了一個(gè)Data Protection Ranges,給DFlash0配置上MPU權(quán)限:

Short Name: Protection Ranges的名字。

Memory Region End Address: Protection Ranges的結(jié)束地址,必須是8字節(jié)的整數(shù)倍,且應(yīng)該大于等于StartAddress.

Memory Region Identifier: 定義可選的特定于硬件的內(nèi)存保護(hù)區(qū)域標(biāo)識(shí)符。不是必須配置項(xiàng),一般不用配置。

MemoryRegion Owner: 指定內(nèi)存保護(hù)區(qū)域是特定于OS-Applicaiton,Task, ISR ,還是全局的。如果引用了Task, ISR后,只有進(jìn)入到對(duì)應(yīng)的Task,ISR后該P(yáng)rotection Ranges才被激活。如果沒(méi)有引用,則該P(yáng)rotection一直是被激活的。

Note: 這個(gè)配置項(xiàng)需要謹(jǐn)慎配置,如果不是很確定,建議不要配置,也就是Global的。因?yàn)?,比如,我給該P(yáng)rotection Ranges配置了一個(gè)Task,那么該P(yáng)rotectionRange只有該Task才能讀寫,如果有其他的Task也讀寫該P(yáng)rotection Ranges的話,就會(huì)產(chǎn)生MPUTrap。

Memory Region Protection Unit: 配置該P(yáng)rotection Range屬于哪一個(gè)Core的Data/Code MPU Protection Ranges。

Memory Region Protection Unit Slot: 和硬件特性相關(guān),可以不用配置。

Memory Region Start Address: Protection Ranges的起始地址,必須是8字節(jié)的整數(shù)倍,且應(yīng)該大于等于EndAddress.

Memory Region Access Rights: 選擇預(yù)定義好的Protection Set的權(quán)限。

3.MPU功能驗(yàn)證

參考:<>

著重理解Trap產(chǎn)生后如何定位發(fā)生Trap的位置及產(chǎn)生Trap的原因。

4.總結(jié)

使能MPU功能后,MCU的所有內(nèi)存訪問(wèn)都會(huì)被監(jiān)控,一單出現(xiàn)非預(yù)期內(nèi)的內(nèi)存訪問(wèn)就會(huì)觸發(fā)MPU的保護(hù),產(chǎn)生MPUTrap。根據(jù)使用經(jīng)驗(yàn),MPU是把雙刃劍,用的好能把一些偶發(fā)內(nèi)存異常訪問(wèn)問(wèn)題扼殺在開(kāi)發(fā)階段,也能利用MPU來(lái)定位內(nèi)存非法訪問(wèn)問(wèn)題。用的不好,就會(huì)導(dǎo)致系統(tǒng)經(jīng)常進(jìn)入Trap(一般都會(huì)走Reset)。如果項(xiàng)目要上MPU,建議提前規(guī)劃好MPU Protection Ranges及其訪問(wèn)權(quán)限,這樣經(jīng)過(guò)大量的開(kāi)發(fā)過(guò)程驗(yàn)證才能確保MPU達(dá)到正向監(jiān)控的作用,而不是出現(xiàn)反作用。

審核編輯:湯梓紅

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

    關(guān)注

    460

    文章

    52520

    瀏覽量

    441021
  • MPU
    MPU
    +關(guān)注

    關(guān)注

    0

    文章

    415

    瀏覽量

    49927
  • 內(nèi)存保護(hù)單元

    關(guān)注

    0

    文章

    6

    瀏覽量

    1675

原文標(biāo)題:TC3xx芯片MPU介紹

文章出處:【微信號(hào):汽車電子嵌入式,微信公眾號(hào):汽車電子嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    英飛凌TC3XX系列多核MCU學(xué)習(xí)筆記(1)

    聲明:本文是在學(xué)習(xí)英飛凌 TC3XX系列多核 MCU 過(guò)程中整理的筆記,便于后期復(fù)習(xí)!
    發(fā)表于 09-19 09:54 ?3717次閱讀
    英飛凌<b class='flag-5'>TC3XX</b>系列多核MCU學(xué)習(xí)筆記(1)

    TC3xx芯片的Endinit功能詳解

    上鎖Endinit。那什么是Endinit功能了? -- 本文就來(lái)詳細(xì)解鎖TC3xx芯片的Endinit機(jī)制。
    的頭像 發(fā)表于 11-27 09:23 ?3374次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>的Endinit<b class='flag-5'>功能</b><b class='flag-5'>詳解</b>

    TC3xx芯片時(shí)鐘系統(tǒng)的鎖相環(huán)PLL詳解

    的Tick數(shù)就是基于模塊時(shí)鐘的)。本系列文章就來(lái)詳細(xì)介紹TC3xx芯片的時(shí)鐘系統(tǒng)及其具體配置。本文為TC3xx芯片時(shí)鐘系統(tǒng)的鎖相環(huán)PLL詳解
    的頭像 發(fā)表于 12-01 09:37 ?3689次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>時(shí)鐘系統(tǒng)的鎖相環(huán)PLL<b class='flag-5'>詳解</b>

    英飛凌TC3xx系列安全管理單元的使用

    本篇文檔主要用來(lái)介紹英飛凌基于AURIX-2G TriCore 1.6.2架構(gòu)的 TC3xx系列安全管理單元的使用。
    的頭像 發(fā)表于 12-07 09:29 ?3331次閱讀
    英飛凌<b class='flag-5'>TC3xx</b>系列安全管理單元的使用

    TC3xx SCR功耗應(yīng)該怎么評(píng)估?

    TC3xx SCR處于70kHz active狀態(tài),以及CAN WAKE UP也處于active,Tricore都掉電了,這個(gè)時(shí)候功耗是多少呢?SCR中不同的組件激活狀態(tài)下,功耗應(yīng)該怎么評(píng)估,有沒(méi)有
    發(fā)表于 01-19 08:28

    TC3XX寄存器讀寫時(shí)間過(guò)長(zhǎng)怎么解決?

    我目前在做TC3XX底層代碼優(yōu)化,經(jīng)過(guò)之前多次測(cè)試目前可以確定該系列芯片對(duì)單個(gè)寄存器地址的讀寫耗時(shí)超過(guò)100us。請(qǐng)問(wèn)對(duì)于寄存器讀寫耗時(shí)你們官方有沒(méi)有確切的文件說(shuō)明?還有就是既然寄存器讀寫時(shí)間那么長(zhǎng)100M的外設(shè)總線時(shí)鐘是否有意義?
    發(fā)表于 01-25 06:56

    TC3xx系列怎么禁用trap?

    目前在TC3xx調(diào)試flash讀寫功能,單獨(dú)運(yùn)行flash相關(guān)功能沒(méi)有問(wèn)題,但將flash相關(guān)功能集成到工程中。操作pflash就會(huì)進(jìn)入trap中,查看了一些帖子說(shuō)是要禁掉trap?請(qǐng)
    發(fā)表于 01-31 06:21

    TC3xx系列是否支持RTC功能?

    請(qǐng)教各位,TC3xx系列芯片是否支持RTC功能,目前要記錄snapshot的時(shí)間點(diǎn)(年月日時(shí)分秒)。
    發(fā)表于 02-02 07:53

    TC3xx的HSM中有沒(méi)有單調(diào)計(jì)數(shù)器?

    你好, 我看到 OPTIGA 有單調(diào)計(jì)數(shù)器,但我在 TC3xx 的 HSM 中確實(shí)找不到單調(diào)計(jì)數(shù)器。 能否確認(rèn)TC3xx的HSM中沒(méi)有單調(diào)計(jì)數(shù)器?
    發(fā)表于 03-05 07:56

    TSIM是否支持TC3xx系列在沒(méi)有硬件的情況下調(diào)試應(yīng)用程序?

    你好, TSIM是否支持TC3xx系列在沒(méi)有硬件的情況下調(diào)試應(yīng)用程序? AURIX TC3xx - Free Entry ToolChain 是否有助于實(shí)現(xiàn)上述目的?
    發(fā)表于 05-17 07:02

    請(qǐng)問(wèn)tc3xx如何配置多個(gè)dedicatedRxBuffersNumber?

    tc3xx如何配置多個(gè)dedicatedRxBuffersNumber?
    發(fā)表于 04-21 07:53

    AUTOSAR MCAL-基于Infineon TC3xx芯片的ADC模塊

    ADC模塊的配置,和芯片特性強(qiáng)相關(guān)的地方還是有很多地方(AUTOSAR MCAL標(biāo)準(zhǔn)定義的配置項(xiàng)都是一樣的),本文將詳細(xì)介紹基于Infineon TC3xx芯片MCAL_ADC模塊特有的一些配置
    的頭像 發(fā)表于 01-29 16:45 ?1.1w次閱讀

    AURIX? TC3xx NVM是非易失性存儲(chǔ)器學(xué)習(xí)筆記

    TC3xx芯片最多有6個(gè)內(nèi)核,每個(gè)核有自己的私有的Memory以及共有的Memory。
    發(fā)表于 06-19 09:09 ?1w次閱讀
    AURIX? <b class='flag-5'>TC3xx</b> NVM是非易失性存儲(chǔ)器學(xué)習(xí)筆記

    TC3xx芯片DMU介紹

    AUTOSAR架構(gòu)圖下的Fls模塊對(duì)上(Fee)模塊提供統(tǒng)一的標(biāo)準(zhǔn)接口,但是具體的實(shí)現(xiàn)因不同的芯片而不一樣,Infineon公司的Fls模塊通過(guò)操作TC3xx芯片的DMU模塊實(shí)現(xiàn)Fls的功能
    的頭像 發(fā)表于 08-31 14:10 ?2864次閱讀
    <b class='flag-5'>TC3xx</b><b class='flag-5'>芯片</b>DMU介紹

    深入解析TC3xx芯片中的SMU模塊應(yīng)用

    TC3xx芯片是德國(guó)英飛凌半導(dǎo)體公司推出的汽車級(jí)處理器芯片系列,其中的SMU(System Management Unit)模塊是其重要組成部分之一。SMU模塊在TC3xx
    的頭像 發(fā)表于 03-01 18:08 ?2631次閱讀