我们玩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 54为例说明。
31 工程选项中Linker项,Config选项卡中,指定Linker Configuration File为stm32f10x_ramicf, 该文件在FWLIB安装包中可以获得,IAR4和5分别有不同的配置文件。
32 同样是工程选项中Debug项,Download选项卡中,去掉所有钩子,不下载代码到flash
经过以上步骤,代码就可以在内存中调试,下载速度飞快,调试速度也比flash中快了不少!如何使用JLINK向stm32烧写程序
1、 安装JLINK驱动程序 SEGGER V40版本,下载地址如下:
直接下载安装就可以了
2、 安装好以后打开如下:
3、点击进入,则出现如下:
4、此时,需要进行设置芯片的型号,如下所示:
点击OPTIONS,则在下图中点击:
5、然后进入界面,
6、点击CPU,则会出现:
此时,我们在device里面选择好我们目标板上的芯片就可以了,然后点击确认。
7、我们现在将JLINK和目标板进行连接
8、此时我们就看到了MCU的型号已经是我们设置的了,表示目标板和仿真器已经连接好。
9、打开我们要烧录的hex文件,如下图:
三1、打开J_FlashARM出现如下工作界面:2、选择Options—Projectsettings进入Projectsettings界面:,3、点击CPU,选择合适的型号:此时,我们在device里面选择好我们目标板上的芯片就可以了,然后点击确认。4、我们现在将JLINK和目标板进行连接:Target——connect没有跳出错误,说明连接成功。5、打开我们要烧录的hex文件:选择需要烧录的程序:选择HEX文件后如下图所示:7烧录程序:如果有d出窗口,选择是或者确定。8重启设备
J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,与IAR,Keil等编译环境无缝连接, *** 作方便、连接方便、简单易学,是学习开发ARM最好最实用的开发工具。
产品规格:电源USB供电,整机电流 <50mA 支持的目标板电压 12 ~ 33V,5V兼容 目标板供电电压 45 ~ 5V (由USB提供5V) 目标板供电电流 最大300mA,具有过流保护功能 工作环境温度 +5℃~ +60℃ 存储温度 -20℃ ~ +65℃ 湿度 <90%尺寸(不含电缆) 100mm x 53mm x 27mm 重量(不含电缆)70g 电磁兼容 EN 55022, EN 5502 。
3V~55V的电压范围。索尼S3相机支持外部供电,并且可以在3V~55V的电压范围内进行调试,同时还支持16V~55V的电压范围内运行。该相机板载了JLINK调试器(SWD),并且还支持串口连接,可以进行调试输入和输出。索尼S3相机是一款全画幅系统相机,于2020年发布。该相机以其小体积、高画质、优秀视频功能和低光性能著称。J-Link的串口速率慢可能有以下几个原因:1 USB传输速度慢:J-Link通过USB与计算机通信,如果USB接口传输速度慢,将导致串口通信速度慢。建议更换高速USB接口或者使用其他方式(例如以太网)连接J-Link。
2 串口波特率设置过低:J-Link的串口波特率需要与目标器件的波特率相匹配,如果设置过低,将导致通信速度慢。请检查J-Link和目标器件的串口波特率设置是否一致。
3 串口线路不稳定:J-Link的串口线路不稳定也可能导致串口通信速度慢。建议检查串口线路质量,尽量缩短串口线路长度,避免干扰。
4 软件占用资源过多:J-Link的串口通信速度受到计算机上的软件占用资源的影响。如果计算机上同时运行大量的应用程序,将导致串口通信速度慢。建议关闭不必要的程序,释放系统资源。
希望以上信息对您有所帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)