如下圖所示,GD32F4系列內部SRAM分為通用SRAM空間和TCMSRAM空間,其中通用SRAM為從0x20000000開始的空間,TCMSRAM為從0x10000000開始的64KB空間。大家一般使用的均為通用SRAM空間,這部分SRAM使用的時候沒有限制,作為堆棧、變量、DMA使用等都可以,但TCMSRAM一般不使用,有的時候可能會被大家遺忘,如果大家碰到SRAM資源不足的時候,可以看看是否有TCMSRAM沒有用到,如果沒有用到,可以參考下本視頻將TCMSRAM使用起來,你將會多出64KB的SRAM空間。
而TCMSRAM如何使用呢?TCMSRAM為緊耦合SRAM,該SRAM僅可被M4內核訪問,因而該TCMSRAM空間不能被外設比如DMA訪問,TCMSRAM與處理器內核直連,具有更快的訪問速度和更低的訪問延遲,可以用于加速關鍵任務的執(zhí)行,提高系統的實時性能和響應速度。
使用TCMSRAM可以使用分散加載的方式,將需要放置到TCMSRAM中的變量手動加載到TCMSRAM中,具體有以下兩種方法:
直接通過 __attribute__加載到TCMSRAM中,如下所示。
uint32_t TX_Data[5] __attribute__((at(0x10000000)))={0};
通過修改SCT文件,并將變量分散加載到對應的段中,如下所示。
代碼中的操作如下: uint32_t TX_Data[5] __attribute__((section(".bss.RAM_Array")))={0}; SCT文件中的配置如下: LR_IROM1 0x08000000 0x00300000 { ; load region size_region ER_IROM1 0x08000000 0x00300000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) .ANY (+XO) } RW_IRAM1 0x20000000 0x00020000 { ; RW data .ANY (+RW +ZI) } RW_IRAM2 0x10000000 0x00010000 { main.o(.bss.RAM_Array) } }
。
-
單片機
+關注
關注
6030文章
44489瀏覽量
631989 -
sram
+關注
關注
6文章
762瀏覽量
114592 -
GD32
+關注
關注
7文章
403瀏覽量
24111
發(fā)布評論請先 登錄
相關推薦
評論