如何将部分代码和数据加载到sram中运行
2022/8/11 23:25:39
本文主要是介绍如何将部分代码和数据加载到sram中运行,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在嵌入式应用场景中,有些代码和数据是运行在ddr中,甚至有些代码是在flash中,有的时候需要提升性能,需要将频率比较高的代码和数据放到片内sram中运行。
如下说明实现实现方式
首先在连接脚本中定义相应的段:
.rtm_code : {
*(.rtm_code.*);
. = ALIGN(0x4);
} > OCM_CODE
.rtm_data : {
_start_rtm_data = .;
*(.rtm_data.*);
. = ALIGN(0x4);
} > OCM_DATA
__RTM_START = ADDR(.rtm_code );
__RTM_SIZE = SIZEOF(.rtm_code );
然后在程序中将代码和数据定向到制定的段中
uint32_t __attribute__((aligned(0x04))) mem_sram[1024] __attribute__((__section__(".rtm_data.*")));
uint32_t __attribute__((aligned(0x04))) mem_sram2[1024] __attribute__((__section__(".rtm_data.*")));
__attribute__((__section__(".rtm_code.*"))) int mem_sram_test_func(int i)
{
int j = 0;
for(j = 0; j < i; j++) {
bios_log("sram code test, sram[%d]=%d\r\n",j, mem_sram[j]);
}
while(1);
}
最后程序的加载可以在启动代码中添加分段加载代码。
在汇编代码中可以引用__RTM_START 和__RTM_SIZE 这两个符号实现代码的加载。
这篇关于如何将部分代码和数据加载到sram中运行的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-03-28FMZ股票实盘、模拟盘程序化交易实战--股票版DualThrust策略
- 2024-03-28【转】硬盘的寻址和工作模式
- 2024-03-28磁盘里的B,MB,GB,TB储存单位是怎么换算大小的?
- 2024-03-28关于磁盘格式化容量,非格式化容量,数据传输率计算
- 2024-03-28文件分配表
- 2024-03-28磁盘存储结构与文件恢复实验(FAT文件系统)
- 2024-03-28文件分配表(FAT)及其结构
- 2024-03-28只有1个字节的文件实际占用多少磁盘空间
- 2024-03-28啥是磁盘IO
- 2024-03-28磁盘磁盘MBR与GPT的区别