步骤一:rt-thread 源码及编译
下载 rt-thread 国内镜像源码
git clone https://gitee.com/rtthread/rt-thread.git
sudo apt install scons
sudo apt install libncurses5-dev
解压 gcc-arm-none-eabi 工具链到指定目录:
进入 rt-thread/bsp/stm32/stm32f429-atk-apollo 目录,执行命令 scons --dist
,生成一个干净单一的 stm32f429 工程。将 rt-thread/bsp/stm32/stm32f429-atk-apollo/dist 目录下的 stm32 工程拷贝到你喜欢的地方。
进入刚刚拷贝的 stm32 工程里,编辑 rtconfig.py 文件。
将 gcc-arm-none-eabi 工具链的路径填入如下图相应的位置。
在拷贝的工程目录下输入 scons
命令即可编译 rt-thread 源码。
步骤二: openOCD 最新源码下载编译及安装
下载 openocd 在 github 上的最新镜像源码
git clone https://github.com/ntfreak/openocd.git
安装编译 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
编译安装
sudo ./bootstrap
sudo ./configure
sudo make
sudo make install
使用测试
openocd --version
sudo openocd -f /usr/local/share/openocd/scripts/interface/cmsis-dap.cfg -f /usr/local/share/openocd/scripts/target/stm32f4x.cfg
我使用的仿真器是 DAP ,目标开发板芯片是 STM32F429 。如果你使用的是其他仿真器以及目标芯片,只需将 cmsis-dap.cfg
, stm32f4x.cfg
替换即可。
上述步骤开启了 GDB 服务器,此时我们需要使用 telnet 登录到这个服务器,进行一些测试操作。
telnet localhost 4444
输入 halt 命令,芯片停止运行。
halt
输入 reset 命令,芯片复位重启。
reset
如果要烧录 bin 文件到目标芯片,先输入 halt
停止芯片,然后输入 flash write_image erase /home/tang/Desktop/stm32f429-atk-apollo/rtthread.bin 0x8000000
烧录 bin 文件到目标芯片,地址为 0x8000000。如下图所示:
flash write_image erase /home/tang/Desktop/stm32f429-atk-apollo/rtthread.bin 0x8000000
步骤三: ubuntu 下 vscode 单步调试 rt-thread 程序
进入用户主目录,编辑该目录下的 .profile 文件,将 gcc-arm-none-eabi 工具链 的路径添加到环境变量中。
在 .profile 文件末尾加上 export PATH=/home/tang/toolchain/gcc-arm-none-eabi-8-2019-q3-update/bin:$PATH
输入命令 soruce ~/.profile
使刚刚配置的环境变量生效。
进入我们先前拷贝的 stm32 工程目录,输入 scons –target=vsc 命令生成,vscode 的文件索引。
scons --target=vsc -s
输入 code ./ 命令打开 vscode 。
code ./
给 vscode 添加任务
编辑 task.json 文件,添加如下三个任务:
- openocd server:用于开启 openocd GDB 服务器。
- rebuild:用于重新编译工程。
- build:用于编译工程。
task.json 文件内容如下:
1 | { |
为 vscode 添加 Debug 配置
编辑 launch.json 文件, 需要注意修改的地方如下图红框框所示:
launch.json 文件内容如下:
1 | { |
最后一步
在 vscode 界面下,按 F1 键,输入 Tasks: Run Task
回车。
上下键选择 build 编译工程。
上下键选择 openocd server 启动 openocd 服务器。
输入 sudo 密码
按 F5 键 或如下图所示,启动调试。
开启调试
动图显示