在RAM中调试STM32程序的配置方法

Design by:Liunus lqx.come.on@163.com qq:894693627 20140103

RAM中调试STM32

早就听说可以在RAM中调试STM32程序了,直到昨天晚上看了个视频,自己也想来试试。乘热打铁,今天上午跑到实验室,从网上下载资料,凭着零星的记忆开始配置。不过任何事情都不是一次成功的,这次也不意外。But经过反反复复修改,查资料,修改,查资料。还是成功啦!下面就把我配置的一些经验,结合网上已经有的一些资料傻瓜式总结出来,希望所有像我这样的初学者能够少走弯路。。。。。。

先说说在RAM中调试STM32程序的好处吧!

1. 可以单步调试程序,并且不用像仿真调试那样需要去查看繁琐的寄存器位,直接可以通过实验现象来Debug

2. 避免擦写Flash次数限制,虽然Flash的烧写次数高达1000次以上,但是也经不起小白程序员的折腾呀!!!!!

好了,关键步骤开始了。

一、 硬件配置。

我想大多数的人最开始想到在RAM中调试程序的时候都认为跟BOOT[10]有关吧!我也一样,直到我看到一篇博文。

大家可以放心这句话的真实性,我已经试了,确实是与BOOT[1 0]选择无关。

说了这么多废话,其实就是说不用管硬件配置!!!!!!

二、 软件配置。

1、 准备

1)将Keil安装目录下:D:\Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky的RAM.ini文件拷贝到需要调试的工程目录下。

2)在工程目录下新建文件夹Ramout

3)修改RAM.ini文件:将红圈处改为“工程名.axf”就行了。如果没有找到该文件不要怕,自己在文本编辑器里面写一个,就几行保存为.ini格式就行了。

2、 IDE软件配置

(1) 单击启动如下对话框,并按照下图配置。

(2) 如果按照上述配置方式配置成功后,KEIL配置模式会变为SRAM

(3) 单击,按照以下步骤一步一步进行配置。

(4) 


作者Liunus是用的ST公司的STM32F103VC,其Flash256KBSRAM48KB。记清楚了哟,特别是SRAM大小,这个与后面分配空间有关系。因 为我们将程序也放到SRAM中,所以需要将SRAM分为两个部分;一个部分 用于存放程序代码,另一个部分用于存放程序运行中的数据。

256KB=256*1024 (byte) =262144 (byte) 转换为16进制:40000

48KB=48*1024byte=49152byte)转换为16进制:C000

所以FLASH的总大小为40000SRAM总大小为C000

CORTEX_M3内核资料我们可以获知,FLASH的起始地址是0x08000000 SRAM的起始地,0x2000000

5


6)上图是将程序下载到FLASH中,所以Read/Only Memory Areas起始地址是0x800 0000,大小0x4 0000Read/Write Memory Areas起始地址是0x2000 0000,大小0xC000;但是我们是在SRAM中进行调试,所以需要修改这两个区域,结果如图下图:

至于为什么这样分配,这都是大神们根据自己做项目的经验总结的,我们可以不必深究。不过也很简单,首先SRAM的起始地址是0x2000 0000Read/Only Memory Areas是从0x2000 0000开始的。根据程序编译结束后生成的报告只要满足Read/Only Memory Areas区大于CODE 加上 RO-DATARead/Write Memory Areas区大于 RW-DATA 加上 ZI-DATA就行了。

7

8)如果程序中使用了中断,需要在如图红框中加入VECT_TAB_RAM。因为我目前的工程没有用中断,所以我填入的是RAM_MODE REMAP。其实这里没定义也没有关系,还可以在程序开头定义如:#define VECT_TAB_RAM

9

10

11)在Debug标签栏下,点击settings,然后再选择Flash Download出现如下窗口。

12

三、 调试程序。

经过上面一系列的配置,我们已经完成95%了。现在我们要做的最后一步就是编译、下载、调试了。But在编译之前,建议大家做以下几步,避免出错。

1、 确保整个建立过程是在SRAM环境下进行的,需检查第(2)步。

2、 确保SRAM大小分配正确,并且认真检查有没有马虎造成的地址大小分配错误,需检查第(6)(9)(11)步。

好啦,可以编译啦。编译通过后,下载,调试

你就可以像使用仿真工具一样的进行仿真了

下图是运行时的图片,可以看到,程序是在SRAM区。(汇编地址是0x2xxx xxxx)

四、 参考资料

网上有很多好的博客和好的资料,下面推荐几个。Liunus就是通过反复查看资料才配置好的。所以大家在看Liunus资料配置不成功时可以参考网上资料。

http://blog.163.com/smart_84@126/blog/static/66575735201012505836199/

http://blog.csdn.net/iceiilin/article/details/6048895

http://www.openedv.com/posts/list/279.htm

如果大家看不清楚上面的图片,请到百度文库下载PDF格式的,或者联系我的邮箱lqx.come.on@163.com    894693627@qq.com

阅读更多

没有更多推荐了,返回首页