天南地北客
发表于: 2017-8-29 15:18:48 | 显示全部楼层

本本将主要介绍如何使用Visual Studio创建一个基于STM32F4-Discovery探索板的简单工程。


本文使用以下硬件和软件:

●      Microsoft Visual Studio

●      VisualGDB

●      STM32F4-Discovery探索板


我们将创建一个简单的“LED闪烁”的工程,然后进行构建,并使用调试器进行单步调试。

1.    启动Visual Studio。选择File-> New-> Project

01-newprj.png


2.    选择VisualGDB - >Embedded Project Wizard。选择一个目录和项目名称:

02-blink.png


3.    由于我们创建的是一个没有任何静态库的固件文件,因此使用“embedded binary选项。我们建议选择“MSBuild”作为构建子系统:

03-msbuild.png


4.    我们正在创建包含基于ARM的STM32F407VG微控制器的STM32F4-Discovery探索板的固件,因此请在工具链选择页面上选择“ARM”。如果还没有安装ARM工具链,请选择“(download toolchain for arm-eabi)”,VisualGDB将自动安装:

04-getarm.png


5.   选择工具链后,您将看到受支持器件的列表。从列表中选择STM32F407VG

05-dev.png


6.    STM32F4-Discovery探索板包含4个LED,分别连接到PD12-PD15引脚(详细信息请参阅电路板的原理图):

leds.png

要创建一个使连接到PD12的绿色LED闪烁的项目,需要选择“GPIOD”和“12”作为端口组和编号:

06-sample.png


7.    STM32F4-Discovery探索板包含板载ST-Link编程器。只需将其插入USB端口,VisualGDB即可自动检测。从列表中选择并单击“Test”以自动安装所需的驱动程序,并验证调试连接是否正常工作:

07-device.png


8.    VisualGDB将尝试运行OpenOCD并连接到它,以验证调试是否可行:

08-test.png


9.    在向导中按“Finish”完成。创建项目后,按Ctrl-Shift-B构建它:

09-build.png


10.     按F5开始调试。注意LED如何打开和关闭。现在在第一个GPIO_WriteBit()行上放置一个断点。断点将立即触发,LED将熄灭:

led_off.png

11.     按Ctrl-Alt-G或选择Debug-> Windows-> Registers打开Registers窗口。右键单击其中,并确保启用“‘All Registers”:

10-pc.png


12.     注意PC寄存器的值。 0x80xxxxxx范围内的一个值表示程序正在从FLASH存储器运行。稍后我们会把它改成SRAM。按F10键可以跳过一行代码。注意LED如何打开:

led_on.png

13.     按Shift-F5退出调试。右键单击解决方案资源管理器中的项目节点,然后选择“VisualGDB Project Properties”:

11-projprops.png


14.     点击“Change settings”,选择SRAM而不是FLASH:

12-sram.png


15.     以前编译的用于FLASH模式的二进制文件不会从SRAM运行。重建项目来解决这个问题:

13-build.png


16.    开始调试,等待断点被触发。请注意,pc寄存器现在包含一个位于0x20xxxxxx范围的值,表示程序从SRAM运行:

14-pc.png

从SRAM运行您的程序时不会在下载程序或设置断点时消耗FLASH重写周期。但是,相对于FLASH模式,它具有某些缺点:包括所有代码和常量的整个程序都应该可以位于SRAM中,因此它可能不适用于大型程序。


17.    您可以使用View-> Embedded Memory Explorer查看具体函数的内存使用情况:

15-memexp.png

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 37 | 回复: 55



手机版|

GMT+8, 2024-4-26 03:17 , Processed in 0.058862 second(s), 13 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表