#申请原创#
APM32F035拥有8KB的用户SRAM可使用,因此当需要代码全部在SRAM中运行时,编译出来的代码大小+需要的SRAM运行内存不能超过8KB
当需要代码全部运行在SRAM中,KEIL仅需要更改ROM的地址为SRAM区域即可;
如下图所示,程序编译后的代码大小为:2032+792=2824Bytes,即需要0xB04字节的SRAM空间;
运行内存为2052Bytes,即需要0x804个字节的SRAM空间;
需要的总SRAM空间小于8KB,能完全装入SRAM中运行,因此修改代码的ROM空间起始地址为0x20000000,大小为0xC00,SRAM的前段空间为程序空间,剩余部分为读写内存区域。
由于ROM空间指定为SRAM区域,因此程序不能下载到片内FLASH,需要修改KEIL配置,其中有个关键的脚本文件SRAM.ini
SRAM.ini的内存如下:
需要设置中断向量表位于SRAM起始地址,RESET复位向量的地址,然后跳转到main函数执行即可
在SRAM中运行程序,不能使用LOAD下载程序,而是点击debug按钮,直接由KEIL将程序导入到MCU的SRAM中运行
注意:此种方式运行程序,点击复位程序按钮,将不会产生复位程序效果,需退出debug重新进入才能复位程序重新开始运行
|