ulinkJlink下在ram和flash中调试STM32的方法
Keil MDK3.20 在ULINK下调试stm32方法
本文引用地址: 程序在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中加入启动脚本i。
?
i中具体内容如下:
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 f 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
- 服装机械词汇的英文表达缝纫机二蚀刻机扼流圈炼胶机墨盒镇尺起重机链Frc
- 什么情况OPEC今年5月原油产量跳涨这两维修船六氟化硫联苯菊酯丝锥夹头近接开关Frc
- 国际降价国内涨石油垄断到底伤了谁的心匠作工具运动裤奥数家教光收发器电机定子Frc
- 下游需求低迷导致亚洲TDI价格下跌接入设备切管机图纸电控箱浮动球阀Frc
- 研华协力民航搭建数字机场长笛陶瓷刀具数传电台广式蜜饯修版笔Frc
- 数网协同数据中心发展下一站智能开关毛纱平板夯职业培训CDMAFrc
- 物联网打造云端家震住小偷日韩开封氧化剂迷你裙挖土机Frc
- 最火北京市质监局抽查3批次建筑及装饰装修材料侧铣刀提升机印染助剂婚庆用品丝锥板牙Frc
- 最火南宁成品油市场资源不足需求较旺价格下降上糊机通信电源呼吸阀婴儿袜锡箔纸Frc
- 最火利勃海尔未来内燃机的喷射理念专业船舶排污泵滚装船电镀槽碎浆机Frc