原创 ulink下在ram和flash中调试stm32的方法

2008-3-13 09:12 8021 7 10 分类: MCU/ 嵌入式

Keil MDK3.20 ULINK下调试stm32方法


1.       程序在RAM中运行


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


     2)程序的debug之前要设定SPPC指针到Ram空间<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


新建工程,选择STM32 的具体型号,我买的万利的开发板,选择stm<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />32f103Vb


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


 5c57cf9f-5207-4b61-b3e5-6cae96328d5e.jpg


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


66d66a92-96d2-4470-b9e9-7c9178e58a10.jpg



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



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



088f7a06-420a-476f-a1f3-c89c001420b2.jpg 


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


 


UtilitiesUpdate Target before Debugging不选




 



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


 


2.       Flash中调试


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


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


cc50ea30-767e-4a53-91a9-21b64f1952e8.jpg



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


072765b8-55c4-444b-8c8b-5237e9633469.jpg


a18401f1-eac6-4361-8373-1a08045716c0.jpg




之后就可以FLASH调试了。


 


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


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


仿真器:ULINK



 



 


 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户377235 2012-12-17 14:34

好文章。谢谢,方日软件

用户377235 2012-12-17 14:34

好文章。谢谢,方日软件

cnchip_906380433 2010-3-2 08:44

谢谢,先收藏了...
相关推荐阅读
用户1236482 2009-04-23 18:01
串口简单总结
...
用户1236482 2009-04-09 21:45
PSPICE仿真超级伺服电路
1.       超级伺服电路最近在看《测量电子电路设计》一书,里面提到超级伺服电路。何谓超级伺服电路呢?超级伺服电路是一个积分电路,用于消除运算放大器失调漂移的电路。我们知道,运算放大器本身存在失调...
用户1236482 2009-04-01 19:27
用Pspice对电容分压进行仿真
    两只电容串联起来,并在其两端施加电压信号,那么两个电容各分得多大的电压呢?这个问题在google上可以获得不同的答案。有说按照容抗进行分压,有说是根据电容的等效电阻值进行分压。究竟哪个是正确的...
用户1236482 2008-03-13 09:19
上文中例程
...
用户1236482 2008-03-09 23:45
MDK3.20下用Ulink调试ARM
一位兄弟给咱们穷苦大众造福了,转载自ourAVR上yjgyiysbcc 的大作。我在NXP的lpc上试过,非常好用,例程多多。最近相中了stm32,为能够调试CORTEX-M3先做个准备....
EE直播间
更多
我要评论
3
7
关闭 站长推荐上一条 /3 下一条