文章目录
开发环境搭建
适用人群
- 不喜欢keil古老的图形界面,想使用现代化的IDE
- 不想继续使用盗版的keil软件
- 想学习使用make,gdb这些工具去编译,调试代码
- 想尝试linux环境下开发但是又不想去折腾虚拟机
如果你有上述的一些需求,那么就请继续往下阅读吧!
所需工具介绍
本文使用的工具均在software/
目录下提供,可以在这里进行下载,如果需要其它不同版本的软件,也可以去各自官网下载安装。
- Vscode:一款由微软开发且跨平台的免费源代码编辑器,通过内置的扩展程序商店安装插件以拓展软件功能。
- WSL:Windows Subsystem for Linux,WSL是Windows系统对Linux内核的支持,在wsl中可以安装linux操作系统,比如ubuntu、centos等。
- Cortex-debug : Vscode中用于调试Arm Cortex-M微控制器的插件。支持Jlink,OpenOCD GDB Server, pyOCD等,如果读者能使用gdb命令行调试芯片,那可不用这个插件。
- make:可以读取一系列包含指令的文件,按照文件中的指令选择合适的工具对源代码进行编译链接出可执行文件。
- gcc-arm-none-eabi : 面向裸机arm的开发工具链,包含编译,链接,调试等工具。
编译环境搭建
安装WSL
-
在windows中找到
启用或关闭Windows功能
-
点击进入,勾选下方框中的
适用于Linux的Windows子系统
-
重启电脑后,打开powershell,输入
wsl --help
,当出现下方内容时,说明wsl安装成功
导入Ubuntu
- 找到文件
software/Ubuntu_2004.2020.424.0_x64.appx
,在该路径下敲击Ctrl+shift+右键
打开powershell,输入Add-AppxPackage .\Ubuntu_2004.2020.424.0_x64.appx
,等待该命令结束即可。
2.点击Win
键,在左上方会出现刚才导入的Ubuntu,点击进入,根据提示,等待几分钟Ubuntu便会安装完成
3.在桌面位置点击Ctrl+shift+右键
,点击打开linux shell,第一次进入会要求输入用户名以及密码,按照个人喜好输入即可
至此,windows上的linux子系统就已安装完成!
安装Make
- 按照上方的方式打开Linux shell
- 输入
sudo apt-get update
,更新软件包管理工具 - 输入
sudo apt install make
,安装make工具 - 输入
make -v
,当出现如下内容时,证明安装成功
安装gcc-arm-none-eabi工具链
-
打开linux shell,在
/opt/
下创建文件夹Gnu_arm
,将windows的文件software/gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2
拷贝到/opt/Gnu_arm/
目录下并解压(如果不知道怎么拷贝和解压的同学,可以去查查linux的命令cp
,tar
) -
红色框中的内容即为我们需要的工具链,用于后续的编译,链接,调试等
添加环境路径
- 打开linux shell,输入
echo $PATH
,发现路径中关联了windows的系统路径,为了避免windows的路径对wsl的影响,需要在wsl中排除windows的路径。 - 输入
sudo vim /etc/wsl.conf
,在文件中加入下列内容,然后关闭保存
[interop]
appendWindowsPath = false
- 为了使上面的配置生效,需要终结当前的wsl,在power shell中输入
wsl -t Ubuntu-20.04
, 然后重新打开linux shell,则会发现不再包含windows的系统路径 - 言归正传,之前提到gcc-arm的工具命令已经解压到
/opt/Gnu_arm/gcc-arm-none-eabi-10.3-2021.07/bin/
路径下了,但是现在还没办法在其它路径直接使用工具链提供的命令,因此需要将该路径添加到环境路径 - 在linux shell下输入
vim ~/.bashrc
,在文件末尾添加如下内容
export PATH="$PATH:/opt/Gnu_arm/gcc-arm-none-eabi-10.3-2021.07/bin/"
- 保存.bashrc文件以后,输入
source ~/.bashrc
,然后输入arm-none-eabi-gcc -v
,当出现以下内容时,说明路径已成功添加
至此,编译环境已配置完毕!
调试环境搭建
Vscode安装
- 找到文件
software/VSCodeUserSetup-x64-1.56.2.exe
,双击安装即可,在此不过多赘述 - 为了让Vscode与WSL联系起来,咱还得装一个Vscode插件,如下图
拥有这个插件之后,就可以不用之前那个稍微有点丑的linux shell了,可以直接用vscode的terminal在linux中进行操作。
Jlink安装
找到文件software/JLink_Windows_V758_x86_64.exe
,双击安装即可,不过得记住安装的路径,比如我就是安装在路径D:\App\Jlink7_58\
下,这个路径后文还会用上。
至此,调试环境也配置完成!
STM32编译调试演示
可能还有一部分同学还不清楚怎么去构建stm32的makefile工程,这里就使用stm32cubemx一键构建工程,后续想学习makefile的同学也可以根据这个工程去学习相关的语法。
关于stm32cubemx在这里就不做过多介绍了,在生成工程的时候选择Makefile就行。得到的工程如下
将这个工程拷贝到wsl的目录下,比如用户目录下,
在该目录下打开Vscode Terminal,输入make,即可编译出文件./build/test_gcc.elf
,这就是我们所需要的可执行文件。
找到之前我们安装好的Jlink目录,找到JlinkGDBServer.exe,双击打开
在与芯片连接好Jlink的情况下,选择对应的芯片型号,如下图
点击ok即可,在打开的stm32工程shell下,输入
arm-none-eabi-gdb ./build/test_gcc.elf
即可正常进入GDB的调试界面!
加速
- 在wsl中给apt设置代理
sudo vim /etc/apt/apt.conf.d/10proxy #这个文件正常不存在,新建一个
#编辑内容为:
Acquire::http::Proxy "http://127.0.0.1:7890";
- 给git设置代理
# 设置代理
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy https://127.0.0.1:78790
#取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
- pip设置镜像
# 设置使用清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple