打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ulink

Keil MDK3.20 在ULINK下调试stm32方法

1. 程序在RAM中运行

要点:(1)程序的下载地址改到RAM空间中

(2)程序的debug之前要设定SP,PC指针到Ram空间

新建工程,选择STM32 的具体型号,我买的万利的开发板,选择stm32f103Vb。

 

 

设定程序下载地址,如下图所示,IROM1的地址指向了STM32的ram空间。

 

 

空间大小如何分配取决于自己的需求。本款处理器内部ram大小为20K,分配16K给只读区,4K给可读可写区。这样IROM设定的大小为0x4000,IRAM1的起始就变为0X20004000,大小只剩下0X1000。

Debug标签选择ULINK1 Cortex Debugger(软件采用yjgyiysbcc兄crack方法)。不选Load Application at Start,在Initialization中加入启动脚本RAM.ini。

 

 

RAM.ini中具体内容如下:

FUNC void Setup (void) {

SP = _RDWORD(0x20000000); // Setup Stack Pointer

PC = _RDWORD(0x20000004); // Setup Program Counter

_WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table Offset Register

}

LOAD XXX.axf INCREMENTAL // Download,红色代表工程文件名.axf

Setup(); // Setup for Running

g, main

Utilities下Update Target before Debugging不选

这样添加后就可以在RAM中调试了。

>>>>>>我们需要在代码中设置正确的中断向量表位置。中断向量表通常被放置在用户程序的开始,所以flash中运行时,向量表位于0x08000000处,而当代码被放置在SRAM中运行时,他的位置就成了0x20000000。在初始化NVIC时,我们可以放置如下代码,定义向量表的位置

NVIC_SetVectorTable(0x20000000 , 0x0);

NVIC_SetVectorTable(0x08000000 , 0x0);

 

>>>>>工程选项中Debug项,Download选项卡中,去掉所有钩子,不下载代码到flash,这样就可以在RAM中调试程序了!

2. Flash中调试

新建工程后系统默认设定好IROM1为FLASH的地址和空间大小。只需要两步:

1) 设定调试工具为ULINK1 CORTEX DEBUGGER,如下图所示,不需要设定起始脚本。

 

 

2) 在Utility中设定选择ULINK1 cortex debugger,并设定编程算法。如下图所示。

 

 

 

 

之后就可以FLASH调试了。

硬件:万利的 EK-STM32F开发板,硬件去掉RS3,RS4 排阻,断开开发板本身的仿真器。

软件:KEIL MDK3.20+ULINK驱动替换文件。

仿真器:ULINK

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
KEIL MDK简介,如何安装KEIL MDK下载程序
STM32开发环境(工具)之Keil MDK 介绍
Keil ARM RVMDK软件仿真及SDRAM中调试S3C2410程序
The debugger is not properly installed. Run setup to install or repair the debugger.
Debugging with the Maven Jetty Plugin in Eclipse
STM32工程建立与配置流程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服