一、前言
由于Keil
軟件各方面都比較難用锐借、易用性差问麸、界面丑、功能落后钞翔,很多時候我們都會使用其他的編輯器進行代碼的編輯開發(fā)严卖,只有當需要燒錄程序或者仿真調(diào)試的時候才使用Keil
軟件。
其實我們完全可以選擇使用VSCode
布轿,用這一款軟件同時進行編輯開發(fā)和燒錄哮笆、仿真調(diào)試工作,只需要提前通過Keil
創(chuàng)建好工程即可汰扭,后續(xù)的所有工作都可以通過VSCode
完成稠肘。
二、需要的插件和第三方工具
VSCode
插件可以通過VSCode
軟件安裝即可萝毛,在插件中搜索安裝项阴。
2.1 VSCode插件:C/C++;
C/C++
插件用來實現(xiàn)代碼的智能識別和補全笆包、代碼瀏覽等基本功能环揽。
2.2 VSCode插件:Cortex-Debug略荡;
Cortex-Debug
插件用來實現(xiàn)代碼仿真和調(diào)試。
2.3 VSCode插件:Embedded IDE歉胶;
Embedded IDE
簡稱EIDE
汛兜,用來導(dǎo)入Keil
工程,支持Cortex-M
內(nèi)核芯片的編譯和燒錄工作通今。
2.4 GDB工具:
GDB工具
用來配合Cortex-Debug
插件實現(xiàn)仿真調(diào)試功能粥谬。
需要單獨下載并安裝,安裝的時候可以選擇把執(zhí)行文件路徑加入系統(tǒng)的環(huán)境變量中辫塌,避免找不到"gcc.exe"
文件路徑等問題漏策。
下載url:https://developer.arm.com/downloads/-/gnu-rm
下載win32.exe
用于windows系統(tǒng)的版本安裝即可。
2.5 OPENOCD
OPENOCD
用來配合Cortex-Debug
插件實現(xiàn)仿真調(diào)試功能璃氢,下載之后放到任意的路徑均可哟玷。
下載路徑: https://gnutoolchains.com/arm-eabi/openocd/
三、編譯和燒錄功能實現(xiàn)
編譯和燒錄通過Embedded IDE
插件實現(xiàn)一也,Embedded IDE
配置好了就可以進行Keil
工程的編譯和燒錄了巢寡。
更詳細的介紹可以參見此插件的具體文檔:https://em-ide.com/#/README
3.1 路徑和ELF功能設(shè)置
3.1.1 路徑設(shè)置:
其實就是設(shè)置Keil軟件的
MDK TOOLS.INI
文件路徑,這個文件就在Keil
軟件的安裝目錄下面可以找到椰苟。如下:3.1.2 ELF文件設(shè)定
選擇將.axf
文件轉(zhuǎn)換為.elf
文件抑月,這個是為了下一步的仿真調(diào)試功能做準備。
3.2 導(dǎo)入項目
這里也就是導(dǎo)入現(xiàn)有的Keil
工程舆蝴。在VSCode
的側(cè)邊欄谦絮,點擊EIDE
插件按鈕,在左下角選擇導(dǎo)入洁仗。
在彈出的類型選擇中選擇
MDK
层皱,然后選擇對應(yīng)的Keil
工程文件即可,后綴是.uvprojx
赠潦。打開工程以后可以看到工程的文件和很多項目相關(guān)的配置項叫胖,這些配置項其實和
Keil
軟件打開工程的配置內(nèi)容類似,下面逐個來介紹她奥。3.3 芯片支持包
點擊右邊的加號可以添加瓮增,可以從本地目錄選擇文件添加(
From Disk
),所謂的支持包哩俭,就是Keil5
安裝的pack
包绷跑,選擇此工程使用的芯片對應(yīng)的包即可,例如:3.4 構(gòu)建配置
構(gòu)建配置就是和Keil
工程中的編譯器設(shè)置凡资、RAM設(shè)置等完全對應(yīng)的砸捏,介紹如下:
3.4.1 編譯器類型選擇
點擊構(gòu)建配置右側(cè)的符號可以進行切換。
在
keil
中的位置:3.4.2 CPU類型和浮點數(shù)設(shè)置
不需要手動選擇,前面選擇了芯片支持包带膜,芯片就已經(jīng)確定了吩谦,這里會自動識別鸳谜。
3.4.3 RAM/FLASH布局
就是Keil
軟件中的IRAM
和IROM
選項膝藕,從Keil
導(dǎo)入工程時就自動識別了,一般不會出錯咐扭。
3.4.4 構(gòu)建器選項
類似Keil
中設(shè)置參數(shù)的C/C++
選項卡的內(nèi)容芭挽,以及User
選項卡。
3.4.4.1 用戶任務(wù):就是編譯完成之后Keil
中執(zhí)行的User Command
蝗肪。
3.4.4.2 其他項目
按照Keil
工程中的設(shè)置即可袜爪。
還可以修改輸出的目錄名稱,這里修改為了
obj
薛闪。這個路徑是和.uvprojx
工程文件同級目錄的辛馆。3.4.5 燒錄配置
根據(jù)實際使用的燒錄器設(shè)定即可。
接口類型和下載速度都可以設(shè)定修改豁延。
以上的參數(shù)設(shè)定完成之后就可以進行編譯和燒錄了昙篙。如下:
紅框中的幾個按鈕分別是編譯、清除诱咏、燒錄苔可、從頭重新編譯。編譯完成之后的結(jié)果袋狞,可以看到和
Keil
編譯結(jié)果類似焚辅,可視性更好一些:四、仿真調(diào)試
仿真調(diào)試通過Cortex-Debug
插件來實現(xiàn)苟鸯。Cortex-debug 使用 gdb 來完成調(diào)試同蜻;下圖介紹了 gdb 調(diào)試的組成和它們之間的關(guān)系,在開始之前有必要理解清楚它們的關(guān)系早处。
這張圖片來源于:https://blog.csdn.net/qq_40833810/article/details/106713462
4.1 配置GNU編譯器路徑
GNU編譯器下載url:https://developer.arm.com/downloads/-/gnu-rm
先下載安裝編譯器湾蔓,再設(shè)定編譯器的路徑即可。
4.2 設(shè)置openocd路徑
這里需要安裝openocd
陕赃,下載路徑:https://gnutoolchains.com/arm-eabi/openocd/卵蛉。
然后在插件設(shè)置中填入openocd的路徑。
4.3 設(shè)定項目配置
項目配置文件修改:launcth.json
么库。這里的executable
就是上一步EIDE
擴展中編譯得到的ELF
文件的路徑(相對路徑即可)傻丝。
4.4 配置完成
以上配置完成之后,可以進行調(diào)試诉儒,打斷點葡缰、監(jiān)視數(shù)據(jù)等。
以下就是正常的調(diào)試界面。