[原创] 【STM32F769评测工具篇二】--VisualStudio+CUBEMX+VisualGDB开发STM32

DavidZH   2016-12-13 13:02 楼主
         VisualStudio 是微软的开发各种软件的利器,结合强大的代码提示功能的Visual AssistX, 比Eclispe for C++代码提示强大,能极大的提高开发的效率,个人很喜欢用Visual Studio,下面就来介绍采用VisualStudio 结合Visual GDB和CUBEMX 来开发STM32程序;
       准备软件:
       1、Visual Studio Community;(编辑代码)
       2、Visual GDB; (代码调试)
       3、Visual AssistX;(代码提示)
下载地址如下:
       https://www.visualstudio.com/zh-hans/downloads/  
WIN.png
    http://visualgdb.com/download/
GDB.png
     http://www.wholetomato.com/
ASSX.png
以上软件安装NEXT 到Finish 一路完成;
     本地需要准备的软件:http://visualgdb.com/hwsupport/
     1、Board Support Packages (BSPs)---所支持的芯片类型;
STM.png
      2、Embedded Debug Method Packages (EDPs)---调试工具;
EDPS.png
     3、Arm-eabi-gcc6.2.0-r3 编译工具    http://gnutoolchains.com/download/
EABI.png
以上工作准备好,然后就可以按照继续下面的配置工作;


配置Visual Studio :
      1、打开VS2015, 工具---Embeded Tools Manager
VS0A1.jpg
本地安装相应的文件,包括
ToolChains:  Arm-eabi-gcc6.2.0-r3  的安装路径;
Board Support Packages (BSPs)---支持的芯片;
Embedded Debug Method Packages --调试工具;
VS0A.bmp
以上VS的配置就完成了;

STM32CUBEMX 工程生成:
采用STM32CUBEMX生成工程时候,选择生成工程的文件为SW4STM32,其他配置一样;
SC.jpg


CUBEMX 工程导入到VS中:
1、打来VS, 新建-VSGDB-Embeded Project Wizard
VS0B.bmp
导入文件,不要选择Copy imported files to project,,主要是保证CUBEMX生成的工程不变;
VS0B-01.bmp
选择芯片类型-STM32F769NI
vs0b-2.bmp
选择CUBEMX生成的工程路径:
VS0C.bmp
选择编译工具,我现在的是OpenOCD,里面还有STLINK 调试;
vs0c-02.bmp
然后点击Finish就可以了,此时VS的配置完成了一半;

对Visual GDB进行配置:
         在工程上,右键--Visual GDB Projet Properties
vs0e.jpg
      在Embeded Frameworks 中所有都取消,因为已经用CUBEMX生成了,不再用Visual GDB自带HAL 库了;
vs08.bmp
Making File Setting中添加宏(宏之间用空格隔开),添加CUBMX生成的工程中的头文件;
1.png
然后整个工程就配置完成了;

编译和调试:
1、打开工程,main.c 然后Ctrl+Shift+B,生成;显示成功1个,失败0 个,说明编译成功;
ck.bmp
   2、添加代码:(VS强大的代码显示功能)
ZD.jpg
点灯效果:
GPIO_InitTypeDef myLED;
        __HAL_RCC_GPIOJ_CLK_ENABLE();
         myLED.Pin = GPIO_PIN_13 | GPIO_PIN_5;
        myLED.Mode = GPIO_MODE_OUTPUT_PP;
        myLED.Speed = GPIO_SPEED_FAST;
               
        HAL_GPIO_Init(GPIOJ, &myLED);


while (1)
  {
          HAL_GPIO_WritePin(GPIOJ, GPIO_PIN_13 | GPIO_PIN_5, GPIO_PIN_SET);
          HAL_Delay(800);
          HAL_GPIO_WritePin(GPIOJ, GPIO_PIN_13 | GPIO_PIN_5, GPIO_PIN_RESET);
          HAL_Delay(800);
  }
效果:
11.gif

资源地址:链接:http://pan.baidu.com/s/1cwz9gi 密码:q3av



点击此处,查看STM32F769I开发板官方资源。
  • VS0A1.jpg

回复评论 (17)

学习了,不错,不错!
水不撩不知深浅 人不拼怎知输赢
点赞  2016-12-14 07:52
涨知识了,谢谢分享~
点赞  2016-12-14 09:53
visual gdb和board support文件可以在网盘上分享吗?链接打不开,我这边没有翻墙
点赞  2016-12-14 10:03
请问一下
调试时,有外设寄存器列表吗?
要666
点赞  2016-12-14 10:09
引用: wspytu 发表于 2016-12-14 09:53
涨知识了,谢谢分享~

等我传上去
点赞  2016-12-14 12:04
1.VS有自己的IntellSense为什么还用Visual Assist呢?
2.调试为什么选OpenOCD而不是ST-LINK,前者包含后者?
3.visualGDB及Visual Assist都不是免费的,用ARM-EABI GCC编译出的代码大小和MDK-ARM谁的大(同工程的话)?
谢谢!
点赞  2016-12-14 12:52
引用: moyanming2013 发表于 2016-12-14 12:52 1.VS有自己的IntellSense为什么还用Visual Assist呢? 2.调试为什么选OpenOCD而不是ST-LINK,前者包含后者 ...
1、都可以用,不过以前习惯了,个人选择; 2、OPEND OCD的调试方式包含了ST_LINK,还有其他的; 3、见下图: EK.png MK.bmp EK.bmp 本帖最后由 DavidZH 于 2016-12-14 18:00 编辑
点赞  2016-12-14 17:50
引用: DavidZH 发表于 2016-12-14 17:50
1、都可以用,不过以前习惯了,个人选择;
2、OPEND OCD的调试方式包含了ST_LINK,还有其他的;
3、见 ...

第1张看不清,后2张用elf和axf还没有对比性,能都做成bin或hex最好了。
但感觉显然gcc的远远大于mdk-arm的。
点赞  2016-12-14 20:21
谢谢分享!
点赞  2016-12-15 10:21
点赞  2016-12-15 10:37
引用: moyanming2013 发表于 2016-12-14 20:21
第1张看不清,后2张用elf和axf还没有对比性,能都做成bin或hex最好了。
但感觉显然gcc的远远大于mdk-arm ...

第一张已经重新更新;
elf.png
点赞  2016-12-15 11:13
引用: DavidZH 发表于 2016-12-15 11:13
第一张已经重新更新;

还是觉得MDK-ARM下的最小。
另外eclipse用的和vs下的工具应该一样吧?但2者相差还比较大啊
点赞  2016-12-15 12:25
不错,我也是习惯用VS+Visual AssistX来写代码,很舒服,效率高,编译调试仍旧是用MDK5
如果天空是黑暗的,那就摸黑生存;如果发出声音是危险的,那就保持沉默...但不要习惯了黑暗就为黑暗辩护;不要为自己的苟且而得意;不要嘲讽那些比自己更勇敢热情的人们。人可以卑微如尘土,不可扭曲如蛆虫。
点赞  2016-12-17 11:19
生成总是出错,Inc那步头文件我没看懂 ,大神留个qq行吗 帮帮我 求你了
点赞  2017-5-23 20:15
我编译成功了,但是下载或者调试一直失败。
Test OpenOCD settings

Program and start without debugging
点赞  2017-9-23 14:32
只可惜,工具不是免费的
点赞  2017-9-28 16:28
您好,我在配置Visual Studio :时,工具栏里没有Embeded Tools Manager,
请问这是什么情况,百度也没找到,文档也没找到。
升级VS2017也没有Embeded Tools Manager选项。
点赞  2018-3-6 13:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复