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