1、写在前面
本文主要讲述的内容:基于Keil开发工具下,STM32内部RAM在线调试配置方法,以及每一项配置的详细说明。
让程序运行在RAM中调试代码有两优点:1.速度快;2.减少对芯片FLASH读写次数,增加芯片寿命。
本文基于ST公司Cortex-M内核的STM32来讲述其配置方法,其实也适用于其他公司(如:TI、NXP等)的Cortex-M芯片,原理都是一样的。
第二点在本文中的作用也很大,就是使用了中断功能。由于RAM调试会牵涉到向量表,中断功能就会使用到向量表,如果没有配置正确,这里就不会响应中断,或者出错。
2、RAM调试配置方法
本节主要讲述配置方法的过程,为什么这么配置,以及配置的原理将会在下一章节讲述。
1.修改内存地址
打开目标配置:Project -> Options for Target -> Target或“工程目标配置”点击快捷按钮。
将ROM和RAM地址映射到如下图地址。 我们使用STM32F103ZE芯片,该芯片的RAM大小为0x10000即64KB,我们这里平分RAM,即各自的大小为0x5000。
注意:配置的地址范围不能超过芯片实际的大小。
2.配置向量表
同上,打开目标配置:Project -> Options for Target -> C/C++,使用宏定义VECT_TAB_SRAM。如下图:
这里的宏定义是为了让向量表指向RAM(我们默认是指向ROM),重要的一个目的就是让中断向量表指向RAM,上面“代码功能”中断的意义就是为了验证向量表的正确性。
注意:这里的宏定义是在工具链中配置的,多个宏定义之间需要有“逗号”隔离开来。
其实这里的宏定义配置也可以在源代码中实现,打开system_stm32f10x.c文件下第127行的“VECT_TAB_SRAM”宏定义,如下图:
3.调试配置
同上:Project -> Options for Target -> Debug, 这里是关于调试的配置。
第一步:去掉“Load Application at Startup”前面的勾选项
第二步:导入RAM初始化文件。
RAM初始化文件里面内容如下:
FUNC void Setup (void) {
SP = _RDWORD(0x20000000);
PC = _RDWORD(0x20000004);
_WDWORD(0xE000ED08, 0x20000000);
}
LOAD Objects\ExecutableFile.axf INCREMENTAL
Setup();
g, main
每一条语句具体意思请见源代码注释,这里提示的是Objects\ExecutableFile.axf
也就是输出路径和输出文件名,它的路径与文件名与你工程配置需对应。
4.调试不更新目标程序
同上:Project -> Options for Target -> Utilities,不勾选“更新”。意思就是在线调试时,不更新芯片(下载FLASH)程序。
至此,STM32内部RAM在线调试配置方法就完成了,连接开发板就可以使用RAM在线调试代码了
上一篇:STM32PB2(BOOT1)使用注意
下一篇:关于STM32串口空闲中断IDEL的问题
推荐阅读
史海拾趣
倍(DBIC)公司深知人才是企业发展的核心动力。因此,公司高度重视人才培养和团队建设。公司建立了完善的培训体系,为员工提供丰富的培训资源和学习机会。同时,倍(DBIC)公司还积极引进优秀人才,构建了一支高效、专业的团队。这支团队在公司的发展中发挥了重要作用,为公司创造了巨大的价值。
倍(DBIC)公司深知人才是企业发展的核心动力。因此,公司高度重视人才培养和团队建设。公司建立了完善的培训体系,为员工提供丰富的培训资源和学习机会。同时,倍(DBIC)公司还积极引进优秀人才,构建了一支高效、专业的团队。这支团队在公司的发展中发挥了重要作用,为公司创造了巨大的价值。
Eureka公司自1995年成立以来,一直致力于电子技术的研发和创新。在早期阶段,公司凭借一款具有创新性的液晶显示驱动IC产品,成功打入市场。随着技术的不断进步,Eureka逐步拓展了产品线,推出了包括类比-数位混合信号处理器、系统应用完整方案等一系列产品。这些产品的推出,不仅丰富了Eureka的产品线,也提升了公司在行业内的竞争力。
面对电子行业日新月异的变化和不断涌现的新挑战,Cotco公司始终保持敏锐的市场触觉和应变能力。公司及时调整战略方向,加大在新兴领域如物联网、智能家居等的投入和研发力度。同时,Cotco也积极拓展国际市场,与全球多个国家和地区的合作伙伴建立合作关系,推动产品的全球化销售和服务。展望未来,Cotco将继续秉承创新、质量和服务的理念,致力于成为全球电子行业的佼佼者。
面对电子行业日新月异的变化和不断涌现的新挑战,Cotco公司始终保持敏锐的市场触觉和应变能力。公司及时调整战略方向,加大在新兴领域如物联网、智能家居等的投入和研发力度。同时,Cotco也积极拓展国际市场,与全球多个国家和地区的合作伙伴建立合作关系,推动产品的全球化销售和服务。展望未来,Cotco将继续秉承创新、质量和服务的理念,致力于成为全球电子行业的佼佼者。
近年来,电子行业面临着诸多变革和挑战,如物联网的快速发展、人工智能的崛起等。面对这些变革,Boundary Devices积极调整战略,加强在物联网和人工智能领域的研发投入,推出了一系列符合市场趋势的新产品。同时,公司还加强与高校和研究机构的合作,共同推动电子行业的创新与发展。
:( :( 本人急需 单片机“0~99加法计数器”课程设计任务书 希望哪个高手帮助下小弟 感激不尽啊 联系邮箱:511949631@qq.com… 查看全部问答∨ |
|
要做一个函数信号发生器 用凌阳061a 和max038 max038的fadj口调节频率-2.4v到2.4v可调 用061的dac口输出的是0-3mA电流 怎样转换成2.4v到2.4v可调电压 谢谢啦 并诚交电路设计能人异士为好友 如果可能诚心拜师 非诚勿扰 联系邮箱lian.sun ...… 查看全部问答∨ |
我在用evc编程时:先按步骤创建了一个单文档的应用程序: 其中有一个 打开文件 的图标,按了后出现打开文件的对话框。 我觉得这个对话框大小不能改变,不知道哪位高手知道改变此对话框 大小的方法?(本打算截张模拟器的打开文件的对 ...… 查看全部问答∨ |
DSP2407开发板 [系统资源] DSP处理器TMS320LF2407A ,最高工作频率40MHz; DSP芯片内置2.5k字SRAM; DSP芯片内置32k 字FLASH; 外扩32k×16bit的程序RAM,32k×16bit的数据RAM; 监视用LED发光管一个; DSP所有功能引脚引出,120pin; ...… 查看全部问答∨ |