你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 3686|回复: 26

[STM32L476] 【NUCLEO-L476RG开发】在RAM中进行Debug

[复制链接]

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2015-11-9 23:55:22 | 显示全部楼层 |阅读模式
     前几天在社区QQ群里有个小伙伴在找使用RAM进行debug的设置,论坛有很多这样的例子和教程,我写了个demo在NUCLEO-L476RG上测试下,给需要的同学。之所以要选择在ram中调试,很重要的原因是考虑到Flash的寿命问题,因为每次下载程序都要进行Flash的擦除,如果次数多了可能会导致Flash有问题,但是MCU内的Flash的擦写次数普遍可以达到上万次,所以说几乎不可能因为调试程序次数太多把Flash搞坏掉,如果真能把Flash擦除坏,那肯定能成为高手了。   L476RG内部有2个SRAM,一个是SARM1,我们用作flash,一个是SRAM2,我们用作sarm。
QQ拼音截图未命名.png
根据上面的内存分配,相应的keil的设置如下:
QQ拼音截图未命名.png
然后从keil的安装目录下复制Dbg_RAM.ini文件用于初始化调试信息及设置中断向量表,内容如下:
  1. /*----------------------------------------------------------------------------
  2.   Setup()  configure PC & SP for RAM Debug
  3. *----------------------------------------------------------------------------*/
  4. FUNC void Setup (void) {
  5.   SP = _RDWORD(0x20000000);          // Setup Stack Pointer
  6.   PC = _RDWORD(0x20000004);          // Setup Program Counter
  7.   _WDWORD(0xE000ED08, 0x20000000);   // Setup Vector Table Offset Register
  8. }

  9. LOAD %L INCREMENTAL                                  // load the application

  10. Setup();                                             // Setup for Running

  11. g, main
复制代码
上面的LOAD %L INCREMENTAL的用作 linker output file 来debug当前工程,具体可参考:load 命令用法
因为上面的设置我们要去掉Load Application at Startup并选中该初始化文件Dbg_RAM.ini,设置如下:
QQ拼音截图未命名.png
设置下载的debug模式:
QQ拼音截图未命名.png
编译后直接点debug后全速运行就可以了,led闪烁串口输出信息,如果这个时候退出debug模式,程序会继续运行,但是复位后RAM内容就会清除程序不再存在,可以预先清除FLASH内容用于观察现象。因为RAM大小的限制,这个方法也只仅限于比较小的程序。
main如下:
  1. //creep
  2. //2015-11-09

  3. int main(void)
  4. {
  5.         uint8_t sta = ON;
  6.         HAL_Init();
  7.         SystemClock_Config();
  8.         USART2_Init();
  9.         LED_Init();
  10.         while(1)
  11.         {
  12.                 LED(sta);
  13.                 sta = !sta;
  14.                 HAL_Delay(500);
  15.                 printf("Hi,I am creep!!\r\n");
  16.         }
  17. }

复制代码
测试demo:
RAM_Debug.rar (966.73 KB, 下载次数: 18)
<
回复

使用道具 举报

9

主题

95

回帖

0

蝴蝶豆

中级会员

最后登录
1970-1-1
发表于 2015-11-10 08:09:02 | 显示全部楼层
高手啊,顶一个
回复 支持 反对

使用道具 举报

10

主题

1651

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-2-15
发表于 2015-11-10 08:39:16 | 显示全部楼层
研究的比较细。
回复 支持 反对

使用道具 举报

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
 楼主| 发表于 2015-11-10 08:47:53 | 显示全部楼层

这都是别人玩剩下的
回复 支持 反对

使用道具 举报

10

主题

1651

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-2-15
发表于 2015-11-10 08:49:46 | 显示全部楼层
creep 发表于 2015-11-10 08:47
这都是别人玩剩下的

我知道,这个论坛毕竟新手很多,能研究到这个地步的人论坛里面不多。
回复 支持 反对

使用道具 举报

33

主题

1243

回帖

0

蝴蝶豆

论坛元老

最后登录
2019-3-9
发表于 2015-11-10 09:00:02 | 显示全部楼层
感谢橙子分享,嘿嘿,原来那个ini文件可以在keil里面找到,,,我都是在网上找了一个一直用
回复 支持 反对

使用道具 举报

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
 楼主| 发表于 2015-11-10 09:05:29 | 显示全部楼层
风子 发表于 2015-11-10 09:00
感谢橙子分享,嘿嘿,原来那个ini文件可以在keil里面找到,,,我都是在网上找了一个一直用 ...

keil自己提供的一些程序比ST的好用多了,虽然不怎么开源,但是稳定性很好!
回复 支持 反对

使用道具 举报

100

主题

3617

回帖

1

蝴蝶豆

论坛元老

最后登录
2020-12-8
发表于 2015-11-10 09:33:06 | 显示全部楼层
看看,,,,,,,,,,,,,,
回复 支持 反对

使用道具 举报

10

主题

379

回帖

0

蝴蝶豆

高级会员

最后登录
1970-1-1
发表于 2015-11-10 11:31:19 | 显示全部楼层
橙子大神
回复 支持 反对

使用道具 举报

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
 楼主| 发表于 2015-11-10 11:42:41 | 显示全部楼层

整的都不好意思了,安臣大哥!!
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版