STM32在SRAM、FLASH中调试代码的配置方法.docx

STM32在SRAM、FLASH中调试代码的配置方法.docx

ID:57216206

大小:2.60 MB

页数:13页

时间:2020-08-06

STM32在SRAM、FLASH中调试代码的配置方法.docx_第1页
STM32在SRAM、FLASH中调试代码的配置方法.docx_第2页
STM32在SRAM、FLASH中调试代码的配置方法.docx_第3页
STM32在SRAM、FLASH中调试代码的配置方法.docx_第4页
STM32在SRAM、FLASH中调试代码的配置方法.docx_第5页
资源描述:

《STM32在SRAM、FLASH中调试代码的配置方法.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试。除此之外,SRAM存储器的写入速度比在内部FLASH中要快得多,所以下载程序到SRAM中的速度较快。所以我们很有必要建立两个版本的工程配置,在SRAM中调试程序完毕后,再把代码下载到FLASH中即可。这篇笔记主要分享在keil5中配置FLASH调试与SRAM调试的详细配置方法及如何切换两种配置。本篇笔记以STM32F103ZET6为例。其FLASH大小为512KB,SRAM的大小为64KB。FLASH基地址为0x,SRAM基地址为0x。在STM32F

2、10XXX里,可以通过BOOT1、BOOT0引脚来选择三种不同的模式:我们要在FLASH中进行硬件仿真调试还是在RAM中进行硬件仿真调试需要对这两个boot脚进行对应的设置以及程序下载的地址进行设置。在FLASH中进行硬件仿真调试1、硬件设置BOOT0配置为0,BOOT1随意设置。2、keil设置本文以keil5为例。步骤如下:(1)点击如下按钮,修改target的名称:target的名称是可以随意更改的,这里我们改为FLASH。(2)点击Project->OptionsforTargetFlash...(也可以点击魔术棒那个图标)进行配置。首先对Target选项卡设置:设置IRO

3、M1的起始地址为0x,大小为0x80000,即FLASH的基地址与大小。设置IRAM1为0x,大小为0x10000,即SRAM的基地址与大小。(3)Debug选项设置:调试器根据实际进行选择,我们这里使用的调试器是ULINK2。其它的按默认设置即可,然后点击Settings:(4)编译,然后按Ctrl+F5进入调试界面:然后点击全速运行:在Disassembly窗口中可看到地址为0x0800xxxx,说明代码烧进了FLASH中,这时候就可以像使用其他C语言IDE调试C语言程序一样打断点、单步运行我们的STM32程序啦。在SRAM中进行硬件仿真调试在SRAM的仿真调试配置比FLASH

4、中的配置要麻烦一点~1、硬件设置BOOT0配置为1,BOOT1配置为1。2、keil设置(1)新建一个target,并修改名称为SRAM:(2)切换至SRAMTarget:(3)点击Project->OptionsforTargetSRAM...(也可以点击魔术棒那个图标)Target选项卡设置:设置IROM1的起始地址为0x,大小为0x8000(32KB);设置IRAM1的起始地址为0x,大小为0x8000(32KB)。即把64KB的SRAM分为32KB的FLASH(当然这是SRAM虚拟出来的FLASH,掉电易失)和32KB的RAM。(4)C/C++选项设置:为什么在RAM中调试

5、要设置这个宏而在FLASH中调试却不需要?这是因为我们的中断向量表默认位于FLASH中,而此时我们要在RAM中进行调试,所以需要把中断向量表拷贝到RAM中,相关代码在system_stm32f10x.c的SystemInit函数中:其实system_stm32f10x.c文件中也有宏VECT_TAB_SRAM相关的代码:把这行代码打开即可把中断向量表拷贝到RAM中。但是这里选择在C/C++选项选项里添加宏,因为这样可以保证SRAM版本与FLASH版本代码的一致性。(5)Debug设置:与在FLASH中调试不同的是,这里需要加入.ini文件:这个.ini可以自己创建(也可以在芯片支持

6、包里找到),这里我们建为Dbg_RAM.ini。文件里的内容如下:其中这里的第11行是需要根据实际进行修改的,需要把工程编译得出的.axf格式文件的路径及其文件名填到这里。这里因为我们这里的的.ini文件在.axf的上一级目录:所以此处以./Objects来表示。如果觉得麻烦的话,可以把.axf文件与.ini放在同一个目录下。其它的按默认设置即可,然后点击Settings,并进行如下设置:图中我们需要勾选VerifyCodeDownload及DownloadtoFLASH选项,也就是说点击调试按钮后,本工程的程序会被下载到内部SRAM中,只有勾选了这两个选项才能正常仿真。(至于为什

7、么FLASH版本的程序不需要勾选,不太清楚)。DownloadFunction中的擦除选项配置为DonotErase。这是因为数据写入到内部SRAM中不需要像FLASH那样先擦除后写入。ProgrammingAlgorithm 的地址要与我们Target选项卡里设置的地址一致,否则可能会出现如下错误:(6)编译,然后按Ctrl+F5进入调试界面,然后点击全速运行:在Disassembly窗口中可看到地址为0x2000xxxx,说明代码烧进了SRAM中,这时候就可以像使

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。