首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» ulink-Jlink下在ram和flash中调试STM32的方法
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
ulink-Jlink下在ram和flash中调试STM32的方法
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2014-9-28 21:04
|
只看该作者
ulink-Jlink下在ram和flash中调试STM32的方法
下载地址
,
flash
,
程序
,
工程
,
开发
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
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议