完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在stm32f407内部SRAM调试程序调试过程
硬件 本次调试使用的硬件为正点原子STM32F4探索者开发板。 软件环境 软件使用的Keil V5.27.1.0 STM32f407使用的是LL库 调试程序介绍 为了能在FLASH运行和SRAM运行做个对比,写了两个测试程序。 在FLASH中运行的程序有两个LED灯会按照500ms的时间间隔闪烁 在SRAM中运行的程序只有一个LED灯会按照500ms的时间间隔闪烁 //主要代码如下: int main(void) { NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4); SystemClock_Config(); LED_GPIO_Config(); while(1) { /* 在flash中运行的代码 */ LED0_Toggle(); LL_mDelay(500); LED1_Toggle(); /* 在sram中运行的代码 */ LED1_Toggle(); LL_mDelay(500); } } RAM调试所需相关配置 1、修改代码存放地址和数据存放地址 点击魔法棒 进入目标配置界面 然后将下图两个框框的值进行更改,比如我的芯片是stm32f407ZGT6带的sram有192K字节但是我能操作的只有128K,剩余64k由于只能CPU通过数据总线访问,使得我调试没法打断点。所以我把128K划分了两个部分,第一个部分从0x20000000开始的64K字节存放代码,第二个部分从0x20010000开始的64K用于存放程序运行过程用到的变量和其他临时数据 2、更改向量表 和上面一样点击魔法棒进入到C/C++的界面中,在如下图的框里面增加宏定义VECT_TAB_SRAM,此宏定义的作用是将中断向量表存放地址有默认的falsh改到SRAM上,如果不进行更改将会导致中断无法执行。宏定义在函数里面的实现如下图。位于system_stm32f4xx.c文件的SystemInit函数 3、更改DEBUG配置 要想在线调试需要更改DEBUG的相关配置,具体步骤看下图。 图片里的sram_run_test.ini文件是用来配置PC, SP指针的,让他们指向SRAM。 文件里面的内容如下(官方提供的): FUNC void Setup (void) { SP = _RDWORD(0x20000000); // Setup Stack Pointer PC = _RDWORD(0x20000004); // Setup Program Counter XPSR = 0x01000000; // Set Thumb bit _WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table Offset Register } LOAD %L INCREMENTAL // Download to RAM Setup(); g, main 4、取消更新flash程序 在SRAM里面调试时,不更新FLASH里面的程序,配置界面如下: 运行 按照以上步骤设置好之后,就可以点击调试按钮 进入调试了。 在调试之前我先往FLASH中下载,闪两个灯的程序,然后切换到第二个程序下载到SRAM进行调试。 下载进入后能看到开发板上只有一个灯在闪,说明程序已经下载进去了,从调试界面也能出运行的PC指针值位于SRAM的地址范围内了,SP指针所在范围就是一开始设置的范围(0x20010000开始的),关闭调试界面,复位板子,此时运行的程序是之前烧写的(闪两个灯的程序) |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
645浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
516浏览 3评论
532浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
505浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 11:28 , Processed in 0.678164 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号