
我们玩ARM9,一般都是在内存里调试程序,速度飞快。STM32下也可以这样,虽说现在的flash寿命已经很长了,但flash中调试烧录程序还是一个很慢的过程,有时候程序上一个小小的改动要花上几倍的时间下载代码,这确实是不能忍受的。
我们也可以在开发STM32时,在内存中调试程序。
{
STM32这颗Cortex-M3控制器,与其他许多ARM一样,提供了BOOT0和BOOT1两个管脚用于启动选择。
BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。
BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。(用于串口ISP)
BOOT1=1 BOOT0=1 从内置SRAM启动,这种模式可以用于调试。
在芯片上电复位时,BOOT0和BOOT1两个管脚的状态将决定芯片从何处启动。
1.当BOOT0和BOOT1均设置为逻辑1时,系统将从内置SRAM中启动,这是代码内存调试的第一个条件。
}
经多次确认,BOOT0和BOOT1状态与内存中调试无直接联系
2.然后,我们需要在代码中设置正确的中断向量表位置。中断向量表通常被放置在用户程序的开始,所以flash中运行时,向量表位于0x08000000处,而当代码被放置在SRAM中运行时,他的位置就成了0x20000000。在初始化NVIC时,我们可以放置如下代码,定义向量表的位置
NVIC_SetVectorTable(0x20000000 , 0x0)
或
NVIC_SetVectorTable(0x08000000 , 0x0)
3. 在编译器中,要进行正确的设置。这里以IAR 5.4为例说明。
3.1. 工程选项中Linker项,Config选项卡中,指定Linker Configuration File为stm32f10x_ram.icf, 该文件在FWLIB安装包中可以获得,IAR4和5分别有不同的配置文件。
3.2. 同样是工程选项中Debug项,Download选项卡中,去掉所有钩子,不下载代码到flash
经过以上步骤,代码就可以在内存中调试,下载速度飞快,调试速度也比flash中快了不少!
软件:IAR 8.3
单片机:NXP的MK66FX1M0xxx18
下载器:ST-Link V2
如果你知道怎么配置只想看如何下载到flash直接跳转到“下载程序到Flash(发布用断电再上电不会丢程序:release)”
感谢浏览,本人第一篇博客,纪念 2020.8.14
下载前配置(config)
Project->options 或者 Alt+F7
提示:tools -> option 是配置软件的设置不是该工程的注意别弄错了
配置芯片型号:
点击右侧按钮更改具体芯片型号
设置下载器类型
点击红框标记的位置更改下载器类型
更改下载方式
点选
use flash loader(s)
选择正常的.board文件,因为k66和IAR自带的board文件已经不一样了所以要去下载另一个。
这里给出百度网盘地址: https://pan.baidu.com/s/1PV-m7DiJ5MQuy3-TzAQbKQ
提取码:voiq不要问为什么写的是K65。
配置下载器设置
在左侧找到你的下载器,点击,设置
因为我的是ST-Link/V2所以在选项改为…/V2然后为SWD
至此基本的东西设置完成,点ok确定设置。
这里给出讲swd和JTAG等的区别的文章https://blog.csdn.net/LEON1741/article/details/72846434
下载程序到ROM(调试用:debug)
配置完成后就可以看到菜单栏里有对应的下载器类别
在工程列表上显示的是–Debug 即调试模式,即下载到rom断电后程序会丢失
在工具栏看到六边形中间带向下的箭头的是–make 即生成(下载到单片机的程序文件)
检查完无错误后点红框中的绿色按钮(download and debug)可以下载到 rom并开始调试
tip:在debug模式下不能用project->download->download active application
正常配置完成后就是这个状态
下载程序到Flash(发布用断电再上电不会丢程序:release)
点击红框位置更改为–Release 即为发布模式 即下载到flash 断电程序不会丢失
tip:问题是要重新进行下载配置等等
配置完成后即可用那个download and debug 绿色按钮调试下载
或者用 Project ->Download ->Download active application 直接下载不调试
此时下载的文件断电后不会丢失,相比于下载到flash,debug模式下载速度更快,且可无限次下载,下载到flash,会对flash进行擦写,而flash会有擦写次数,且下载过程慢。
单片机
一体机电脑是什么意思
精选推荐
广告
IAR-8051-8.3破解文件(已测试,可用)
100下载·7评论
2015年2月6日
IAR 8.3以后的版本编译TI BLE Stack会报类似如下的错误
1296阅读·0评论·0点赞
2014年4月3日
IAR FLASH
41阅读·1评论·0点赞
2022年11月22日
【STM32F429开发板用户手册】第1章 初学STM32F429的准备工作
1754阅读·0评论·2点赞
2020年6月1日
Eclipse+IAR使用经验总结(持续更新)
1598阅读·1评论·2点赞
2020年7月10日
IAR8.3 STM8安装过程
273阅读·1评论·0点赞
2021年12月7日
长治月薪三四千,不如学理财,每天1小时,限时免费学
00:44
启牛学堂-0元学理财
广告
IAR(For STM32) 安装,配置,工程创建,下载,调试
7089阅读·0评论·9点赞
2020年7月21日
IAR下连仿真器可以正常运行,程序下载到flash部分功能异常
343阅读·0评论·0点赞
2021年7月5日
在IAR下通过Jlink将程序直接下载到Flash指定地址
573阅读·0评论·0点赞
2012年10月16日
IAR报错:FlashK60Fxxx128K.board丢失 K60断电丢程序
556阅读·0评论·0点赞
2019年10月17日
IAR8.3.2破解说明
9415阅读·0评论·8点赞
2019年5月30日
IAR8.3安装步骤
4890阅读·9评论·8点赞
2020年10月20日
IAR仿真失败:Execution failure in flash loader
2257阅读·0评论·0点赞
2020年12月4日
IAR一些配置
1358阅读·0评论·2点赞
2018年6月3日
IAR使用笔记
491阅读·0评论·0点赞
2018年12月22日
IAR 设置问题
4379阅读·0评论·5点赞
2018年11月30日
IAR的编译过程
1.7W阅读·0评论·1点赞
2012年3月2日
【STM32H7教程】第7章 STM32H7下载和调试方法(IAR8)
2013阅读·0评论·0点赞
2019年4月18日
IAR教程之IAR下载和调试
1.5W阅读·3评论·20点赞
2020年5月20日
去首页
看看更多热门内容
评论1
ctotalk
赞
不错。
备用电池正常的话是不会丢失,但前提是电池电量未报警,但不要时间太长,以免电池亏电,而导致用户程序丢失,建议不要把程序只保留在内存中,自然会丢失,如果写入了flashrom就不会出现丢失啦 。
另外断电程序里的数据丢失。若是数据丢失你可以设置断电保持功能,断电后程序自动停在断电时的状态,恢复后从断电出开始。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)