W800默認所有函數都是xip運行,xip相比於ram運行速率更低,如果算法對算力有要求,可以指定一些函數在ram運行,實現方法如下:
- 給函數設置attribute
__attribute__((section(".sram.text")))
int TestSram(void)
{
return 0;
}
- 修改gcc_csky.ld,在.data中添加如下一行
*(.sram.text)
W800還支持某些文件或者某些庫的代碼段都在ram運行,實現方法如下:
- 修改gcc_csky.ld,在.text把下面三行
*(.text)
*(.text*)
*(.text.*)
替換為
*(EXCLUDE_FILE (*libuser.a *wm_diy_demo.o).text*)
- 修改gcc_csky.ld,在.data中添加如下一行
*(.text*)
W800支持一些只讀全局變量加載到ram,實現方法如下
- 給全局變量設置attribute
__attribute__((section(".sram.data")))
char sram_buf[16] = "hello";
- 修改gcc_csky.ld,在.data中添加如下一行
*(.sram.data)
以上內容來源於大神@Alex




問 外擴8M的PSRAM,請問能用__attribute__((at(0x30000000)))這樣定義變量嗎?