20190304 Ubuntu系统下STM32编译、调试环境搭建


Ubuntu系统下STM32编译、调试环境搭建

最近正在学习怎么在Ubuntu下开发stm32的程序,参考了一些资料,写下这篇博客。

本方案采用以下开发环境配置:
OS:Ubuntu
STM32库:libopencm3
编译器:gcc-arm-none-eabi
调试工具:gdb-arm-none-eabi
调试器:J-Link
编辑器:VSCODE

一、需要的工具下载

Ubuntu系统下可以使用apt安装编译器和调试工具。

sudo apt install arm-none-eabi-gcc arm-none-eabi-gdb

可能需要更新更新源。安装arm-none-eabi-gdb时似乎会出现和系统原有gdb冲突的问题,看参考链接。
调试器的驱动或者工具可以去J-Link的官网下载,选择合适的版本安装即可。

https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack

安装完成J-Link的工具后,可以尝试连接一下单片机,看看

libopencm3可在Github上下载。推荐下载提供的模板。

git clone https://github.com/libopencm3/libopencm3-template.git your-project
cd your-project
make -C libopencm3 #(编译libopencm3)

libopencm3有一些例子,可参考项目libopencm3-examples。

二、配置Makefile文件和VSCODE

模板中有一个放置源文件的目录,my-project,需要修改里面的makefile中的device参数。OOCD是OpenOCD,一种和调试器连接的软件,这里使用Segger官网的软件,因此不用修改。

CFILES、AFILES表示需要编译的C文件和汇编文件,删掉,改成自己的就好。比如,建立一个main.c文件,里面有一个空的main函数(感觉有种仪式感,可以开始复制粘贴examples里的代码了)。顺便,修改PROJECT为自己的项目名称,更有仪式感了。

编译命令:

# 在my-project目录下执行
make                   #生成全部
make clean      #清除文件

VSCODE下建议安装插件C/C++(代码提示)和Cortex-Debug(辅助调试插件)。

在调试菜单下,选择添加配置,选择Cortex-debug,修改配置信息。主要修改:servertype(jlink),interface(接口,swd),devece(设备,具体型号),以及executable(提供给gdb识别的含有调试信息的elf文件)。preLaunchTask表示调试前需要进行的任务,这里使用生成任务build。在终端菜单下,选择配置默认生成任务,运行外部程序(实际上就是让VSCODE帮我们输入make -C ...)。

调试配置文件launch.json如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Cortex Debug",
            "cwd": "${workspaceRoot}",
            "executable": "./my-project/stm32prj.elf",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "jlink",
            "device": "stm32f103vb",
            "interface": "swd",
            "preLaunchTask": "build"
        }
    ]
}

生成任务文件tasks.json如下:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "make -C my-project"
        }
    ]
}

参考链接:

  1. https://blog.csdn.net/zjx923759789/article/details/84844091
  2. https://www.cnblogs.com/amanlikethis/p/3803736.html
  3. https://blog.csdn.net/yazhouren/article/details/78228166
  4. https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM