使用stm32f072 nucleo板子,程序下载到RAM中,并调试
上次发帖是将生产的bin文件放置到板子的U盘(NUCLEO)中,能够形象的观察现象,且下载方便。不过发现调试不方便。在调试USART中断收发的过程中发现直接将程序下载到rom中,会影响寿命。于是就有了将程序下载到ram中的想法。使用的芯片是:stm32f072rbt6
具有128KB FLASH,16KB SRAM
想将程序下载到这16KB的SRAM中。16KB = 0x4000;
我把这0x4000中的0x0--0x1FFF存放程序
0x2000--0x3FFF用作RAM
这样调试的时候就可以无限次使用而不用担心寿命问题了。
还有一个文件是必须的ram.ini
FUNC void Setup (void) {
SP = _RDWORD(0x20000000); // Setup Stack Pointer
PC = _RDWORD(0x20000004); // Setup Program Counter
_WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table Offset Register
}
LOAD RAM\STM32F072RB-Nucleo.axf INCREMENTAL // Download
Setup(); // Setup for Running
g, main
解释:RAM\STM32F072RB-Nucleo.axf是将output生成的放置到了ram文件夹下,STM32F072RB-Nucleo是生成的文件名。
谢谢分享 巅峰残狼 发表于 2015-1-6 17:23
谢谢分享
共同学习!:) 话说楼主的STLINK 正常么。。。为什么我的不正常啊。
adersonl 发表于 2015-1-6 17:32
话说楼主的STLINK 正常么。。。为什么我的不正常啊。
在我的板子上是正常的,你试试,有问题咱们交流。
adersonl 发表于 2015-1-6 17:32
话说楼主的STLINK 正常么。。。为什么我的不正常啊。
对不起,需要更正一下,CORTEX-M0的The vector table is fixed at address 0x00000000。所以不能像CORTEX-M3那样将异常向量表偏移。
FUNC void Setup (void) {
SP = _RDWORD(0x20000000); // Setup Stack Pointer
PC = _RDWORD(0x20000004); // Setup Program Counter
_WDWORD(0x40010000, _RDWORD(0x40010000) | 0x3); // Set MEM_MODE to SRAM
}
LOAD ram\rs232.axf INCREMENTAL // Download
Setup(); // Setup for Running
g, main 感谢楼主分享 谢谢分享,学习了 好,看看。 谢谢分享 支持啊1111111111111111111111 你好,这个sram烧录算法没有?
No Algorithm found for: 02000000H - 02000A37H
Programming skipped!
Error: Flash Download failed-"Cortex-M0"
页:
[1]