目录
一、换源
2.1简介
换源是因为使用Ubuntu的时候在升级时感觉很慢,这时候就需要换国内源
一般使用的是清华源(https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/)/阿里源( https://mirrors.aliyun.com/ubuntu/)
清华源(20.04.LTS)
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
2.2配置方法:
2.2.1图形界面配置
新手推荐使用图形界面配置: 系统设置 -> 软件和更新 选择下载服务器 ->
2.2.2手动更改
Ubuntu 的软件源配置文件是 /etc/apt/sources.list。
将系统自带的该文件做个备份sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
打开文件:
sudo gedit /etc/apt/sources.list
或者 sudo vi /etc/apt/sources.list
这里推荐用gedit工具,因为vim修改比较麻烦。
VIM步骤:i键插入->粘贴->ESC-> : wq
将上面内容替换原内容即可。
2.2.3 执行如下命令
更新源:
sudo apt-get update
更新软件列表:
sudo apt-get dist-upgrade
升级软件:
sudo apt-get upgrade
二、相关软件安装
2.1.1 VSCode
1、应用商店安装
2、安装包安装
进入VSCode官网https://code.visualstudio.com/下载deb包
或者用wget https://code.visualstudio.com/ deb包名称
cd /下载目录
——到存储deb包的文件夹下
sudo dpkg -i deb包名称
——安装
2.1.2 必备插件
Chinese simplified:简体汉化
ARM Assembly :汇编代码高亮显示
C/C++:用于提供高亮显示和代码补全
Cortex-Debug:用于提供调试配置
2.2 CubeMX
Keil不免费,而且bug多。STM32CubeMX就简单得多,图形化界面便于操作。而且对使用HAL库开发比较友好。
2.2.1 Java环境
输入 java -version
如下图所示则说明已经有Java环境了
否则输入 sudo apt install default-jre
进行安装
2.2.2 安装CubeMX
官网(https://www.st.com/zh/development-tools/stm32cubemx.html)下载
获取软件(需要接收协议,注册并登录)
右键解压,安装得到下图。双击STM32CubeMX即可运行
进入主界面->help
安装HAL库
2.3 arm-Linux-gcc交叉编译器
命令行下载:
sudo apt-get install gcc-arm-linux-gnueabi
官网下载:
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
也可以参考:
https://blog.csdn.net/u013491946/article/details/72782344
解压得到:
修改/etc/profile文件,再最后面添加export PATH=$PATH:+上面复制的绝对路径,目的是为了将交叉编译器的命令添加到全局变量
输入:
gedit /etc/profile
然后在文件的末尾添加以下语句:
export PATH=\$PATH:/usr/local/arm/bin
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/arm/lib
保存并退出之后,执行以下命令使环境变量生效:
source profile
在终端输入以下命令则可查看交叉编译工具的版本号:
arm-linux-gnueabihf-gcc -v
2.4 gdb server
1、下载gdb
wget下载
wget https://ftp.gnu.org/gnu/gdb/gdb-11.2.tar.xz
gdb官网下载: https://ftp.gnu.org/gnu/gdb/
解压
tar xvf gdb-11.2.tar.xz
Cd 进入解压文件夹
./configure
make
makeinstall
查看是否安装成功
arm-none-eabi-gdb -v
2.5 OpenOCD
安装OpenOCD需要提前安装库
输入以下代码
sudo apt-get install build-essential pkg-config autoconf automake libtool libusb-dev libusb-1.0-0-dev libhidapi-dev
sudo apt-get install libtool libsysfs-dev
输入命令:
git clone git://git.code.sf.net/p/openocd/code openocd
下载OpenOCD的源码
cd openocd #进入目录
./bootstrap #生成引导环境
./configure #生成配置如下图所示
注意看第二个ST-Link为yes。
编译安装
make
make install
出现错误可以在代码前加 sudo
最后查看是否安装成功:
openocd -version
显示版本号说明安装成功
2.6 STlink
首先需要安装依赖包:(已安装也最好敲一遍防止漏了)
sudo apt-get install libusb-1.0
sudo apt-get install cmake
sudo apt-get install libgtk-3-dev
使用git安装
git clone [https://github.com/texane/stlink stlink.git](https://github.com/texane/stlink%20stlink.git)
-进入安装目录
cd stlink.git
编译
make
make release
make debug
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
cd Release
sudo make install
sudo ldconfig
cd 到stlink目录
cd ../..
将文件49-stlinkv2.rules,拷贝到位置:/etc/udev/rules.d/
sudo cp stlink.git/config/udev/rules.d/49-stlinkv2.rules /etc/udev/rules.d/
重新导入规则:
sudo udevadm control --reload-rules
sudo udevadm trigger
将st-flash复制到/usr/bin下
sudo cp src/st-flash/\* /usr/bin
查看安装是否成功
sudo st-info --version
三、VSCode配置及调试
3.1 CubeMX生成Makefile文件
首先生成一个CubeMX工程
生成Makefile文件
3.2 VSCode配置
打开VSCode,点击文件,打开文件夹
选择包含刚刚CubeMX生成的makefile文件的目录
点击左侧资源管理器,可以看到导入的文件夹
点击右下角Linux,配置JSON文件
得到下图所示文件
打开资源管理器中的Makefile文件
将"defines"和"includePath"一一对应复制到c_cpp_properties.json中
注意格式!!!
下面需要修改的是compilerPath,这个需要arm-none-eabi-gcc的安装路径。其它默认即可。
“configurations”: [
{
“name”: “Linux”,
“includePath”: [
“
w
o
r
k
s
p
a
c
e
F
o
l
d
e
r
/
∗
∗
"
,
"
{workspaceFolder}/**", "
workspaceFolder/∗∗","{workspaceFolder}/Inc”,
“Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS”,
“Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3”,
“Drivers/CMSIS/Include”
],
“defines”: ["USE_HAL_DRIVER ",
“STM32F103xB”],
“compilerPath”: “/usr/local/arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc”,
“cStandard”: “gnu17”,
“cppStandard”: “gnu++14”,
“intelliSenseMode”: “linux-gcc-arm”
修改完保存。
注意不要直接复制粘贴,每一项都需要和自己安装的对应!
点击运行->添加配置
注意不要因为使用的是ST-Link,所以选择ST-Link,这里应该选择的是OpenOCD
选择ST-link会导致连接不上出现如下错误
点击后会生成如下代码
我们只需要修改下面两部分,分别是可执行文件和设置文件。
在左侧资源管理器中找到elf文件,如果没有build这个文件夹,点开下方终端,输入make
进行编译。
右键复制绝对路径(相对路径也可),粘贴到上面代码中
设置文件在/usr/local/share/openocd/scripts/interface和target中
将这两个文件地址粘贴到上面代码即可
注意:这里的ST-link是V2版本的,如果你用的是V2.1则选择stlink-v2-1.cfg
保存,点击终端,配置任务
进入task.json文件
将下面代码复制进去
点开main.c Shift+Ctrl+B
选择build进行编译
随后打开编译窗口或者快捷键F5开始调试。