使用VSCode搭建Keil開發(fā)仿真環(huán)境

一、前言

由于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)代碼的智能識別和補全笆包、代碼瀏覽等基本功能环揽。

C/C++

2.2 VSCode插件:Cortex-Debug略荡;

Cortex-Debug插件用來實現(xiàn)代碼仿真和調(diào)試。

Cortex-Debug

2.3 VSCode插件:Embedded IDE歉胶;

Embedded IDE簡稱EIDE汛兜,用來導(dǎo)入Keil工程,支持Cortex-M內(nèi)核芯片的編譯和燒錄工作通今。

Embedded IDE

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)的版本安裝即可。

gcc-arm-none-eabi....win32.exe

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è)置:

Keil路徑設(shè)置

其實就是設(shè)置Keil軟件的MDK TOOLS.INI文件路徑,這個文件就在Keil軟件的安裝目錄下面可以找到椰苟。如下:
TOOLS.INI

3.1.2 ELF文件設(shè)定

選擇將.axf文件轉(zhuǎn)換為.elf文件抑月,這個是為了下一步的仿真調(diào)試功能做準備。

ELF轉(zhuǎn)換

3.2 導(dǎo)入項目

這里也就是導(dǎo)入現(xiàn)有的Keil工程舆蝴。在VSCode的側(cè)邊欄谦絮,點擊EIDE插件按鈕,在左下角選擇導(dǎo)入洁仗。

導(dǎo)入

在彈出的類型選擇中選擇MDK层皱,然后選擇對應(yīng)的Keil工程文件即可,后綴是.uvprojx赠潦。
MDK

打開工程以后可以看到工程的文件和很多項目相關(guān)的配置項叫胖,這些配置項其實和Keil軟件打開工程的配置內(nèi)容類似,下面逐個來介紹她奥。
項目參數(shù)

3.3 芯片支持包

芯片支持包

點擊右邊的加號可以添加瓮增,可以從本地目錄選擇文件添加(From Disk),所謂的支持包哩俭,就是Keil5安裝的pack包绷跑,選擇此工程使用的芯片對應(yīng)的包即可,例如:
pack包

3.4 構(gòu)建配置

構(gòu)建配置就是和Keil工程中的編譯器設(shè)置凡资、RAM設(shè)置等完全對應(yīng)的砸捏,介紹如下:

3.4.1 編譯器類型選擇

點擊構(gòu)建配置右側(cè)的符號可以進行切換。

編譯器類型

keil中的位置:
image.png

3.4.2 CPU類型和浮點數(shù)設(shè)置

不需要手動選擇,前面選擇了芯片支持包带膜,芯片就已經(jīng)確定了吩谦,這里會自動識別鸳谜。

3.4.3 RAM/FLASH布局

就是Keil軟件中的IRAMIROM選項膝藕,從Keil導(dǎo)入工程時就自動識別了,一般不會出錯咐扭。

Keil中設(shè)置

對應(yīng)VSCode設(shè)置

3.4.4 構(gòu)建器選項

類似Keil中設(shè)置參數(shù)的C/C++選項卡的內(nèi)容芭挽,以及User選項卡。

3.4.4.1 用戶任務(wù):就是編譯完成之后Keil中執(zhí)行的User Command蝗肪。

Keil中設(shè)置位置

對應(yīng)VSCode

3.4.4.2 其他項目

按照Keil工程中的設(shè)置即可袜爪。

C/C++編譯器

MicroLIB

還可以修改輸出的目錄名稱,這里修改為了obj薛闪。這個路徑是和.uvprojx工程文件同級目錄的辛馆。
輸出目錄名修改

3.4.5 燒錄配置

根據(jù)實際使用的燒錄器設(shè)定即可。


燒錄配置

接口類型和下載速度都可以設(shè)定修改豁延。

以上的參數(shù)設(shè)定完成之后就可以進行編譯和燒錄了昙篙。如下:

編譯按鈕

紅框中的幾個按鈕分別是編譯、清除诱咏、燒錄苔可、從頭重新編譯。編譯完成之后的結(jié)果袋狞,可以看到和Keil編譯結(jié)果類似焚辅,可視性更好一些:
編譯結(jié)果

四、仿真調(diào)試

仿真調(diào)試通過Cortex-Debug插件來實現(xiàn)苟鸯。Cortex-debug 使用 gdb 來完成調(diào)試同蜻;下圖介紹了 gdb 調(diào)試的組成和它們之間的關(guān)系,在開始之前有必要理解清楚它們的關(guān)系早处。

gdb 調(diào)試

這張圖片來源于:https://blog.csdn.net/qq_40833810/article/details/106713462

4.1 配置GNU編譯器路徑

gcc編譯器路徑設(shè)置

GNU編譯器下載url:https://developer.arm.com/downloads/-/gnu-rm
先下載安裝編譯器湾蔓,再設(shè)定編譯器的路徑即可。

4.2 設(shè)置openocd路徑

這里需要安裝openocd陕赃,下載路徑:https://gnutoolchains.com/arm-eabi/openocd/卵蛉。
然后在插件設(shè)置中填入openocd的路徑。

openocd路徑

4.3 設(shè)定項目配置

項目配置文件修改:launcth.json么库。這里的executable就是上一步EIDE擴展中編譯得到的ELF文件的路徑(相對路徑即可)傻丝。

項目配置

4.4 配置完成

以上配置完成之后,可以進行調(diào)試诉儒,打斷點葡缰、監(jiān)視數(shù)據(jù)等。


仿真調(diào)試

以下就是正常的調(diào)試界面。


調(diào)試界面
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泛释,一起剝皮案震驚了整個濱河市滤愕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌怜校,老刑警劉巖间影,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茄茁,居然都是意外死亡魂贬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門裙顽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來付燥,“玉大人,你說我怎么就攤上這事愈犹〖疲” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵漩怎,是天一觀的道長勋颖。 經(jīng)常有香客問我,道長扬卷,這世上最難降的妖魔是什么牙言? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮怪得,結(jié)果婚禮上咱枉,老公的妹妹穿的比我還像新娘。我一直安慰自己徒恋,他們只是感情好蚕断,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著入挣,像睡著了一般亿乳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上径筏,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天葛假,我揣著相機與錄音,去河邊找鬼滋恬。 笑死聊训,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的恢氯。 我是一名探鬼主播带斑,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼鼓寺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了勋磕?” 一聲冷哼從身側(cè)響起妈候,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎挂滓,沒想到半個月后苦银,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡杂彭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年墓毒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片亲怠。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖柠辞,靈堂內(nèi)的尸體忽然破棺而出团秽,到底是詐尸還是另有隱情,我是刑警寧澤叭首,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布习勤,位于F島的核電站,受9級特大地震影響焙格,放射性物質(zhì)發(fā)生泄漏图毕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一眷唉、第九天 我趴在偏房一處隱蔽的房頂上張望予颤。 院中可真熱鬧,春花似錦冬阳、人聲如沸蛤虐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驳庭。三九已至,卻和暖如春氯窍,著一層夾襖步出監(jiān)牢的瞬間饲常,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工狼讨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贝淤,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓熊楼,卻偏偏與公主長得像霹娄,于是被迫代替她去往敵國和親能犯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344