现在的位置: 首页 > 综合 > 正文

STM32下载程序到SRAM中

2013年10月20日 ⁄ 综合 ⁄ 共 919字 ⁄ 字号 评论关闭

STM32下载程序到SRAM

芯片:STMF103VCT6

编译工具: Keil 3.80a

目标板子:火牛开发板

虽然FLASH可以下载万次,但毕竟是FLASH,有寿命期限。而STM32有三种启动方式,可以在芯片上的SRAM中调试程序。具体步骤如下:

 

STMF103VCT6有内部48Kbytes 的SRAM。SRAM的起始地址为0x20000000 到 0x2000C000 。在Keil工程选项中设置如下图

注意 IROM1
IRAM1 后面的地址按图中的填写就行。这里把SRAM均分成两份,一份为虚拟FLASH,一份为SRAM。同时别忘了,前面的复选框打勾。

对于输出的list 和obj 文件放在哪里,相信很多人都会,在就不浪费大家的时间了。接着在debug中做如下设置如图。

根据实际情况选择仿真器,下面有两个复选框一定要选上,Load Application at Startup
Run to main()。另外下面还要添加一个文件RAM.ini,源码如下,保存为.ini文件:

  SP = _RDWORD(0x20000000);          // Setup Stack Pointer
  PC = _RDWORD(0x20000004);          // Setup Program Counter
  _WDWORD(0xE000ED08, 0x20000000);   // Setup Vector Table Offset Register

把这个文件添加到你工程的根目录下,以方便查找,添加过程如上图所示。

接着在Utilities中Setting选项中选择你的芯片,并更改RAM 和 FLASH 的地址。

 再者就是编写你的主程序,编译调试了。但是记住一点,一定不要点FLASH下的download。

 最后别忘了,改变启动方式。 

 到此为止,设置已经完成。

把程序的CODE
区定义到0x20000000 为起始,,大小为 0xa000,也就是40K
了,然后RAM 区则定义到0x2000a000为起始,大小为0x2000,即8K

STM32f103VCRAM起始地址为0x2000000048k (0xc000)flash的起始地址为0x08000000256k
(0x00040000)

 

抱歉!评论已关闭.