实用标准文案精彩文档1软件调试...........................................................................................................................12硬件调试...........................................................................................................................2FLASH调试(0x08000000).............................................................................................3SRAM调试(0x20000000).........................................................................................81软件调试1.单击菜单Project----OptionforTarget‘STM32_template’(修改工程的Option属性)Target选项C/C++选项实用标准文案精彩文档Debug选项(软件调试)2硬件调试本文以STM32F103RC芯片为例,根据STM32F103RCDatasheet可知芯片的片内FLASH基址为0x08000000,大小为256K(0x40000);片内RAM基址为0x20000000,大小为48K(0xc000)。芯片启动模式如下:芯片的启动模式需要根据你程序下载的具体地址进行正确设置这里主要介绍两种硬件调试方法FLASH调试(程序下载到FLASH中,0x08000000)SRAM调试(程序下载到SRAM中,0x20000000)实用标准文案精彩文档FLASH调试(0x08000000)用JLink连接好电脑跟实验箱,实验箱BOOT0接0(短路帽接上面两个引脚)?FLASH调试的参数设置1)单击菜单Project----OptionforTarget‘STM32_template’(修改工程的Option属性)前面的选项跟软件调试设置一样,对下列选项进行配置:Debug选项,选择调试工具选择“Settings”,见下图进入“CortexJLink/JTraceTargetDriverSetup”实用标准文案精彩文档Debug选项(默认)Trace选项(默认)实用标准文案精彩文档FlashDownload选项配置如下,点击“Add”选好之后,点击“Add”返回实用标准文案精彩文档点击“OK”返回。Utilities选项实用标准文案精彩文档编译1.点击Project---->rebuildtargetfiles启动调试1.点击Debug--->StartDebug整个调试界面图,在调试窗口中可看到汇编代码的地址为0x0800开头,说明代码烧进到了FLASH中:点击全速运行,观察实验结果,调试完成。实用标准文案精彩文档SRAM调试(0x20000000)用JLink连接好电脑跟实验箱,实验箱BOOT0接1(短路帽接下面两个引脚)PB2/BOOT1接+5V(1)STM32的中断向量表默认存放在0x08000000,如果使用SRAM调试,需要对中断向量表进行重映射到0x20000000,否则中断服务函数进入不了。(如果你整个程序都没有用中断则不需要)将下面这段程序加在main()函数开头。#ifdefVECT_TAB_RAM/*SettheVectorTablebaselocationat0x20000000*/NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);//向量表位于RAM#else/*VECT_TAB_FLASH*//*SettheVectorTablebaselocationat0x08000000*/NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);//向量表位于FLASH#endif(2)打开一个工程,选择Flash菜单下的ConfigureFlashTools,打开选项对话框。如上图所示,在target选项中修改IROM1的Start值为:0x20000000,Size:0x8000(32K);IRAM1的Start值为0x20008000,Size:0x4000(16K)。即把48K的内存分为32K的FLASH和16K的RAM。实用标准文案精彩文档(3)C/C++选项,添加宏VECT_TAB_RAM(4)在Debug选项中仿真器选择Cortex-M3J-LINK,InitializationFile一栏中点击按钮选择RAM.ini文件(D:\Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky中的RAM.ini),这里我把该文件拷到了user目录。设置如下:实用标准文案精彩文档并点击仿真器一栏Settings按钮,进一步设置,如下图,注意Debug选项中interface中选择USB,如下图所示,在FlashDownload中配置。(5)如下图所示,在选项Utilities设置对话框中,UseTargetDriverforFlashProgramming中选择Cortex-M3-J-LINK,并点击setting进一步设置,实用标准文案精彩文档可以看到设置同第3步中一样,不再更改。(6)到此为止设置完成,开始调试。注意:芯片必须配置成SRAM启动。(7)编译连接后,单击(或Ctrl+F5)开始调试(8)在调试窗口中可看到汇编代码的地址为0x2000开头,说明代码烧进到了SRAM中。单击Run按钮(或F5)全速运行,观察实验结果,调试完成。