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