在RAM中调试STM32
2014-10-02 09:57
651 查看
【1】STM32.重新划分RAM
1.确定自己芯片的RAM起始地址和大小,CPU为STMF103ZET 包含 64K RAM:0x2000 0000----0x2000 FFFF。
2.重新划分RAM
我将64K RAM分成两部分 48K(0xC000)用来当做Flash,16K(0x4000)当做RAM
经过查资料和看刘凯老师的视频教程,摸索出了STM32F103ZET6的方法。废话少说,上步骤。
1.在MDK下工程管理按钮下多建立一个调试模式。
2.选中刚才建立的RAM调试模式,为什么要这样做呢?学习过DSP的同学都清楚,这里是模仿DSP项目调试中的两种方式,是为了有多钟调试模式,Flash模式,RAM模式。
3.进入Option for target 配置RAM调试模式下的工程选项。
STM32F103ZET6 RAM空间是64K,用前面40K做ROM,后面做RAM,由于STM32 RAM空间映射地址是0x20000000(可以去查手册),所以配置如下。自己加法琢磨下就通了。至于ROM空间和RAM分配多大,看实际工程需要。
4.Output 选项下,设置如下图所示,hex文件处勾选和不勾选是一样的,关键是Select Folder for Object
因为你在flash调试模式下会生成一堆Obj文件,但是现在是RAM模式,所以生成的文件不能放在一起,会冲突,需要另外在工程根目录下,新建文件夹保存这些文件,就通过这里选择。
5.Listing,Usr C/C++ ASM 这四项不用动,保持Flash模式下就行了。
6.Linker 菜单下,这里要注意,先不勾选Use memory Layout Form Targer Dialog,是为了要更改ROM和RAM的起始地址,配置如下。配置好了,再把其勾上。可以前后连接文件下对比XXX.sct文件,可以看到地址是变化的。
7.Dubug处设置如图所示,调试工具是什么选什么,Load Application at Startup处,如果勾选了,就不能单步调试,程序会直接运行。这里关键就是要加入一个RAM.ini文件,作为RAM的配置文件,是起到复位指针作用。这个文件是每次不同的工程都要修改,更改方框中的工程名。这个文件可以自己记事本写,写上图示几行代码,或者到D:\Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky路径下拷贝过来,修改一下。还要注意一点就是,axf文件的路径要搞清楚。是在项目根文件还是在子文件中,axf文件前面要指定路径。
8.ultitle中的设置如下所示。
又是ROM和RAM空间的选择。
9.好了,重新编译一下。先点击下载,再点击调试。就完成了,这样子做就可以延长Flash的寿命了。注意,RAM调试中软件Reset是没用的,程序指针会跑回Flash处,所以希望MDK5.2以后的版本能不能解决这个问题吧。
以上部分转载 http://www.51hei.com/stm32/3817.html
至此设计就完成了,点击debug按键就可以在RAM中调试了。
如果要在RAM中调试中断还要如下定义 VECT_TAB_SRAM
在main的最开始加一句:NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
最后记得把硬件启动模式也改了 BOOT0 BOOT1 高电平
以下是运行结果,可以看到地址是0x2000开头。不过复位键好像不起作用,要重新启动才行,看在FLASH 只有1000次的面子上就麻烦点吧
模板打包
相关文章推荐
- Windows环境下搭建基于Eclipse的STM32 GCC 开发环境(四) RAM调试 和 FLASH调试设置
- STM32启动选择RAM启动才能使用Jlink调试
- STM32 RVMDK JLINK下flash和RAM调试方法
- ulink下在ram和flash中调试stm32的方法
- 转载_STM32 RVMDK JLINK下flash和RAM调试方法
- STM32在Keil MDK5环境下RAM上代码调试
- IAR 环境下基于JLINK在RAM中调试STM32
- ulink下在ram中调试stm32的方法
- STM32内部RAM在线调试配置方法及详细说明(基于Keil开发工具)
- STM32 RVMDK JLINK下flash和RAM调试方法
- 在RAM中调试STM32程序的配置方法
- STM32 学习十一 RAM下载与调试
- 如何使用jlink+gdb在stm32上调试fans-rt
- IAR使用JTAG调试stm32
- KEIL下使用Jlink调试STM32 核心模块开发板
- 解决STM32调试,无法进入main函数的问题
- stm32学习之NOR flash和NAND flash区别,RAM 和ROM区别
- STM32定时器T2纯软件仿真时间准确,JTAG在线调试查看时间不准的问题
- STM32和OV7670的串口上位机调试