那曲檬骨新材料有限公司

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

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

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

i.MX RT的FlexRAM配置問題

jf_pJlTbmA9 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2023-10-24 15:46 ? 次閱讀

本文以i.MXRT1050為例來做說明,其它i.MX RT10xx系列在FlexRAM的使用上是一樣的,只是容量大小有差別。

一、文檔說明

i.MX RT1050一共有512KB內(nèi)部FlexRAM,默認(rèn)的情況是128KB ITCM,128KB DTCM,256KB的OCRAM。在實際的使用中,有些客戶需要重新分配各個存儲區(qū)的大小,來均衡自己應(yīng)用所需要的ITCM, DTCM以及OCRAM容量。

通過官方應(yīng)用筆記Using the i.MX RT FlexRAM,我們可以知道一些關(guān)于FlexRAM的知識以及配置的限制等。

重新配置FlexRAM的分區(qū)情況,主要可以通過FUSE或者IOMUXC_GPR_GPR17寄存器去配置,具體關(guān)系如下:

wKgZomUDy8uAPi-MAAEt8rBZ-JU755.png

如果修改fuse,那么以后就難以重新修改,因為fuse的位只能從0到1,不能從1到0,所以,在實際的調(diào)試過程中,可以通過修改內(nèi)部寄存器方式臨時修改FlexRAM的分區(qū)配置。

最近發(fā)現(xiàn)有部分網(wǎng)友在使用寄存器重新分區(qū)FlexRAM的過程中,出現(xiàn)了各種各樣的問題,比如不能debug,debug問題解決之后,又出現(xiàn)debug可以運行,但是下載進(jìn)去,重新復(fù)位代碼不能起來的問題。

本篇文章針對需要配置FlexRAM功能的網(wǎng)友,總結(jié)了在MCUXPresso IDE下具體的重新配置i.MX RT1050 FlexRAM ITCM、DTCM以及OCRAM大小的步驟, 其他i.MX RT芯片系列方法也是類似,只是具體的寄存器分區(qū)大小,按照實際的芯片寄存器去配置。

二、FlexRAM配置分析

i.MXRT1050 默認(rèn)的FlexRAM配置為:128KB ITCM、128KB DTCM和256KB的OCRAM。那么如果需要配置FlexRAM為:128KB ITCM、256KB DTCM和128KB的OCRAM,應(yīng)該怎么做呢?

從上面的表格,我們可以看出,可以將IOMUXC_GPR_GPR17配置為下表的黃色行數(shù)據(jù):

wKgaomUDy82AafRLAAEuNKeQwqg165.png

IOMUXC_GPR_GPR17寄存器中每2位表示一個Bank,定義如下:

00b—bank is not used.

01b—bank is configured for OCRAM.

10b—bank is configured for DTCM.

11b—bank is configured for ITCM.

i.MX RT1050共有512KB FlexRAM, 做16等分,則每個bank 為512KB/16=32KB。

所以需要128KB ITCM, 256KB DTCM, 128KB的OCRAM時,分配如下:

ITCM:4個bank,共4個11b

DTCM: 8個bank, 共8個10b

OCRAM: 4個bank, 共4個01b

FlexRAM分區(qū)地址關(guān)系如下:

wKgaomUDy86AS0CJAABrk8iVT-k081.png 相關(guān)的寄存器配置如下: IOMUXC_GPR->GPR17 = 0x5AAFFAA5; IOMUXC_GPR->GPR16 |= 0x7; IOMUXC_GPR->GPR14 = (9<<20) | (8<<16);

三、MCUXPresso IDE的配置步驟

下面在MIMXRT1050-EVKB開發(fā)板上以SDK 的led_blinky MCUXpresso工程為例,給出具體操作步驟。

首先下載最新的SDK并且在MCUXpresso IDE中導(dǎo)入led_blinky工程。

修改MCU Settings的memory配置

wKgZomUDy8-AEjzKAAFY1VXzlgU166.png

將DTCM, ITCM, OCRAM改為實際需要的大小后,點擊apply。

在startup文件里的Reset代碼部分添加FlexRAM的代碼:

FLEXRAM->TCM_CTRL = 4;

IOMUXC_GPR->GPR17 = 0x5AAFFAA5;

IOMUXC_GPR->GPR16 |= 0x7;

IOMUXC_GPR->GPR14 = (9<<20) | (8<<16) ;

準(zhǔn)備IDE的調(diào)試腳本.scp文件

RT1050_connect_128Kocram_128Kitcm_256Kdtcm.scp 內(nèi)容為:

100REM===============================
110REMRT1050_connect.scp
120REM
130REMCopyright2019NXP
140REMAllrightsreserved.
150REM===============================
160print"RT1050ConnectScript"
170REMprobelist
180p%=probefirstfound
190remprobeopenbyindexp%
200wireswdconnectp%
210selectprobecorep%0
220cminitapdpthis
230cmhaltthis
235goto320
240remtrapinbootrom
250cmwatchsetthis00x400F8004RW
260cmresetvectorcatchclearthis
270print"Resettingandtrapping"
280cmsysresetreqthis
290print"Backfromreset"
300cmresetvectorcatchsetthis
310cmwatchclearthis0
320print"DisablingMPU"
330s%=Peek32this0xE000ED94
340s%=s% 0xFFFFFFFE
350Poke32this0xE000ED94s%
360REM======ConfigureFlexRAM======
370print"ConfigureFlexRAMfor128KBOCRAM,128KBI-TCM,256KBD-TCM"
380REMTCMCTRLPoke0x400B0000-toforceRAMclockingandsetwaitstates=b100
390Poke32this0x400B00000x4
400REMIOMUXC_GPR170x400AC044-thissetsbitfieldallocationofFlexRAM32KBbankstoOC256KBb01,I128KBb11,D128KBb10
410Poke32this0x400AC0440x5AAFFAA5
420REMIOMUXC_GPR160x400AC040-thissetsenablesforIandDTCMandthesourceoftheTCMconfig=0x200007
430Poke32this0x400AC0400x200007
440print"Finished"
450REM===============================
460end

將這個超長文件名的文件,RT1050_connect_128Kocram_128Kitcm_256Kdtcm.scp拷貝到IDE安裝目錄下:

C:nxpMCUXpressoIDE_11.1.0_3209idebinariesScripts

拷貝完之后,在debug configuration界面的script connect 中添加這個腳本文件:

wKgZomUDy9GAG8bHAALqKFOMhg8935.png

修改stack的起始位置

將STACK的位置由end改為start,這樣可以解決燒錄之后,重新上電不運行的問題。

wKgaomUDy9OAWPRMAAF72f3nZN8735.png

下面就可以編譯代碼,并且運行,測試結(jié)果如下:

wKgZomUDy9WAUg51AATmqGEqn4M728.png

可以發(fā)現(xiàn),寄存器的FlexRAM情況確實是需要的配置情況,燒錄之后,退出debug重新上電,可以發(fā)現(xiàn)led還是可以閃爍,說明功能已經(jīng)正常工作。

本文最初發(fā)表在“恩智浦中文社區(qū)”,可以在原帖那里下載到代碼。

來源:恩智浦MCU加油站

免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理


審核編輯 黃宇

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

    關(guān)注

    31

    文章

    5363

    瀏覽量

    121148
  • i.MX
    +關(guān)注

    關(guān)注

    1

    文章

    49

    瀏覽量

    35692
收藏 人收藏

    評論

    相關(guān)推薦

    i.Mx RT平臺內(nèi)存建議

    哪些超總線存儲器被推薦用于NXP的I.MX RT平臺。CyPress的超閃存/HyrRAM MCP設(shè)備與NXP的I.MX RT系列兼容嗎?應(yīng)用筆記和用戶體驗將不勝感激。 以上來自于百
    發(fā)表于 09-05 14:33

    i.MX RT1020到i.MX RT1010的遷移手冊

    i.MX RT1020到i.MX RT1010的遷移指南
    發(fā)表于 12-12 06:25

    使用i.MX RTFlexRAM的教程

    使用i.MX RTFlexRAM
    發(fā)表于 12-12 07:36

    i.MX RT1060到i.MX RT1064的遷移手冊

    i.MX RT1060到i.MX RT1064的遷移指南
    發(fā)表于 12-12 07:21

    01:i.MX RT系列產(chǎn)品的介紹與演示

    i.MX RT產(chǎn)品是今年市場上最受歡迎的跨界MCU產(chǎn)品。本講座將對i.MX RT系列做一個簡要的介紹,包括主要特性和主要外設(shè)。然后會分享能夠加快用戶設(shè)計進(jìn)度的各種攻略。作為無閃存的MC
    的頭像 發(fā)表于 01-23 07:21 ?3045次閱讀
    01:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>系列產(chǎn)品的介紹與演示

    01:i.MX RT的市場應(yīng)用和參考解決方案

    i.MX RT產(chǎn)品是今年市場上最受歡迎的跨界MCU產(chǎn)品。i.MX RT定位為一款MCU產(chǎn)品,它可以重復(fù)利用傳統(tǒng)的Arm MCU生態(tài)系統(tǒng)。除此之外,本次講座還將簡要介紹
    的頭像 發(fā)表于 01-21 07:13 ?3424次閱讀
    01:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>的市場應(yīng)用和參考解決方案

    02:i.MX RT系列產(chǎn)品的介紹與演示

    i.MX RT產(chǎn)品是今年市場上最受歡迎的跨界MCU產(chǎn)品。本講座將對i.MX RT系列做一個簡要的介紹,包括主要特性和主要外設(shè)。然后會分享能夠加快用戶設(shè)計進(jìn)度的各種攻略。作為無閃存的MC
    的頭像 發(fā)表于 01-21 07:04 ?2336次閱讀
    02:<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>系列產(chǎn)品的介紹與演示

    恩智浦i.MX RT1170開創(chuàng)GHz MCU時代

    自2017年上市以來,i.MX RT系列取得了優(yōu)秀的市場表現(xiàn)。i.MX RT1170跨界MCU是恩智浦i.MX
    的頭像 發(fā)表于 03-22 11:14 ?3532次閱讀

    恩智浦i.MX RT1170在將該系列帶上了更高的層面

    自2017年上市以來,i.MX RT系列取得了優(yōu)秀的市場表現(xiàn)。i.MX RT1170跨界MCU是恩智浦i.MX
    的頭像 發(fā)表于 05-18 11:15 ?3846次閱讀

    i.MX RT開發(fā)筆記-08 | i.MX RT1062嵌套中斷向量控制器NVIC(按鍵中斷檢測)

    系列文章目錄i.MX RT開發(fā)筆記-01 | 初識 i.MX RT1062 跨界MCUi.MX RT
    發(fā)表于 12-01 13:51 ?2次下載
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>開發(fā)筆記-08 | <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1062嵌套中斷向量控制器NVIC(按鍵中斷檢測)

    RT-Thread & NXP 發(fā)布 i.MX RT 系列 BSP 新框架

    前言i.MX RT 是 NXP 推出的跨界處理器系列。該系列下又包括 i.MX RT1020、i.MX
    發(fā)表于 12-07 13:06 ?2次下載
    <b class='flag-5'>RT</b>-Thread & NXP 發(fā)布 <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b> 系列 BSP 新框架

    i.MX RT超低功耗模式捉蟲記

    SNVS模式是i.MX RT10XX和i.MX RT11XX系列MCU中功耗最低的狀態(tài),其標(biāo)志性特點是除SNVS電源域保持供電,其余的電源域均處于斷電狀態(tài)。
    發(fā)表于 02-08 15:14 ?0次下載
    <b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>超低功耗模式捉蟲記

    適用于i.MX RT500和i.MX RT600 MCU的Xtensa音頻框架介紹

    在眾多的恩智浦i.MX RT跨界處理器當(dāng)中,您可能會發(fā)現(xiàn)有些系列除了Arm內(nèi)核之外還結(jié)合了高性能的DSP,利用集成DSP的技術(shù)優(yōu)勢,可提供高性能音頻數(shù)字信號處理能力,并包含特定算法操作,可實現(xiàn)完全
    的頭像 發(fā)表于 11-10 09:39 ?2793次閱讀

    RT-Thread文檔_野火 I.MX RT1052上手指南

    RT-Thread文檔_野火 I.MX RT1052 上手指南
    發(fā)表于 02-22 18:25 ?2次下載
    <b class='flag-5'>RT</b>-Thread文檔_野火 <b class='flag-5'>I.MX</b> <b class='flag-5'>RT</b>1052上手指南

    理解i.MX RT中FlexSPI外設(shè)lookupTable里配置訪問行列混合尋址Memory的參數(shù)值

    理解i.MX RT中FlexSPI外設(shè)lookupTable里配置訪問行列混合尋址Memory的參數(shù)值
    的頭像 發(fā)表于 10-30 17:23 ?544次閱讀
    理解<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>中FlexSPI外設(shè)lookupTable里<b class='flag-5'>配置</b>訪問行列混合尋址Memory的參數(shù)值
    百家乐博彩破解论坛| 乐百家百家乐游戏| 六合彩票| 百家乐园搏彩论坛| 体育| 十六浦百家乐的玩法技巧和规则| 百家乐官网suncity| 新宝娱乐| 金城百家乐买卖路| 红宝石百家乐官网娱乐城| 博彩公司| 网上百家乐是真是假天涯论坛| 沙龙百家乐官网娱乐平台| bet365体育开户| 世嘉百家乐官网的玩法技巧和规则 | 路单百家乐的玩法技巧和规则| 百家乐官网六手变化混合赢家打法| 上海博彩生物科技有限公司| 真人百家乐平台下载| 百家乐官网高科技| 新澳门娱乐城官网| 百家乐机械图片| 百家乐官网微笑玩| 网上百家乐官网哪里好| 大发888收获| 真人百家乐平台下载| 百家乐官网喜牛| 同乐城| 金都百家乐的玩法技巧和规则| 免费百家乐规则| 澳门百家乐官网有没有假| 尊龙备用网址| 全讯网图库| 百家乐开户送10彩金| 木棉百家乐官网的玩法技巧和规则| 赌百家乐官网的方法| 大发888bet娱乐场下载| 赌百家乐赢的奥妙| 钱隆百家乐官网智能| 宾利百家乐官网现金网| 娱乐城送注册金|