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)))这样定义变量吗?