引言
在MCU的嵌入式軟件開發(fā)領(lǐng)域,過去很長一段時間都是以基于Eclipse框架開發(fā)的IDE為主,典型此類IDE包括:NXP的CodeWarrior 10.x/11.xIDE, S32DS IDE, MCUXpresso IDE, TI的CCStudio IDE,瑞薩的e2 studio (Eclipse) IDE和ST的STM32CubeIDE,SPC5-StudioIDE等,但是近些年,微軟推出的開源Visual Studio Code(V簡稱SCode) IDE框架發(fā)展十分迅猛,根據(jù)權(quán)威數(shù)據(jù),VScode在今年已經(jīng)超過Eclipse成為全球第二大IDE。
VScode vs. Eclipse IDE
1.1 VSCode IDE架構(gòu)
VSCode是基于Electron框架構(gòu)建的,使用主進程和渲染進程來管理窗口和用戶界面,支持通過擴展來增強功能,并使用Monaco編輯器提供強大的代碼編輯和調(diào)試功能。它的架構(gòu)主要包括以下幾個主要組件:
Electron:VSCode使用Electron作為框架,它是一個基于Web技術(shù)的桌面應(yīng)用程序開發(fā)框架,可以將Web技術(shù)(HTML、CSS和JavaScript)打包成一個本地應(yīng)用程序。
主進程(Main Process):主進程是VSCode的核心組件,負責管理所有的窗口和應(yīng)用程序的生命周期。它使用Electron提供的API來創(chuàng)建和管理窗口,處理菜單、對話框等系統(tǒng)級別的操作。
渲染進程(Renderer Process):渲染進程是VSCode的界面組件,負責顯示和處理用戶界面。每個窗口都有一個獨立的渲染進程,它使用Electron的BrowserWindow對象來創(chuàng)建和管理窗口。渲染進程使用HTML、CSS和JavaScript來構(gòu)建用戶界面,并通過與主進程通信來執(zhí)行各種操作。
擴展(Extensions):VSCode支持通過擴展來增強其功能。擴展是使用JavaScript或TypeScript編寫的插件,可以添加新的編輯器功能、語言支持、調(diào)試器等。擴展可以在VSCode的運行時環(huán)境中與主進程和渲染進程進行通信,以實現(xiàn)各種功能。
編輯器(Editor):編輯器是VSCode的核心功能之一,它提供了強大的代碼編輯和調(diào)試功能。編輯器使用Monaco編輯器作為其基礎(chǔ),它是一個開源的Web代碼編輯器,具有語法高亮、智能代碼補全、代碼導航、代碼重構(gòu)等功能。
1.2 VSCode相對于Eclipse的優(yōu)勢
VSCode相對于Eclipse的優(yōu)勢包括:
輕量級:VSCode是一個輕量級的編輯器,啟動速度快,占用系統(tǒng)資源少,適合于低配置的電腦或者開發(fā)環(huán)境。
擴展性強:VSCode具有豐富的插件生態(tài)系統(tǒng),可以通過安裝各種插件來擴展其功能,滿足不同開發(fā)需求。
跨平臺支持:VSCode支持Windows、macOS和Linux等多個操作系統(tǒng),開發(fā)者可以在不同的平臺上使用相同的編輯器進行開發(fā)。
內(nèi)置終端:VSCode內(nèi)置了終端,可以在編輯器中直接執(zhí)行命令,無需額外打開終端窗口,提高開發(fā)效率。
強大的調(diào)試功能:VSCode提供了強大的調(diào)試功能,支持多種編程語言的調(diào)試,可以方便地設(shè)置斷點、查看變量值等。
Git集成:VSCode內(nèi)置了Git集成,可以方便地進行版本控制操作,如提交、拉取、推送等。
用戶友好的界面:VSCode的界面簡潔、直觀,易于上手和使用,同時也支持自定義布局和主題,可以根據(jù)個人喜好進行配置。
快捷鍵和命令:VSCode提供了豐富的快捷鍵和命令,可以快速執(zhí)行各種操作,提高開發(fā)效率。
總的來說,VSCode相對于Eclipse更加輕量、靈活、易用,并且具有更強大的擴展性和調(diào)試功能,適合于各種類型的開發(fā)。目前越來越多的MCU嵌入式軟件開發(fā)都轉(zhuǎn)向支持VSCode IDE,包括傳統(tǒng)的8051內(nèi)核MCU,基于ARM的STM32等,此外IAR和Keil等傳統(tǒng)toolchain也提供了VSCode的擴展支持。
1.3 VSCode IDE下載和安裝
大家可以通過以下鏈接,免費下載安裝最新版本的VSCode: https://code.visualstudio.com/download Tips:VSCode提供了三大主流OS--Linux,Windows和macOS的支持,這里我們以Windows為例進行介紹。推薦大家下載使用系統(tǒng)(System Installer)穩(wěn)定版本(stable)的VScode IDE。 VSCode的User Installer和System Installer是安裝VSCode時可選擇的兩種安裝方式,它們的主要差異如下:
安裝位置:User Installer將VSCode安裝在用戶的個人目錄下,而System Installer將VSCode安裝在系統(tǒng)的公共目錄下。User Installer的安裝位置通常是在用戶的主目錄下的一個隱藏文件夾中,而System Installer的安裝位置通常是在系統(tǒng)的應(yīng)用程序目錄中。
權(quán)限:由于安裝位置的不同,User Installer只需要用戶的權(quán)限來安裝和更新VSCode,而System Installer可能需要管理員權(quán)限來進行安裝和更新。
更新:User Installer會自動檢測和更新VSCode,而System Installer通常需要管理員權(quán)限來進行更新。
多用戶支持:User Installer適用于單用戶環(huán)境,每個用戶可以有自己的VSCode安裝。而System Installer適用于多用戶環(huán)境,所有用戶共享同一個VSCode安裝。
簡而言之,User Installer適用于個人開發(fā)環(huán)境,安裝在用戶的個人目錄下,而System Installer適用于多用戶環(huán)境或者需要系統(tǒng)范圍內(nèi)共享的情況,安裝在系統(tǒng)的公共目錄下。選擇哪種安裝方式取決于具體的使用場景和需求。 安裝包下載到本地后,雙擊運行即可開始安裝。安裝步驟十分簡單,此處不展開,大家可以參考官方文檔。
VSCode IDE及必要擴展安裝
基于VSCode IDE搭建云途車規(guī)MCU的整體思路如下: 使用VScode作為IDE,調(diào)用Ninja和CMake構(gòu)建編譯環(huán)境,調(diào)用GNU工具鏈進行工程代碼的編譯和鏈接生成可執(zhí)行文件elf和Flash下載編程文件-bin/hex/s19, 通過GNU的GDBSever或者第三方調(diào)試軟件(比如Segger的Ozone, 勞德巴赫和i-System等)完成應(yīng)用工程編譯結(jié)果的下載和調(diào)試。
VSCODE: https://code.visualstudio.com/
CMAKE: https://cmake.org/download/ (安裝目錄添加到系統(tǒng)PATH環(huán)境變量里)
Ninja: https://ninja-build.org/ (安裝目錄添加到系統(tǒng)PATH環(huán)境變量里)
GNU for ARM Cortex-M:https://developer.arm.com/downloads/-/gnu-rm(安裝目錄添加到系統(tǒng)PATH環(huán)境變量里)
在Windows命令行窗口/VSCode terminal中輸入查看輸出以確認以上CMake和Ninja工具是否安裝正確:
cmake --version ninja --version arm-none-eabi-gcc --version若輸入以上命令后輸出如下,則安裝OK:
Tips:若無法提示的識別的命令,則有可能上面的環(huán)境變量設(shè)置對當前Windows命令行窗口/VSCode terminal沒有起作用,將Windows命令行窗口/VSCode IDE 關(guān)閉重啟再試。
Tips:Ninja和CMake是與軟件構(gòu)建相關(guān)的工具,其功能如下:
Ninja:Ninja是一個快速、輕量級的構(gòu)建系統(tǒng)工具。它使用簡單的配置文件來描述構(gòu)建過程,并且能夠高效地執(zhí)行并行構(gòu)建。Ninja的設(shè)計目標是提供一種快速的構(gòu)建工具,尤其適用于大型項目和復雜的構(gòu)建過程。Ninja通常與其他構(gòu)建工具(如CMake)配合使用。
CMake:CMake是一個跨平臺的構(gòu)建工具,用于生成各種不同構(gòu)建系統(tǒng)(如Makefile、Ninja等)所需的構(gòu)建文件。CMake通過提供一個簡單的跨平臺配置語言,使得開發(fā)者可以輕松地定義項目的構(gòu)建規(guī)則。CMake可以自動生成適用于不同操作系統(tǒng)和編譯器的構(gòu)建文件,簡化了跨平臺項目的構(gòu)建過程。
CMake用于定義項目的構(gòu)建規(guī)則和依賴關(guān)系,并生成相應(yīng)的構(gòu)建文件(如Makefile或Ninja文件)。然后,使用Ninja等構(gòu)建工具來實際執(zhí)行構(gòu)建過程,編譯源代碼、鏈接庫文件等。CMake和Ninja的配合使用可以提供靈活、高效的項目構(gòu)建解決方案,并且支持跨平臺開發(fā)。 在云途配置工具(YCT)的安裝包中已經(jīng)包含了Ninjia、CMake和GNU for ARM toolchain,大家參考之前的文章《云途配置工具(YCT)快速上手指南(QSG)》(點擊文章標題即可直接跳轉(zhuǎn)閱讀)安裝YCT時選擇一起安裝,相應(yīng)的工具鏈的安裝路徑也會自動設(shè)置到Windows的環(huán)境變量中,從而方便VSCode調(diào)用。 在完成YCT和VScode安裝之后,為了更好的開發(fā)云途車規(guī)MCU的應(yīng)用軟件,還需要安裝以下VScode擴展(extension):
2.1 C/C++語言支持擴展插件--C/C++ Extension Pack
在VSCode的擴展插件(extension,快捷鍵Ctrl + Shift + P打開),搜索C/C++在線安裝C/C++ Extension Pack插件:
2.2 CMake及CMake Tools支持擴展插件
在VSCode的擴展插件(extension,快捷鍵Ctrl + Shift + P打開),搜索CMake在線安裝CMake和CMake Tools插件:
2.3 ARM Cortex調(diào)試擴展插件--Cortex-Debug
在VSCode的擴展插件(extension,快捷鍵Ctrl + Shift + P打開),搜索Cortex-Debug在線安裝調(diào)試插件:
YCT創(chuàng)建基于云途SDK/MCAL的車規(guī)MCU VSCode應(yīng)用工程
3.1 基于YCT創(chuàng)建云途車規(guī)MCU的SDK/MCAL的配置工程
3.1.1 通過MCU選擇界面創(chuàng)建一個新的SDK/MCAL配置YCT工程
通過New Project -> Start My project from MCU -> "ACCESS TOMCUSELECTOR"打開MCU選擇界面,
可以查看所有支持的MCU芯片型號(part number)、封裝(Package)、存儲器大小、I/O及外設(shè)資源和工作主頻等信息,選擇使用的SDK/MCAL版本等。
Tips:由于YCT支持的MCU型號比較多,可以通過Family過濾來篩選,從而只顯示勾選的MCU family,快速找到所使用的的目標MCU型號。
3.1.2 通過MCAL樣例工程選擇界面創(chuàng)建一個MCAL配置YCT工程
通過New Project -> Start McalFromExample,Easy to Start-> "Choose Mcal Example"打開MCAL樣例工程選擇界面:
在MCAL樣例工程選擇界,選擇想要評估的MCU系列的MCAL版本,找到相應(yīng)的MCAL模塊樣例工程,選擇保存路徑,最后點擊“Create”,即可打開該MCAL樣例工程:
Tips:通過這種方式打開的MCAL樣例工程是將MCAL安裝目錄下的樣例工程拷貝到用戶指定目錄的,可以任意修改,不必影響原有樣例工程。
3.2 YCT配置工程的工程配置(Project Setting)
通過以上3.1.1小節(jié)介紹的方法和步驟新創(chuàng)建的云途SDK和MCAL 配置YCT工程,將在LOG的Porblem窗口提示項目管理(PM--Project Manager)錯誤:
此時需要通過YCT主頁界面的“Settings”,打開YCT工程的工程設(shè)置(Project Setting)界面進行工程名、保存地址,使用工具鏈及調(diào)試等配置:
工程配置界面用于配置整個工程的基本屬性,目前有以下配置。
3.2.1 Project配置
Project用于配置工程的基本信息,包括:
A. 工程名(Project Name)和工程保存地址(Project Location)
Tips: 工程名一旦選擇好后,不能直接更改, 設(shè)置好以上配置后保存YCT工程將在選擇Project Location目錄下創(chuàng)建一個Project Name同名的文件夾保存相關(guān)工程信息。
B. 鏈接文件確認(link file)
YCT工具會生成對應(yīng)的鏈接文件,當然你也可以選擇自己鏈接文件的位置。建議直接用默認的鏈接文件即可。 點擊最右邊的按鈕,會自動填充默認的鏈接文件。
C. IDE選擇(Toolchain/IDE)與Toolchain Path
YCT工程支持創(chuàng)建以下工具鏈的云途車規(guī)MCU SDK/MCAL應(yīng)用工程:
EWARM:IAR工程,工程屬性通過IAR IDE軟件界面配置;
KEIL:將創(chuàng)建ARM的Keil v5/MDK IDE工程,工程屬性通過Keil/MDK軟件界面配置;
CMake + VSCode(GCC): 使用CMake + GNU/GCC工具鏈的VSCode IDE工程,工程屬性通過YCT的CMake GCC界面或者CMake的CMakelist.txt配置;
CMake + VSCode(IAR): 使用CMake + GNU/GCC工具鏈的VSCode IDE工程,工程屬性通過CMake的CMakelist.txt配置;
CMake + VSCode(KEIL): 使用CMake + GNU/GCC工具鏈的VSCode IDE工程,工程屬性通過CMake的CMakelist.txt配置;
這些toolchain/IDE配置可以方便地通過Toolchain/IDE的下拉菜單選擇:
Tips: 默認建議使用CMake+Vscode(GCC)的配置,更加高效和強大,本文介紹也以CMake+Vscode(GCC)為例進行。 當選擇CMake + Vscode(GCC/IAR/KEIL)的方式時,用戶需要將相應(yīng)的工具鏈安裝路徑添加到操作系統(tǒng)的全局PATH變量或者手動選擇 若已經(jīng)將工具鏈添加到PATH變量(通過YCT安裝包選擇默認安裝),那么這里可以不用選擇。 ?
D. Debug in Vscode(VSCode Debug Settings)
若選擇CMake+Vscode(GCC)的作為Toolchain,用戶可以勾選“VSCodeDebugger”開啟VSCODE 的Debug功能,目前只支持JLINK+VSCODE的方式,相關(guān)配置選項說明如下:
Debugger: JLINK, 保持默認即可;
Interface type:配置調(diào)試接口類型,推薦使用默認單線調(diào)試“SWD”,當然YTM32B1Mx系列車規(guī)MCU使用CM33內(nèi)核也是可以支持標準的邊界掃描JTAG接口的,只需要將此配置改為“JTAG”即可。
Tips:① YTM32B1LD/Ex系列車規(guī)MCU使用CM0+內(nèi)核,只支持SWD接口,此處不能設(shè)置為“JTAG”;② 云途MCAL中Port模塊默認的調(diào)試接口功能復用也是使用SWD接口,若要使用JTAG接口,必須修改Port模塊配置,否則會出現(xiàn)調(diào)試連接問題。
Entry point:進入調(diào)試后默認的斷點,可以是任意有效的C/匯編函數(shù)名,比如應(yīng)用程序主函數(shù)main或者復位函數(shù)Reset_Handler,推薦使用默認的main即可;
GDB Server path:設(shè)置JLINK GDB Server命令行(JlinkGDBServerCL.exe)的路徑,默認為:C:Program Files (x86)SEGGERJLinkJLinkGDBServerCL.exe,若用戶自己電腦上JLINK的安裝目錄與此不同,則需要手動設(shè)置一下。
Tips:可以通過全局搜索工具,比如everyting搜索“JLinkGDBServerCL.exe”確定:
SVD file path:設(shè)置調(diào)試時內(nèi)核和外設(shè)寄存器信息文件,保持默認配置即可;
以上配置信息,將被生成保存到應(yīng)用工程的./vscode/launch.json配置文件中:
3.2.2 YCT代碼生成選項(Code Generate)配置
Code Generate用于控制YCT的代碼生成行為,主要配置選項包括:
Target Folder:YCT生成的配置代碼保存文件夾/目錄,默認為“board”,將在生成SDK/MCAL應(yīng)用工程根目錄下創(chuàng)建一個名為“board”的文件夾用于保存所有的生成文件,包括.h/.c文件和鏈接文件:
Keep User Code When re-generating: 配置重新生成代碼時是否保存main.c中添加的用戶代碼,若勾選則添加在關(guān)鍵詞保護的指定區(qū)域中的用戶應(yīng)用代碼將不被覆蓋,推薦保持默認勾選配置即可;
Generate board init function:配置是否生成系統(tǒng)和外設(shè)初始化函數(shù),推薦默認的勾選配置,生成系統(tǒng)和外設(shè)的初始化調(diào)用API函數(shù);
Board function name:設(shè)置Board初始化函數(shù)名字,默認為Board_Init,用戶可以設(shè)置為其他名字,推薦使用默認配置即可。該函數(shù)將在生產(chǎn)的main()函數(shù)中調(diào)用,可將系統(tǒng)時鐘初始化、外設(shè)模塊初始化以及引腳初始化等API放到Board_Init()中,
Tips:用戶可以通過YCT的API界面圖形化添加SDK和MCAL的驅(qū)動模塊初始化函數(shù):
3.2.3 工程屬性(CMake GCC)配置
若3.2.1小節(jié)的IDE配置選擇為“CMake+Vscode(GCC)”,則可以通過YCT提供的CMake GCC界面配置所使用的GNU GCC編譯器和鏈接器選項,主要包括:
A. Target Config
Arm family: ARM內(nèi)核,根據(jù)新建yct工程時選擇的云途車規(guī)MCU型號自動選擇,這里不可配置;
Library support:選擇使用的C語言庫,包括GNU GCC的輕量版newlib_nano no I/O、newlib_nano Debugger Console和完整版newlib no I/O、newlib Debugger Console,用戶可根據(jù)自己應(yīng)用的實際需求來選擇:newlib_nano是newlib的一個變種,它進一步減小了庫的大小,并提供了一些額外的優(yōu)化。newlib_nano通過去除一些不常用的功能和減小庫的大小來降低內(nèi)存占用和存儲需求。比如,newlib_nano庫不支持浮點數(shù)。
Float ABI:浮點數(shù)應(yīng)用二進制接口標準,支持純硬件FPU(FP(hard),使用硬件浮點數(shù)指令)、純軟件庫(Library(soft))和軟硬件混合(Library(softfp)),對于CM33內(nèi)核支持硬件FPU,推薦使用純硬件FPU(FP(hard))或者軟硬件混合(Library(softfp)),以減少代碼size,提高CPU的浮點數(shù)處理性能。
FPU Type:CM33內(nèi)核的FPU只支持單精度(Single-Point)浮點數(shù)指令:fpv4-sp-d16
B. Debugging Options
調(diào)試選項配置包括:
Debug Level:調(diào)試等級配置,-g/1/3,數(shù)字越大,包含的調(diào)試信息越多,推薦使用默認配置即可。PS:若此選項配置為“None”,則生成的elf文件不包含任何調(diào)試信息,下載后將無法調(diào)試,包括斷點都不能打。
Debug format:生成elf文件包含的調(diào)試文件格式支持配置,用戶可根據(jù)實際需求進行配置,一般情況推薦使用默認配置即可。
Generate gcov information(-ftest-coverage -fprofile-arcs): 勾選將生成GNU的代碼測試覆蓋度和profile信息。
C. Compiler Options
GCC編譯的配置選項如下:
其中,需要關(guān)注的配置選項如下:
Optimization Level:優(yōu)化等級設(shè)置,-O0/1/2/s/fast,-O0就是沒有任何優(yōu)化,編譯的代碼size最大,-O1是比較推薦的優(yōu)化設(shè)置,-Os的優(yōu)化目標是代碼大小size,編譯結(jié)果最小,但是運行速度比較差,-Ofast優(yōu)化目標為速度speed,運行速度快,但是代碼size可能比較大,用戶可根據(jù)實際需求進行配置,云途推薦使用-O1,因為云途SDK和MCAL都是基于-O1進行測試驗證的。
Function Sections(-ffunction-section):勾選將在工程編譯結(jié)果的map文件中生成應(yīng)用工程中所有函數(shù)的段(.text section)信息,推薦使用默認勾選配置即可;
Data sections(-fdata-sections):勾選將在工程編譯結(jié)果的map文件中生成應(yīng)用工程中所數(shù)據(jù)的段(.data/.bss section)信息,推薦使用默認勾選配置即可;
Other flags:用戶可在此輸入自定義的編譯選項,比如添加一個全局有效的宏定義符號MCAL_ENABLE_USER_MODE_SUPPORT:
D. Link Options
Link Options可以用于配置應(yīng)用工程鏈接選項,主要配置選項如下:
Remove unused sections(-Xlinker --gc-section):勾選此選項鏈接生成成的elf文件將刪除未使用的代碼段和數(shù)據(jù)段,從而減小代碼大小,且不影響應(yīng)用功能和程序運行結(jié)果,因此推薦使用默認使能選項;
Printf removed sections(-Xlinker --printf-gc-section):勾選此選項,則在鏈接過程中將在DE的輸出控制臺打印被刪除/移除的段信息;若有需要,可以勾選使能此選項。
Other flags:用戶可在此輸入自定義的鏈接配置選項;
Tips:關(guān)于GNU GCC toolchain的編譯鏈接配置選項細節(jié),可以參考如下文章或者鏈接:
《S32DS GNU GCC編譯優(yōu)化選項與配置方法詳解及S32 SDK代碼編譯優(yōu)化選項設(shè)置建議》(點擊文章標題即可直接跳轉(zhuǎn)閱讀);
GNU官網(wǎng)在線幫助手冊:https://www.gnu.org/doc/doc.html
3.3 生成MCAL/SDK配置代碼及應(yīng)用工程
在完成以上工程配置之后,點擊“Ctrl+S”保存工程,則會在指定的工程目錄下創(chuàng)建一個工程名命名的yct文件,其中保存了當前工程的所有配置信息:
然后,添加應(yīng)用所需的SDK或者MCAL驅(qū)動模塊,完成配置并解決/fix所有錯誤之后(LOG界面中Problem的Errors為0),即可點擊“Generate”開始配置代碼和應(yīng)用工程生成了:
在彈出的Generate Code窗口,可以預(yù)覽查看(View)配置結(jié)果生成代碼,點擊“Generate”即可開始生成代碼:
完成配置代碼和應(yīng)用工程生成后,會彈窗提示是否打開當前工程?選擇“OK”,YCT就會自動調(diào)用VScode IDE打開當前工程:
YCT生成的云途車規(guī)MCU MCAL應(yīng)用工程完整目錄如下:
調(diào)試云途車規(guī)MCU的VSCode應(yīng)用工程
默認YCT配置生成的VSCode IDE應(yīng)用工程,在確保本文第2章節(jié)介紹的工具鏈軟件(CMake + Ninja + GCC for ARM)和VSCode擴展插件安裝正確的情況下,是可以被成功編譯鏈接生成elf文件并下載調(diào)試的。
4.1 編譯應(yīng)用工程
打開上文生成的VSCode IDE應(yīng)用工程,點擊下方的“Build”命令,在上方彈出的編譯工具鏈欄提示,選擇“[unspecfied] Unspecified(Let CMake guess what compiler and environment to use)”即可開始工程編譯和鏈接:
整個編譯和鏈接過程會在VSCode IDE的OUTPUT窗口輸出提示信息,編譯完成后,在工程目錄下將生成一個“build”文件夾,用于存放編譯結(jié)果,比如map文件和elf文件:
?
Tips:安裝了CMake Tools VSCode擴展并且應(yīng)用程序項目構(gòu)建完成,生成elf文件后,打開CMake工具實用程序,用戶可以選擇不同的CMake目標來生成所需的Flash編程文件和工程列表文件:
gembin-Utility:生成二進制文件,僅包含以二進制格式存儲的程序數(shù)據(jù),文件大小與Flash大小相同。
gemhex-Utility:生成Intel指定的十六進制文件,包含程序數(shù)據(jù)和Flash地址,以人類可讀的ASCII文本格式表示。
gems19-Utility:生成Motorola指定的十六進制文件,包含程序數(shù)據(jù)和Flash地址,以人類可讀的ASCII文本格式表示。
gemlist-Utility:生成列表文件,包含從elf文件中提取的所有匯編代碼和符號信息。對于調(diào)試和問題分析很有幫助。
?
生成的Flash編程文件和列表文件存放在“build”目錄下:
4.2 下載調(diào)試應(yīng)用工程
完成以上編譯鏈接生成elf文件之后,就可以開始下載調(diào)試了。具體方法步驟如下:
首先,需要確認YCT自動生成的debug配置腳本launch.json中MCU芯片的“device” name是否JLINK能夠識別的目標板使用MCU對應(yīng)的完整part number:
若不是(v1.1.8及之前的老版本YCT工具),則參考下表修改:
上表為J-Flash軟件目標設(shè)備配置(Target Device Settings)界面截圖,需要提前安裝云途車規(guī)MCU的patch補丁包才能讓JLINK(推薦JLINK V9以上版本硬件 + v6.96版本驅(qū)動)支持/識別。 云途車規(guī)MCU的patch補丁包的安裝方法有如下兩種: 方法①:使用SDK Config Tool集成的Patch Tool(從“YTMicro Devices”下拉菜單選擇需要打補丁的MCU系列,在“JLink Install Path”選擇JLINK軟件安裝根目錄)
方法②:使用SDK Release Package集成的Patch Tool(配置界面和patch方法同上)
連接硬件:通過USB或者12V DV電源給目標EVB供電,然后提供USB將JLINK調(diào)試器與電腦主機和目標MCU EVB連接:
在VScode中,切換到debug界面,選擇launch Debug jlink:,點擊左側(cè)的“?”開始調(diào)試器連接,elf下載和調(diào)試:
進入調(diào)試界面后,默認停在main()函數(shù)最開始的默認斷點:
VSCode IDE的Cortex Debug調(diào)試擴展支持自動變量(VARIABLES)、手動變量(WATCH)、斷點(BREAKPOINTS)、外設(shè)寄存器(CORTEX PERPHERALS)和內(nèi)核寄存器(CORTEX REFISTERS)查看以及復位/運行/單步/進入/退出函數(shù)/關(guān)閉調(diào)試器等便捷高效的調(diào)試控制、源代碼自動跳轉(zhuǎn),斷點快捷設(shè)置(單擊源代碼行號前紅點)以及調(diào)試控制臺顯示下載調(diào)試命令執(zhí)行l(wèi)og等,功能十分強大好用:
Tips:當然,用戶也可以選擇使用調(diào)試器(比如勞德巴赫、iSystem等)其他第三方調(diào)試軟件(比如Segger的OZone, 勞德巴赫的Trace32等)下載調(diào)試本文生成的elf文件,后續(xù)專門寫篇文件進行介紹。
總結(jié)
本文詳細介紹了基于YCT和VSCode(CMake + GCC)工具鏈的云途車規(guī)MCU應(yīng)用軟件開發(fā)環(huán)境的搭建和使用方法及步驟。此工具鏈搭建簡單、功能強大、使用方便,從SDK/MCAL底層驅(qū)動圖形化配置、代碼和應(yīng)用工程生成、到應(yīng)用程序編譯鏈接和下載調(diào)試等步驟“一氣呵成”,是云途車規(guī)MCU軟件開發(fā)的一站式解決方案,強烈推薦正在或者計劃使用云途車規(guī)MCU芯片開發(fā)汽車ECU應(yīng)用軟件的用戶評估使用。
-
mcu
+關(guān)注
關(guān)注
146文章
17123瀏覽量
350986 -
IDE
+關(guān)注
關(guān)注
0文章
338瀏覽量
46740 -
嵌入式軟件
+關(guān)注
關(guān)注
4文章
240瀏覽量
26641 -
開發(fā)環(huán)境
+關(guān)注
關(guān)注
1文章
225瀏覽量
16609 -
vscode
+關(guān)注
關(guān)注
1文章
155瀏覽量
7696
原文標題:云途車規(guī)MCU軟件開發(fā)環(huán)境搭建及使用詳解--VSCode(CMake GCC) IDE
文章出處:【微信號:汽車電子expert成長之路,微信公眾號:汽車電子expert成長之路】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論