0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >基础知识 > 单片机编程软件很简单(23),keil单片机编程软件调试stm32

单片机编程软件很简单(23),keil单片机编程软件调试stm32

来源: 21ic
2020-12-03
类别:基础知识
eye 100
文章创建人 拍明

原标题:单片机编程软件很简单(23),keil单片机编程软件调试stm32

  单片机编程软件的使用意义较强,不论是工作还是学习,单片机编程软件都是常被使用的软件之一。本文对于单片机编程软件的介绍将基于如何采用keil单片机编程软件调试stm32,如果你对单片机编程软件抑或本文内容具有兴趣,不妨继续往下阅读哦。

  

1.jpg


  1. 程序在RAM中运行

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

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

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

  

image.png


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

  

image.png


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

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

  

image.png


  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);

  或

image.png


  NVIC_SetVectorTable(0x08000000 , 0x0);

  或

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

  2. Flash中调试

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

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

  

image.png


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

  

image.png

image.png


  之后就可以FLASH调试了。

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

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


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯