大致介紹#
EIDE 是一個 VSCode 插件,用來開發單片機專案,比如:是一个 VSCode 插件,用來開發單片機專案,比如:8051
, stm8
, stm32
, other cortex-m mcus
... ...
推薦 EIDE 做 keil 工程的後續應用開發,開板子開外設還是在 keil 中完成,畢竟是官方的,放心。同時 stm32cubemx 生成 keil 工程也是非常方便的,初探索外設還是 keil 進行好一些。
為什麼選擇 EIDE 而不是 PlatformIO IDE?#
最重要的是 EIDE 可以無縫導入 keil 工程!使得原本穩定的專案不必再驗證,EIDE 支持 keil 唯一值錢的組件 ——AC6 編譯器。
其次 EIDE 是國人開發的插件,社區溝通無壓力,作者衝浪強度也很高、回帖非常及時,一些非插件的技術問題也可以試著騷擾作者。
以下為社區地址
Embedded IDE Forum (em-ide.com)
前期準備#
明確我們前期準備的目標,vscode+EIDE安裝完成,並使得 EIDE 插件可以檢測到 ARM-GCC 以及 AC6 的工具鏈存在。
安裝這塊本文就不手把手教學了
首要推薦是看官方文檔,至少將官方文檔中 "開始上手" 章節完整看完
安裝 | Embedded IDE For VSCode (em-ide.com)
其次有一篇社區博文也不錯,不過仍然最推薦跟著官方文檔進行環境配置
[VSCODE] 基於 EIDE 插件搭建 vscode 下的 STM32 單片機開發環境 - Foriver - 博客園 (cnblogs.com)
額外準備#
額外準備是為調試而做的,眾所周知,如果片上程序不能單步調試,那基本上是開發不了複雜程序的。
需要用到經典神器 Cortex-debug 插件。
再次引到官方社區的文檔。
cortex-debug 用法 - 博客 - Embedded IDE Forum (em-ide.com)
簡單來說,有如下兩點需要配置
- 配置好 ARM-GCC 工具鏈地址,在我的環境中地址為
C:\\111_APPS\\arm-gnu-toolchain-13.2.Rel1-mingw-w64-i686-arm-none-eabi\\bin
,其中有 arm-none-eabi-gcc.exe、arm-none-eabi-ld.exe 等等工具鏈程序。 - 配置好你所需的 GDB 應用地址,例如我使用 JLink 調試,那麼我需要配置好 JLink GDBServer Path ,在我的環境中地址為
C:\111_APPS\SEGGER\JLink_V794f
,其中有 JLinkGDBServer.exe 這個應用程序。如果你並非使用 JLink,或許需要借助 Openocd 調試,那麼需要配置好 Openocd Path 。
我所設置的是設置中的這兩項
開始使用#
對於初次使用 EIDE 插件的用戶來說,首先建議弄一個備份過的 KEIL 工程用作測試,且在 KEIL 中保證這個工程可以正常編譯、點亮板子。
依據官方文檔導入這個工程
導入項目 | Embedded IDE For VSCode (em-ide.com)
導入時會彈出提示 —— 將 vscode 工作區項目放在何處,對於初次使用,建議直接和原來的 keil 工程文件放一起好了,避免額外的操作。但是使用測試工程熟悉新開發環境後,還是需要將各個不同開發環境的項目進行分離。如果不同的環境配置分離的能力都不具備,基本已經走遠了。
開發環境的坑#
簡單但又不簡單的坑,與能否將開發環境開起來有關係,這裡僅涉及到 AC6 編譯器,gcc 編譯器還是太弱了
匯編編譯的大坑#
匯編器配置如下,這裡有大坑!
我們拿到的匯編代碼會使用不同的匯編格式編寫。
- gnu 格式,其特徵:使用
/**/
、//
註釋語句,使用.syntax
、.section
、.global
之類的標籤 - arm 格式,其特徵:使用
;
作為註釋開始,不使用.xxx
開頭的標籤
那麼需要自動選擇匯編器類型,但是這裡如果將匯編器類型配置為 auto,那麼預處理器定義會不允許使用。就需要將匯編器選擇為”arm-clang",然後加上匯編附加選項 “-masm=auto",就可以自動選擇匯編器同時使用預定義了。
單步調試的配置#
眾所周知,絕大多數 MCU 工程師都是假裝軟件工程師的硬件工程師。這些配置對於 MCU 工程師還是太困難了,這也是 KEIL 直到現在仍然是主流 IDE 的原因。
首先觀察到調試頁,添加一個工作區的調試配置,因為我們工程和源碼分在不同的目錄,還是以工作區作為調試配置的準則比較好
他會在工作區 json 下自動生成少量代碼,通過補全手段或自己編寫成如下的樣子
其中需要重點配置的是
"cwd"
:current working directory 當前工作目錄,通常其他人將這裡配置為 ${workspaceRoot},由於我們的工作區不止一個文件夾,我們至少會有 EIDE 工程文件夾和 SRC 源碼文件夾兩個,所以這裡後面需要添加的後綴,引到 EIDE 工程文件夾作為基址"executable"
:是生成的可執行文件,在 EIDE 工程的編譯輸出目錄去找"name"
:調試任務的名字,後面會出現在調試頁面的下拉框以供選擇"type"
:調試器類型,我們連接到芯片調試,填寫 cortex-debug,使用 cortex-debug 插件調試即可"device"
:芯片的完整型號,需要調試器支持,我們通常使用 JLink 的調試器 exe 可執行文件,那麼也就是我們使用的 JLink 需要支持的名字,這裡與燒錄配置處的名字一樣就好了。(如果燒錄配置處配置錯,麻煩就大了,叫人就好)"servertype"
:根據你用的進行選擇,這裡我用的是 jlink,如果是 openocd 的改成 openocd 即可"interface"
:調試接線方式"svdFile"
:system view description,對於應用工程師這可有可無,是用來在 debug 時看寄存器值的,想要有的話可以去 st 官網找,不過其他的單片機就可能不會公開 svd 文件了 (keil 的 pack 包可以提取到)”liveWatch“
:查看變量實時值和計算式答案的選項,實際上是默認開啟的,可以不用配置