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