赞
踩
ARM开发环境众多,比较常用的有keil、IAR、STM32CubeIDE、RT-Thread Studio等等。本人之前使用较多的是KEIL5,原因大概就是大学用的KEILC51对KEIL的界面比较熟悉上手难度低,加上项目基本都是windows环境上的开发,故一直使用KEIL。但KEIL被人诟病的语法补全功能、没有跨平台能力和界面不美观,都是其缺点。(虽然keil stutio正在研发中,预计明年初会出来,界面有了很大的改观。)
vscode这个软件最近很火,因为好用加上大量插件可以优化开发。其跨平台的特性可以在Linux和MAC上都可以运行。
我们写的C语言怎么变成机器能运行的代码?经历了预编译、编译、汇编、链接四个过程。
Visual Studio Code
Visual Studio Code (简称 VSCode / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、Git 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及 Linux,运行流畅,可谓是微软的良心之作……
STM32Cube
主要生成工程和Makefile文件。
上述两件套玩嵌入式的一般都有。安装也比较方便没有过多下一步,故不再赘述。以下四件套这里也有一份打包好的也可以去官网下载。
MSYS2
其作用是用来继承Windows的环境变量
默认安装msys2,并编辑msys2_shell.cmd修改到和框框中一样。
GCC编译器
其主要作用是用来编译我们写的代码。
默认下一步安装,然后需要配置环境变量。若默认安装将以下路径添加到系统环境变量
C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2021.07\bin
win+R打开cmd输入以下命令arm-none-eabi-gcc -v
查看是否配置正确,若出现以下提示则配置正确:
MAKE
make 是一个命令工具,它解释 Makefile 中的规则。在 Makefile 文件中描述了整个工程所有文件的编译顺序、编译规则。
若是默认安装将C:\Program Files (x86)\GnuWin32\bin
添加到电脑的环境变量。win+R打开cmd输入以下命令make -v
查看是否配置正确,若出现以下提示则配置正确:
OpenOCD
OpenOCD是一个运行于PC上的开源调试软件,它可以控制包括Stlink等很多JTAG硬件;我们可以将它理解为一种GDB服务程序。
将压缩包解压到硬盘上一个位置X:\xxxxxx\Openocd\OpenOCD-20210729-0.11.0\bin
,将解压出来的bin文件夹添加到环境变量。win+R打开cmd输入以下命令opencbd -v
查看是否配置正确,若出现以下提示则配置正确:
使用STM32CobeMX工具选择对应工程,配置一个方便测量的io引脚,切记需要把Debug引脚设置成SW模式,否则烧写一次会出现无法调试的问题。
工程文件设置成输出Makefile,然后点击Generate code生成工程文件
1、在vscode的插件中下载安装C/C++,GBD调试插件。
ctrl+shift+p配置launch.json文件需要注意有注释出需要根据实际位置配置
{ "version": "0.2.0", "configurations": [ { "name": "ARM Debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/${workspaceRootFolderName}.elf", "cwd": "${workspaceFolder}", "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.07/bin/arm-none-eabi-gdb.exe", //交叉编译工具链地址 "setupCommands": [ { "text": "file E:/STM32test/build/STM32test.elf", //工程使用绝对地址 }, { "text": "target remote localhost:3333", //调试器端口号,默认是3333等下可以通过指令看到 }, { "text": "monitor reset", }, { "text": "monitor halt", }, { "text": "load" , } ], "preLaunchTask": "build" } ] }
1、ctrl+shift+p打开命令面板。
2、搜索tasks。
3、点配置任务。
4、选择工程文件夹,选择Others
然后在打开的tasks.json中复制下图代码
//tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "echo compile exeover&make -j4"
}
]
}
{
"terminal.integrated.shell.windows":"C:/msys64/msys2_shell.cmd", //根据实际位置添加
"terminal.integrated.shellArgs.windows": ["-defterm", "-mingw32", "-no-start", "-here"],
}
在工程目录下和Makefile同级目录下新建一个文件,重命名至OcdStm32.cfg
添加代码如下:
interface stlink-v2 #调试器的名字
transport select swd #接口名,swd或jtag
source [find target/stm32f1x.cfg] #芯片类型,在\OpenOCD-20210729-0.11.0\share\openocd\scripts\target里找
在终端中输入openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg
可以看到打开的端口号为3333,与launch.json中间配置的一致
然后按开始按钮就可以调试了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。