哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

重新分配FlexRAM的方法

li1756686189 ? 來源:嵌入式 MCU ? 2022-12-28 13:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

應用筆記AN12077 解釋了如何通過應用程序啟動代碼中的軟件重新分配FlexRAM。下面將進一步詳細說明進行這些修改的方法。

RT Internal SRAM FlexRAM
RT1010 Up to128KB Up to128KB
RT1015 Up to128KB Up to128KB
RT1020 Up to256KB Up to256KB
RT1050 Up to 512 KB Up to 512 KB
RT1060 Up to 1MB Up to 512 KB
RT1064 Up to 1MB Up to 512 KB

對于RT106x系列,1MB的內(nèi)部SRAM中只有512 KB可以通過FlexRAM重新分配為DTCM、ITCM和OCRAM。剩余的512 KB來自OCRAM,無法重新分配。對于所有其他RT10xx,可以將整個內(nèi)部SRAM重新分配為DTCM、ITCM和OCRAM。應用筆記AN12077 第3.1.3.1節(jié)解釋了重新分配FlexRAM時的大小限制。值得一提的是,所有RT10xx部件中的ROM引導加載程序都使用OCRAM,因此在重新分配FlexRAM時,應該保留一些OCRAM,這不適用于RT106x,因為將始終擁有512 KB的OCRAM,無法重新分配。

MCUXpresso IDE中的實現(xiàn)

首先,需要將SDK示例導入MCUXpresso IDE工作區(qū)。為RT1050-EVKB導入了igpio_led_output示例。如果編譯此項目,將看到RT1050-EVKB上FlexRAM的默認配置如下:

SRAM_DTC:128 KB,SRAM_ITC:128 KB,SRAM_OC:256 KB

現(xiàn)在需要轉(zhuǎn)到文件startup_mimxrt1052.c中的復位處理程序。重新分配FlexRAM必須在配置FlexRAM之前完成,這就是為什么要在復位處理程序中完成的原因。需要修改以重新分配FlexRAM的寄存器是IOMUX _GPR_GPR16和IOMUX _GPR _GPR17。

Register Address
IOMUXC_GPR_GPR16 0x400AC040
IOMUXC_GPR_GPR17 0x400AC044

需要確定如何重新分配FlexRAM,以查看需要加載到寄存器IOMUXC_GPR_GPR17中的值。如果希望具有以下配置:

SRAM_DTC 256 KB
SRAM_ITC 128 KB
SRAM_OC 128KB

以下對IOMUXC_GPR_GPR17寄存器的解釋:

01c91946-8674-11ed-bfe3-dac502259ad0.png

需要加載到寄存器的值是0xAAAAFF55。其中,前4個存儲塊對應于128KB的SRAM_OC,接下來的4個存儲塊對應于128 KB的SRAM_ITC,最后8個存儲塊是256KB的SRAM-DTC。現(xiàn)在就可以開始在ResetISR處理程序中編寫代碼了。首先要做的是將新值加載到寄存器IOMUXC_GPR_GPR17中。之后,需要配置寄存器IOMUXC_GPR_GPR16,以指定FlexRAM存儲體配置應取自寄存器IOMUX _GPR_GPR 17,而不是熔絲Fuse。然后,如果在FlexRAM的新配置中,SRAM_DTC或SRAM_ITC的大小為0,則需要禁用寄存器IOMUXC_GPR_GPR16中的這些存儲器。代碼如下所示:

void ResetISR(void) {

 // Disable interrupts
 __asm volatile ("cpsid i");

 /* Reallocating the FlexRAM */
 __asm (".syntax unified
"

 "LDR R0, =0x400ac044
"http://Address of register IOMUXC_GPR_GPR17
 "LDR R1, =0xaaaaff55
"http://FlexRAM configuration DTC = 265KB, ITC = 128KB, OC = 128KB
 "STR R1,[R0]
"

 "LDR R0,=0x400ac040
"http://Address of register IOMUXC_GPR_GPR16
 "LDR R1,[R0]
"
 "ORR R1,R1,#4
"http://The 4 corresponds to setting the FLEXRAM_BANK_CFG_SEL bit in register IOMUXC_GPR_GPR16
 "STR R1,[R0]
"

#ifdef FLEXRAM_ITCM_ZERO_SIZE
 "LDR R0,=0x400ac040
"http://Address of register IOMUXC_GPR_GPR16
 "LDR R1,[R0]
"
 "AND R1,R1,#0xfffffffe
"http://Disabling SRAM_ITC in register IOMUXC_GPR_GPR16
 "STR R1,[R0]
"
#endif

#ifdef FLEXRAM_DTCM_ZERO_SIZE
 "LDR R0,=0x400ac040
"http://Address of register IOMUXC_GPR_GPR16
 "LDR R1,[R0]
"
 "AND R1,R1,#0xfffffffd
"http://Disabling SRAM_DTC in register IOMUXC_GPR_GPR16
 "STR R1,[R0]
"
#endif

 ".syntax divided
");

#if defined (__USE_CMSIS)
// If __USE_CMSIS defined, then call CMSIS SystemInit code
 SystemInit();

01e240ba-8674-11ed-bfe3-dac502259ad0.png

如果編譯項目,將看到控制臺上顯示的內(nèi)存分布仍然是默認配置。這是因為修改了Reset處理程序以重新分配FlexRAM,但沒有修改鏈接器文件以匹配這些新大小。為此,需要轉(zhuǎn)到項目的屬性。進入屬性后,需要轉(zhuǎn)到C/C++構建->MCU設置。一旦進入MCU設置,需要修改SRAM內(nèi)存的大小以匹配新配置。

02039fbc-8674-11ed-bfe3-dac502259ad0.png

在進行這些更改后,如果編譯項目,將看到控制臺中顯示的內(nèi)存分布與現(xiàn)在新大小相匹配。

022491ea-8674-11ed-bfe3-dac502259ad0.png

需要修改內(nèi)存保護單元(MPU)以匹配這些新的內(nèi)存大小。為此,需要轉(zhuǎn)到文件板中的函數(shù)BOARD_ConfigMPU.c。在該函數(shù)中,需要找到分別對應于SRAM_ITC、SRAM_DTC和SRAM_OC的區(qū)域5、6和7。與寄存器IOMUXC_GPR_GPR14相同,如果內(nèi)存的新大小不是32、64、128、256或512,則需要選擇下一個更大的數(shù)字。配置應如下所示:

/* Region 5 setting: Memory with Normal type, not shareable, outer/inner write back */
 MPU->RBAR = ARM_MPU_RBAR(5, 0x00000000U);
 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);

 /* Region 6 setting: Memory with Normal type, not shareable, outer/inner write back */
 MPU->RBAR = ARM_MPU_RBAR(6, 0x20000000U);
 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_256KB);

 /* Region 7 setting: Memory with Normal type, not shareable, outer/inner write back */
 MPU->RBAR = ARM_MPU_RBAR(7, 0x20200000U);
 MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_128KB);

02484bb2-8674-11ed-bfe3-dac502259ad0.png

最后,需要將堆棧放在DTCM內(nèi)存的開頭。為此,需要轉(zhuǎn)到項目的屬性。從那里,必須用C/C++構建和管理Linker腳本。

02720830-8674-11ed-bfe3-dac502259ad0.png

然后,需要在ResetISR函數(shù)中再添加兩條匯編指令。我們必須在匯編代碼的開頭添加以下兩條指令:

02c1f408-8674-11ed-bfe3-dac502259ad0.png

這些就是在啟動期間重新分配FlexRAM所需的所有更改。

調(diào)試會話: 為了驗證剛才所做的所有修改是否正確,將啟動調(diào)試會話。一旦到達main,在運行應用程序之前,將轉(zhuǎn)到外設視圖查看寄存器IOMUX _GPR_GPR16和IOMUX _GPR _GPR17,并驗證值是否正確。如下圖所示,在寄存器IOMUXC_GPR_GPR16中,將FLEXRAM_BANK_CFG_SEL配置為1,以使用寄存器IOMUX _GPR_GPRS17配置FLEXRAM。

02dd2142-8674-11ed-bfe3-dac502259ad0.png

最后,在寄存器IOMUXC_GPR_GPR17中,我們可以看到對應于新配置的值0xAAAAFF55。

02fe3d8c-8674-11ed-bfe3-dac502259ad0.png

通過熔絲重新分配FlexRAM

上述操作是如何通過在復位處理程序中編寫一些代碼來通過軟件重新分配FlexRAM。此過程工作正常,使用此方法測試可以配置不同大小RAM,但一旦找到應用程序的正確配置,建議通過熔絲配置這些新大小,而不是使用寄存器IOMUX _GPR_GPR17。在代碼中重新配置FlexRAM有很多危險區(qū)域。這幾乎都歸結為這樣一個事實:寫入RAM的任何代碼/數(shù)據(jù)/堆棧信息都可能在重新分配期間改變位置。這就是為什么一旦找到正確的配置,就應該通過熔絲進行應用。如果使用Fuse來配置FlexRAM,那么就不必擔心代碼和數(shù)據(jù)的移動,因為Fuse 設置被應用為硬件默認設置。記住,一旦燒了熔絲,就沒有退路了!這就是為什么首先通過軟件方法嘗試配置很重要。燒完熔絲后,無需修改復位處理程序,只需修改MPU以更改我們之前看到的區(qū)域大小和項目的MCU設置,以匹配通過熔絲配置的新內(nèi)存大小。

負責FlexRAM配置的熔絲為Default_FlexRAM_Part,此熔絲的地址為0x6D0[15:13]??梢栽趨⒖际謨缘腇usemap一章中找到有關此保險絲和不同配置的更多信息。要燒熔絲,建議使用blhost或MCUBootUtility。兩個工具的下載鏈接如下:

https://www.nxp.com/webapp/sps/download/license.jsp?colCode=blhost_2.6.2&appType=file1&location=null&DOWNLOAD_ID=null

https://github.com/JayHeng/NXP-MCUBootUtility

ResetISR.c參考代碼:

0315dfaa-8674-11ed-bfe3-dac502259ad0.png

審核編輯:湯梓紅

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

    關注

    31

    文章

    5617

    瀏覽量

    130369
  • sram
    +關注

    關注

    6

    文章

    829

    瀏覽量

    117699
  • mcuxpresso
    +關注

    關注

    1

    文章

    46

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    在PSoC? 41xx 系列的代碼執(zhí)行期間是否可以將運算放大器重新分配給另一個引腳?

    您能否確認在PSoC? 41xx 系列的代碼執(zhí)行期間是否可以將運算放大器重新分配給另一個引腳? 目標是讓一個設備配備 2 個運算放大器來測量和放大 2 個以上的信號,那么是否可以動態(tài)地將運算放大器重新路由到不同的引腳?或者是否需要使用具有更多運算放大器的設備來完成此任務?
    發(fā)表于 08-15 07:05

    xilinx,ddrmig文件中管腳分配

    使用xilinx spartan6,在工程中使用原語生成DDR控制器mig文件,DDR數(shù)據(jù)管腳定義發(fā)生改變,需要重新分配管腳,求告知,這個管腳分配要怎么弄
    發(fā)表于 07-19 09:54

    6678工程如何分配存儲器地址范圍

    各位好! ??????? 之前使用ccs3.3創(chuàng)建2812的工程時,一般直接在TCF文件中手動的去重新分配存儲器的地址范圍,然后生成的cmd文件中也可以看到具體分配的結果。 ??????? 目前
    發(fā)表于 06-25 06:54

    無法修改許可證以允許重新分配產(chǎn)品

    嗨,我正在嘗試為獨立計算機重新分配vivado許可證文件。當我進入許可網(wǎng)站時,修改按鈕顯示為灰色。我已經(jīng)使用激活后來的html鏈接導航到網(wǎng)站,并通過標準的Web訪問進入。請告訴我如何從舊的獨立機器
    發(fā)表于 12-13 10:49

    Linux的磁盤空間重新分配方法

    在使用CentOS6.3版本linux系統(tǒng)的時候,發(fā)現(xiàn)根目錄(/)的空間不是很充足,而其他目錄空間有很大的空閑,所以本文主要是針對現(xiàn)在已有的空間進行調(diào)整。首先,先來查看一下系統(tǒng)的空間分配情況:
    發(fā)表于 07-22 08:44

    如何在實時邊緣yocto項目中為監(jiān)獄牢房重新分配資源?

    我想在實時邊緣 yocto 項目中為監(jiān)獄牢房重新分配資源(can1)。我使用修改后的文件 fsl-ok1028a-rdb-jailhouse.dtb、inmate-ls1028a-rdb.dtb
    發(fā)表于 03-28 08:26

    S32K314在CS自動控制的情況下,可以在運行程序時重新分配CS引腳嗎?

    我正在使用 S32K314,在我的項目中我正在使用 QuadSPI。在我的 spi 閃存中,有兩個芯片選擇用于兩個不同的內(nèi)存組。我猜在示例項目中,CS 引腳由驅(qū)動程序代碼控制。但我想將兩個引腳分配為 CS 并手動控制。我該怎么做? 在 CS 自動控制的情況下,我可以在運行程序時
    發(fā)表于 04-26 07:36

    如何為MIMXRT1062重新分配FlexRAM?

    我正在研究 MIMXRT1062。 SRAM_DTC 溢出“SRAM_DTC”。我嘗試將 SRAM_DTC 加倍到 256KB 并相應地減少 SRAM_OC(如下)。之后,調(diào)試器停止工作。 我已經(jīng)嘗試過這種方式 - 鏈接 1. 如何為 MIMXRT1062 重新分配 Flex
    發(fā)表于 05-29 06:17

    stm32f4的堆棧怎么分配?

    使用一些大型的庫文件,要重新分配堆或者棧,那要怎么分配大小,總不可能一點點改變吧
    發(fā)表于 09-21 06:39

    電荷重新分配DAC,電荷重新分配DAC原理是什么?

    電荷重新分配DAC,電荷重新分配DAC原理是什么? DAC的發(fā)展經(jīng)歷了從電子管、晶體管到集成電路的發(fā)展過程,早期的DAC采用電子管組裝而成。進入五
    發(fā)表于 03-24 13:38 ?1.2w次閱讀

    沃達豐及其競爭對手正在向政府施壓要求重新分配無線頻譜

    WISPA NZ主席邁克·史密斯(Mike Smith)在一份聲明中表示,“沃達豐及其競爭對手正在向政府施加巨大壓力,要求他們重新分配無線頻譜,以便他們能夠更經(jīng)濟地運營5G”,但指出一些頻譜已經(jīng)被大約30家地區(qū)性無線互聯(lián)網(wǎng)服務提供商使用,他們共同為數(shù)以萬計的農(nóng)村客戶提供服務。
    發(fā)表于 08-06 10:55 ?1056次閱讀

    澳大利亞政府計劃在2021年初對26GHz頻段的頻譜進行重新分配

    在澳大利亞通信和媒體管理局(ACMA)根據(jù)行業(yè)反饋制定了頻譜計劃后,通信、網(wǎng)絡安全和藝術部長保羅·弗萊徹(Paul Fletcher)發(fā)布了一份針對26GHz頻段頻譜的重新分配聲明。
    發(fā)表于 10-27 09:29 ?993次閱讀

    FCC將重新分配大部分5.9GHz頻段,為了非授權頻譜技術和C-V2X

    據(jù)外媒報道,當?shù)貢r間12月12日,美國聯(lián)邦通信委員會(FCC)一致投票通過了一項提案,該提案將重新分配5.9GHz頻段的大部分頻譜,并將這些頻譜專用于非授權頻譜技術和C-V2X技術。
    的頭像 發(fā)表于 12-13 15:48 ?4062次閱讀

    i.MX RT的FlexRAM配置問題

    i.MX RT的FlexRAM配置問題
    的頭像 發(fā)表于 10-24 15:46 ?1761次閱讀
    i.MX RT的<b class='flag-5'>FlexRAM</b>配置問題

    重新分配pod節(jié)點

    1、軟件包下載 去github上下載較新的Kubernetes軟件包https://github.com/ ? ? ? ? ? 2、升級說明 升級包括master節(jié)點升級和node節(jié)點的升級,本章升級至v1.15.12; Master節(jié)點的服務包括:apiserver、controller-manager、kube-scheduler; Node節(jié)點的服務包括:kubelet和kube-proxy; 由于apiserver被nginx代理,所以在升級的時候需要操作操作nginx注釋升級節(jié)點,避免帶來無法訪問的情況; 我們的master節(jié)點和node都是在同一個集群服務器上,所以一起進行操作; 3、確定節(jié)點升級順序 查看節(jié)
    的頭像 發(fā)表于 01-02 09:17 ?1329次閱讀
    <b class='flag-5'>重新分配</b>pod節(jié)點
    崇州市| 伊金霍洛旗| 张家界市| 乌拉特后旗| 济源市| 奇台县| 游戏| 中卫市| 康定县| 武穴市| 郯城县| 绥化市| 陵川县| 个旧市| 阳朔县| 闵行区| 图木舒克市| 建水县| 安丘市| 哈巴河县| 景泰县| 吴川市| 黄浦区| 民乐县| 峡江县| 巍山| 赤壁市| 柏乡县| 蒙山县| 新巴尔虎右旗| 平定县| 新丰县| 车致| 吉安市| 札达县| 桐乡市| 丹寨县| 玉田县| 陆丰市| 清涧县| 兴城市|