[开发工具]

雅特力AT32 MCU在VSCode(Visual Studio Code)环境上进行开发

[复制链接]
3666|36
手机看帖
扫描二维码
随时随地手机跟帖
muyichuan2012|  楼主 | 2022-5-16 11:32 | 显示全部楼层 |阅读模式
本帖最后由 muyichuan2012 于 2022-11-9 16:17 编辑

雅特力AT32 MCU在 VSCode环境上进行开发

日期                 版本               变更
2022.5.12         2.0.0              最初版本
2022.5.27         2.0.1              1.OpenOCD进版到V2.0.2         
                                            2.template增加at32wb415支持
2022.10.17        2.0.2              修正gcc编译器printf无法打印问题
2022.11.08        2.0.3              增加linux环境下使用方法


前言
本使用指南描述了使用VSCode开发、编译、下载、调试AT32 MCU的解决方法,支持AT32F全系列
芯片。
支持型号列表:
支持型号 AT32F 系列


目录
概述 ....................................... 6
VSCode 安装 ................................ 6
交叉编译工具链与MinGW 安装 ..... 6
交叉编译工具链安装 ................. 6
MinGW 安装 ............................. 7
Openocd 使用 ............................ 7
环境变量配置 ......................... 7
Template 使用 ........................... 9
硬件环境 ................................... 9
工程导入 .................................. 9
配置修改 ................................ 10
工程使用 ................................. 11
IC 型号修改 ............................. 13
Makefile 文件修改 ........................... 13
c_cpp_properties.json 脚本修改 ......... 13
版本历史 ..................................... 14


1    概述
VSCode(全称:Visual Studio Code)是一款由微软开发且跨平台的免费源代码编辑器。该软件支
持语法高亮、代码自动补全(又称IntelliSense)、代码重构、查看定义功能,并且内置命令行工具
和Git版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的插件安
装功能扩展软件功能。在2019年的Stack Overflow组织的开发者调查中,Visual Studio Code被认为
是最受开发者欢迎的开发环境。
VSCode因为其轻量化、丰富的插件以及炫酷的界面等优点,当前成为了开发者热捧的开发工具。
AT32提供在VSCode下开发、编译、下载、调试解决方法。只需安装所需要的软件工具并简单配置
即可使用。本指南所使用的所有软件,目前都是开源的。


2    软件安装
2.1 VSCode 安装
VSCode 是微软开发的代码编辑器软件,可免费下载和使用,登录VSCode 官网即可下载安装文件,
注意在windows 环境下需要下载对应的版本。
图1. VSCode 官方下载

590986281c2a5c930d.png
下载安装后打开VSCode 界面如下图所示
图2. VSCode 界面

835926281c2b6f3d98.png
注意安装完成后需要将VSCode 安装路径加入到环境变量中,后续使用会更加方便。上图中的红色框
内为安装的插件,C/C++和Cortex-debug 必须安装,其他可选择性安装即可。

2.2    交叉编译工具链与MinGW 安装
本小节说明如何安装arm 交叉编译工具链和MinGW,以及openocd 的使用。
2.2.1  交叉编译工具链安装
为了能使在windows平台下编译的代码在AT32 MCU上运行,需要安装ARM提供的交叉编译工具链。

在本文档配套的代码包内可找到此软件(gcc-arm-none-eabi-10.3-2021.10-win32.exe),然后双击运行
安装即可。
注意安装完成后需要添加系统环境变量。

2.2.2MinGW 安装
MinGW是Minimalist GNU for windows的缩写。它是可以自由使用自由发布的windows特定头文件和
使用GNU工具集导入库的集合,可在windows平台生成本地的windows程序。其包括GCC编译器,所
以本应用所使用的编译器为GCC。
在本文档配套的代码包内可找到此软件(mingw-get-setup.exe),双击运行即可安装。需要注意安装完
成后需要添加系统环境变量。
图3. MinGW 设置
927166281c2f1b981a.png
2.3    Openocd 使用
Openocd可执行文件由雅特力提供,在本文档配套的代码包内可找到。使用时只需将其添加到系统环
境变量即可,无需其他安装与配置。
2.4  环境变量配置
在系统中搜索“环境变量”,进入环境变量配置界面,确保前面所安装的软件都已添加到环境变量中;
例如如下所示:

图4. 环境变量设置
3416281c34013e23.png
上图为笔者系统下软件安装路径和环境变量配置,可作为参考。
需要特别注意,如若环境变量安装路径不对,会导致VSCode编译下载代码等出错。

3    Template 使用
3.1  硬件环境
对应AT-START-BOARD搭配AT-Link
3.2  工程导入
代码包内模板工程如下:
图5. 模板工程

281706281c365a0770.png


如若环境安装正确,下面只需要将本文档配套的代码包内的模板工程文件夹使用VSCode打开即可。
打开后工程目录如下所示:

图6. 工程目录结构
255256281c3f0177a6.png
Libraries:主要存放artery芯片库文件;
Project:工程相关配置文件以及用户代码;
Makefile:编译器需要使用;
.vscode:工程配置脚本。
3.3    配置修改
由于环境不同,软件安装的路径存在差异,所以需要进行环境适配。只需修改.vscode目录下的3个配
置脚本即可。
1. c_cpp_properties.json脚本修改
图7. c_cpp_properties.json 脚本

933646281c40715d08.png
上图中框起来的路径需要根据实际路径进行修改。
2. launch.json脚本修改
图8. launch.json 脚本
207796281c42688f33.png
上图中框起来的路径需要根据实际路径进行修改。
3. tasks.json脚本修改
AT32 MCU Develop with VSCode
2022.5.12 第11 页 版本2.0.0
图9. tasks.json 脚本
101946281c43163eb7.png
上图中框起来的路径需要根据实际路径进行修改。

上图中框起来的路径需要根据实际路径进行修改。
3.4    工程使用
通过以上配置,现在可以使用VSCode开发、编译、下载、调试AT32 MCU了。
点击VSCode菜单栏TerminalRun Task会出现如下界面:
图10. 编译、下载和清除

818886281c44510221.png
界面有clean、download code和build,点击这三个按钮分别执行如下操作:
Build:编译代码;
Clean:删除编译产生的文件;
download code:下载代码到目标板。
编译下载代码后,点击VSCode菜单栏RunStart Debugging即可进入调试状态:
AT32 MCU Develop with VSCode
2022.5.12 第12 页 版本2.0.0
图11. 调试界面
872676281c453a8544.png
进入调试界面后可进行单步执行等操作,也可查看外设寄存器值、变量值等操作。

4    IC 型号修改
Template工程为各系列中单一型号,如果使用到其他型号需要按照如下步骤修改即可。
4.1  Makefile 文件修改
Makefile文件如下红框内容需根据实际型号进行修改
图12. Makefile 修改
774676281c47b3a4ff.png
.ld文件可在artery BSP内获取,路径如下:
AT32F435_437_Firmware_Library_V2.x.x\libraries\cmsis\cm4\device_support\startup\gcc\linker
理论上修改完makefile文件就可以顺利编译下载调试代码了,但在VSCode上阅读代码时会出现波浪
线等警告提示,这是因为VSCode解释代码关系出错,还需要修改一下c_cpp_properties.json脚本
4.2  c_cpp_properties.json 脚本修改
文件如下红框内容需根据实际型号进行修改:
图13. c_cpp_propertie 修改

959066281c481e60d2.png

AN0130_AT32_MCU_Develop_With_VSCode_V2.0.3.part04.rar

45 MB

AN0130_AT32_MCU_Develop_With_VSCode_V2.0.3.part05.rar

45 MB

AN0130_AT32_MCU_Develop_With_VSCode_V2.0.3.part06.rar

45 MB

AN0130_AT32_MCU_Develop_With_VSCode_V2.0.3.part07.rar

45 MB

AN0130_AT32_MCU_Develop_With_VSCode_V2.0.3.part08.rar

7.64 MB

AN0130_AT32_MCU_Develop_With_VSCode_V2.0.3.part03.rar

45 MB

AN0130_AT32_MCU_Develop_With_VSCode_V2.0.3.part02.rar

45 MB

AN0130_AT32_MCU_Develop_With_VSCode_V2.0.3.part01.rar

45 MB

AN0130_AT32_MCU_Develop_With_VSCode_ZH_V2.0.3.pdf

1.52 MB

使用特权

评论回复
评论
airpumpkin 2022-5-18 15:35 回复TA
安装MinGW是为了里面的make,其实直接用xpack的windows-build-tools也可以 https://xpack.github.io/windows-build-tools/ 
海滨消消| | 2022-5-16 15:19 | 显示全部楼层
只需安装所需要的软件工具并简单配置 即可使用,挺不错的

使用特权

评论回复
nw183| | 2022-5-17 10:12 | 显示全部楼层
这种是还差什么文件吗
错误提示.jpg

使用特权

评论回复
tanleitanlei| | 2022-5-17 10:46 | 显示全部楼层
nw183 发表于 2022-5-17 10:12
这种是还差什么文件吗

有编译生成elf文件吗?

使用特权

评论回复
nw183| | 2022-5-17 11:34 | 显示全部楼层
tanleitanlei 发表于 2022-5-17 10:46
有编译生成elf文件吗?

我是直接按了F5,没有bulid,应该是这里的问题,另外这里这个软件安装之后没找到对应的.exe,这里是什么问题呢
调试.jpg

使用特权

评论回复
tanleitanlei| | 2022-5-17 12:59 | 显示全部楼层
nw183 发表于 2022-5-17 11:34
我是直接按了F5,没有bulid,应该是这里的问题,另外这里这个软件安装之后没找到对应的.exe,这里是什么问 ...

安装有链接网络吗?

使用特权

评论回复
tanleitanlei| | 2022-5-17 13:23 | 显示全部楼层
本帖最后由 tanleitanlei 于 2022-5-17 13:24 编辑
nw183 发表于 2022-5-17 11:34
我是直接按了F5,没有bulid,应该是这里的问题,另外这里这个软件安装之后没找到对应的.exe,这里是什么问 ..
这个地方有选择吗?建议百度一下minGW如何安装
捕获.PNG

使用特权

评论回复
ABCDEFG1234| | 2022-5-17 16:46 | 显示全部楼层
请问在哪里可以购买到AT32F407的开发板啊?

使用特权

评论回复
zylhaha| | 2022-5-17 17:50 | 显示全部楼层
8619362836fbf2ad15.png 这个是什么原因

使用特权

评论回复
tanleitanlei| | 2022-5-17 19:02 | 显示全部楼层
zylhaha 发表于 2022-5-17 17:50
这个是什么原因

有正确安装文档中提到的软件吗?还有就是添加环境变量。根据文档一步一步来即可

使用特权

评论回复
zylhaha| | 2022-5-18 11:28 | 显示全部楼层
tanleitanlei 发表于 2022-5-17 19:02
有正确安装文档中提到的软件吗?还有就是添加环境变量。根据文档一步一步来即可 ...

确实是根据文档来的,重启解决了上一个问题。但是又有了新的问题。 50240628467cc6440b.png

使用特权

评论回复
tanleitanlei| | 2022-5-18 11:39 | 显示全部楼层
zylhaha 发表于 2022-5-18 11:28
确实是根据文档来的,重启解决了上一个问题。但是又有了新的问题。

检查一下,launch和task脚本文件里面openocd的路径是否正确,要和openocd本地路径对应

使用特权

评论回复
trucyw| | 2022-5-18 20:04 | 显示全部楼层
> Executing task: make clean <

rd /s /q build
系统找不到指定的文件。
Makefile:189: recipe for target 'clean' failed
make: [clean] Error 2 (ignored)
这是什么原因

使用特权

评论回复
trucyw| | 2022-5-18 20:18 | 显示全部楼层
c:/mingw/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: build/at32f403a_407_crc.o: error adding symbols: no error
collect2.exe: error: ld returned 1 exit status
Makefile:173: recipe for target 'build/at32f407_template.elf' failed
make: *** [build/at32f407_template.elf] Error 1

使用特权

评论回复
tanleitanlei| | 2022-5-19 09:13 | 显示全部楼层
trucyw 发表于 2022-5-18 20:04
> Executing task: make clean <

rd /s /q build

看起来提示说找不到build文件,有编译吗??不编译是没有build文件夹的

使用特权

评论回复
tanleitanlei| | 2022-5-19 09:21 | 显示全部楼层
trucyw 发表于 2022-5-18 20:18
c:/mingw/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: build/ ...

提示这个文件at32f403a_407_crc.o添加错误,检查一下库里有没有这个文件,或者将makefile里面添加这个文件的代码屏蔽掉再make一下试试

使用特权

评论回复
trucyw| | 2022-5-19 13:20 | 显示全部楼层
tanleitanlei 发表于 2022-5-19 09:13
看起来提示说找不到build文件,有编译吗??不编译是没有build文件夹的

电脑系统问题
更换电脑就可以了

使用特权

评论回复
trucyw| | 2022-5-19 13:27 | 显示全部楼层
tanleitanlei 发表于 2022-5-19 09:21
提示这个文件at32f403a_407_crc.o添加错误,检查一下库里有没有这个文件,或者将makefile里面添加这个文 ...

电脑部分软件不能使用

使用特权

评论回复
trucyw| | 2022-5-22 11:13 | 显示全部楼层
怎么设置串口打印,谢谢

使用特权

评论回复
评论
tanleitanlei 2022-5-23 09:10 回复TA
可参考BSP内串口printf例程 
15373858283| | 2022-5-24 16:49 | 显示全部楼层
本帖最后由 15373858283 于 2022-5-24 17:42 编辑

正好要转AT32,Keil实在是用不习惯,Code挺好
不过貌似不行啊,应该是按教程一步一般设的
没有找到make.exe吗?
路径设置里面好像确实没有设MinGW的路径
> Executing task: make -j4 <

arm-none-eabi-gcc -c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard
-DAT_START_F413_V1 -DAT32F413RCT7 -DUSE_STDPERIPH_DRIVER -I./project/inc -I./project/board -I./libraries/cmsis/cm4/core_support -I./libraries/cmsis/cm4/device_support -I./libraries/drivers/inc -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MF"build/main.d" -Wa,-a,-ad,-alms=build/main.lst ./project/src/main.c -o build/main.o
process_begin: CreateProcess(NULL, arm-none-eabi-gcc -c -mcpu=cortex-m4 -mthumb
-mfpu=fpv4-sp-d16 -mfloat-abi=hard -DAT_START_F413_V1 -DAT32F413RCT7 -DUSE_STDPERIPH_DRIVER -I./project/inc -I./project/board -I./libraries/cmsis/cm4/core_support -I./libraries/cmsis/cm4/device_support -I./libraries/drivers/inc -Og -Wall -fdata-sections -ffunction-sections -g -gdwarf-2 -MMD -MP -MFbuild/main.d -Wa,-a,-ad,-alms=build/main.lst ./project/src/main.c -o build/main.o, ...) failed.      
make (e=2): 系统找不到指定的文件。
make: *** [Makefile:163: build/main.o] Error 2
终端进程“C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -Command make -j4”已终止,退出代码: 1。

终端将被任务重用,按任意键关闭。


使用特权

评论回复
评论
tanleitanlei 2022-5-25 14:58 回复TA
提示找不到main文件,是使用提供的template工程吗?或者有没有改动模板工程,按理不会出现找不到main文件的情况 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则