吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

云途車規MCU軟件開發環境搭建及使用詳解

jf_ocihYtwl ? 來源:汽車電子expert成長之路 ? 2023-08-22 10:12 ? 次閱讀

引言

MCU嵌入式軟件開發領域,過去很長一段時間都是以基于Eclipse框架開發的IDE為主,典型此類IDE包括:NXPCodeWarrior 10.x/11.xIDE, S32DS IDE, MCUXpresso IDE, TICCStudio IDE,瑞薩e2 studio (Eclipse) IDE和ST的STM32CubeIDESPC5-StudioIDE等,但是近些年,微軟推出的開源Visual Studio Code(V簡稱SCode) IDE框架發展十分迅猛,根據權威數據,VScode在今年已經超過Eclipse成為全球第二大IDE。

6918e002-401b-11ee-ac96-dac502259ad0.png

VScode vs. Eclipse IDE

1.1 VSCode IDE架構

VSCode是基于Electron框架構建的,使用主進程和渲染進程來管理窗口和用戶界面,支持通過擴展來增強功能,并使用Monaco編輯器提供強大的代碼編輯和調試功能。它的架構主要包括以下幾個主要組件:

Electron:VSCode使用Electron作為框架,它是一個基于Web技術的桌面應用程序開發框架,可以將Web技術(HTML、CSS和JavaScript)打包成一個本地應用程序。

主進程(Main Process):主進程是VSCode的核心組件,負責管理所有的窗口和應用程序的生命周期。它使用Electron提供的API來創建和管理窗口,處理菜單、對話框等系統級別的操作。

渲染進程(Renderer Process):渲染進程是VSCode的界面組件,負責顯示和處理用戶界面。每個窗口都有一個獨立的渲染進程,它使用Electron的BrowserWindow對象來創建和管理窗口。渲染進程使用HTML、CSS和JavaScript來構建用戶界面,并通過與主進程通信來執行各種操作。

擴展(Extensions):VSCode支持通過擴展來增強其功能。擴展是使用JavaScript或TypeScript編寫的插件,可以添加新的編輯器功能、語言支持、調試器等。擴展可以在VSCode的運行時環境中與主進程和渲染進程進行通信,以實現各種功能。

編輯器(Editor):編輯器是VSCode的核心功能之一,它提供了強大的代碼編輯和調試功能。編輯器使用Monaco編輯器作為其基礎,它是一個開源的Web代碼編輯器,具有語法高亮、智能代碼補全、代碼導航、代碼重構等功能。

6956ac3e-401b-11ee-ac96-dac502259ad0.png

1.2 VSCode相對于Eclipse的優勢

VSCode相對于Eclipse的優勢包括:

輕量級:VSCode是一個輕量級的編輯器,啟動速度快,占用系統資源少,適合于低配置的電腦或者開發環境。

擴展性強:VSCode具有豐富的插件生態系統,可以通過安裝各種插件來擴展其功能,滿足不同開發需求。

跨平臺支持:VSCode支持Windows、macOS和Linux等多個操作系統開發者可以在不同的平臺上使用相同的編輯器進行開發。

內置終端:VSCode內置了終端,可以在編輯器中直接執行命令,無需額外打開終端窗口,提高開發效率。

強大的調試功能:VSCode提供了強大的調試功能,支持多種編程語言的調試,可以方便地設置斷點、查看變量值等。

Git集成:VSCode內置了Git集成,可以方便地進行版本控制操作,如提交、拉取、推送等。

用戶友好的界面:VSCode的界面簡潔、直觀,易于上手和使用,同時也支持自定義布局和主題,可以根據個人喜好進行配置。

快捷鍵和命令:VSCode提供了豐富的快捷鍵和命令,可以快速執行各種操作,提高開發效率。

總的來說,VSCode相對于Eclipse更加輕量、靈活、易用,并且具有更強大的擴展性和調試功能,適合于各種類型的開發。目前越來越多的MCU嵌入式軟件開發都轉向支持VSCode IDE,包括傳統的8051內核MCU,基于ARM的STM32等,此外IAR和Keil等傳統toolchain也提供了VSCode的擴展支持。

1.3 VSCode IDE下載和安裝

大家可以通過以下鏈接,免費下載安裝最新版本的VSCode: https://code.visualstudio.com/download 699849f0-401b-11ee-ac96-dac502259ad0.pngTips:VSCode提供了三大主流OS--Linux,Windows和macOS的支持,這里我們以Windows為例進行介紹。推薦大家下載使用系統(System Installer)穩定版本(stable)的VScode IDE。 VSCode的User Installer和System Installer是安裝VSCode時可選擇的兩種安裝方式,它們的主要差異如下:

安裝位置:User Installer將VSCode安裝在用戶的個人目錄下,而System Installer將VSCode安裝在系統的公共目錄下。User Installer的安裝位置通常是在用戶的主目錄下的一個隱藏文件夾中,而System Installer的安裝位置通常是在系統的應用程序目錄中。

權限:由于安裝位置的不同,User Installer只需要用戶的權限來安裝和更新VSCode,而System Installer可能需要管理員權限來進行安裝和更新。

更新:User Installer會自動檢測和更新VSCode,而System Installer通常需要管理員權限來進行更新。

多用戶支持:User Installer適用于單用戶環境,每個用戶可以有自己的VSCode安裝。而System Installer適用于多用戶環境,所有用戶共享同一個VSCode安裝。

簡而言之,User Installer適用于個人開發環境,安裝在用戶的個人目錄下,而System Installer適用于多用戶環境或者需要系統范圍內共享的情況,安裝在系統的公共目錄下。選擇哪種安裝方式取決于具體的使用場景和需求。 安裝包下載到本地后,雙擊運行即可開始安裝。安裝步驟十分簡單,此處不展開,大家可以參考官方文檔。

VSCode IDE及必要擴展安裝

基于VSCode IDE搭建云途車規MCU的整體思路如下: 使用VScode作為IDE,調用NinjaCMake構建編譯環境,調用GNU工具鏈進行工程代碼的編譯和鏈接生成可執行文件elf和Flash下載編程文件-bin/hex/s19, 通過GNU的GDBSever或者第三方調試軟件(比如Segger的Ozone, 勞德巴赫和i-System等)完成應用工程編譯結果的下載和調試。

VSCODE: https://code.visualstudio.com/

CMAKE: https://cmake.org/download/ (安裝目錄添加到系統PATH環境變量里)

Ninja: https://ninja-build.org/ (安裝目錄添加到系統PATH環境變量里)

GNU for ARM Cortex-M:https://developer.arm.com/downloads/-/gnu-rm(安裝目錄添加到系統PATH環境變量里)

在Windows命令行窗口/VSCode terminal中輸入查看輸出以確認以上CMake和Ninja工具是否安裝正確:


cmake --version
ninja --version
arm-none-eabi-gcc --version
若輸入以上命令后輸出如下,則安裝OK:

69eb75b2-401b-11ee-ac96-dac502259ad0.png

Tips:若無法提示的識別的命令,則有可能上面的環境變量設置對當前Windows命令行窗口/VSCode terminal沒有起作用,將Windows命令行窗口/VSCode IDE 關閉重啟再試。

Tips:Ninja和CMake是與軟件構建相關的工具,其功能如下:

Ninja:Ninja是一個快速、輕量級的構建系統工具。它使用簡單的配置文件來描述構建過程,并且能夠高效地執行并行構建。Ninja的設計目標是提供一種快速的構建工具,尤其適用于大型項目和復雜的構建過程。Ninja通常與其他構建工具(如CMake)配合使用。

CMake:CMake是一個跨平臺的構建工具,用于生成各種不同構建系統(如Makefile、Ninja等)所需的構建文件。CMake通過提供一個簡單的跨平臺配置語言,使得開發者可以輕松地定義項目的構建規則。CMake可以自動生成適用于不同操作系統和編譯器的構建文件,簡化了跨平臺項目的構建過程。

CMake用于定義項目的構建規則和依賴關系,并生成相應的構建文件(如Makefile或Ninja文件)。然后,使用Ninja等構建工具來實際執行構建過程,編譯源代碼、鏈接庫文件等。CMake和Ninja的配合使用可以提供靈活、高效的項目構建解決方案,并且支持跨平臺開發。 在云途配置工具(YCT)的安裝包中已經包含了Ninjia、CMake和GNU for ARM toolchain,大家參考之前的文章《云途配置工具(YCT)快速上手指南(QSG)》(點擊文章標題即可直接跳轉閱讀)安裝YCT時選擇一起安裝,相應的工具鏈的安裝路徑也會自動設置到Windows的環境變量中,從而方便VSCode調用。 在完成YCT和VScode安裝之后,為了更好的開發云途車規MCU的應用軟件,還需要安裝以下VScode擴展(extension):

2.1 C/C++語言支持擴展插件--C/C++ Extension Pack

在VSCode的擴展插件(extension,快捷鍵Ctrl + Shift + P打開),搜索C/C++在線安裝C/C++ Extension Pack插件: 6a0d8c06-401b-11ee-ac96-dac502259ad0.png

2.2 CMake及CMake Tools支持擴展插件

在VSCode的擴展插件(extension,快捷鍵Ctrl + Shift + P打開),搜索CMake在線安裝CMake和CMake Tools插件: 6a3a58b2-401b-11ee-ac96-dac502259ad0.png6a71e480-401b-11ee-ac96-dac502259ad0.png

2.3 ARM Cortex調試擴展插件--Cortex-Debug

在VSCode的擴展插件(extension,快捷鍵Ctrl + Shift + P打開),搜索Cortex-Debug在線安裝調試插件:

6aa15094-401b-11ee-ac96-dac502259ad0.png

YCT創建基于云途SDK/MCAL的車規MCU VSCode應用工程

3.1 基于YCT創建云途車規MCU的SDK/MCAL的配置工程

3.1.1 通過MCU選擇界面創建一個新的SDK/MCAL配置YCT工程

通過New Project -> Start My project from MCU -> "ACCESS TOMCUSELECTOR"打開MCU選擇界面, 6aebdc68-401b-11ee-ac96-dac502259ad0.png

可以查看所有支持的MCU芯片型號(part number)、封裝(Package)、存儲器大小、I/O及外設資源和工作主頻等信息,選擇使用的SDK/MCAL版本等。
6b5084ec-401b-11ee-ac96-dac502259ad0.png

Tips:由于YCT支持的MCU型號比較多,可以通過Family過濾來篩選,從而只顯示勾選的MCU family,快速找到所使用的的目標MCU型號。

3.1.2 通過MCAL樣例工程選擇界面創建一個MCAL配置YCT工程

通過New Project -> Start McalFromExample,Easy to Start-> "Choose Mcal Example"打開MCAL樣例工程選擇界面:

6b81785e-401b-11ee-ac96-dac502259ad0.png

MCAL樣例工程選擇界,選擇想要評估的MCU系列的MCAL版本,找到相應的MCAL模塊樣例工程,選擇保存路徑,最后點擊“Create”,即可打開該MCAL樣例工程:

6be2b84e-401b-11ee-ac96-dac502259ad0.png

Tips:通過這種方式打開的MCAL樣例工程是將MCAL安裝目錄下的樣例工程拷貝到用戶指定目錄的,可以任意修改,不必影響原有樣例工程。

3.2 YCT配置工程的工程配置(Project Setting)

通過以上3.1.1小節介紹的方法和步驟新創建的云途SDK和MCAL 配置YCT工程,將在LOG的Porblem窗口提示項目管理(PM--Project Manager)錯誤:

6c136ee4-401b-11ee-ac96-dac502259ad0.png

此時需要通過YCT主頁界面的“Settings”,打開YCT工程的工程設置(Project Setting)界面進行工程名、保存地址,使用工具鏈及調試等配置:

6c31faee-401b-11ee-ac96-dac502259ad0.png

工程配置界面用于配置整個工程的基本屬性,目前有以下配置。 6ca4a5c6-401b-11ee-ac96-dac502259ad0.png

3.2.1 Project配置

Project用于配置工程的基本信息,包括:

A. 工程名(Project Name)和工程保存地址(Project Location)

6cc6e9ec-401b-11ee-ac96-dac502259ad0.pngTips: 工程名一旦選擇好后,不能直接更改, 設置好以上配置后保存YCT工程將在選擇Project Location目錄下創建一個Project Name同名的文件夾保存相關工程信息。

B. 鏈接文件確認(link file)

YCT工具會生成對應的鏈接文件,當然你也可以選擇自己鏈接文件的位置。建議直接用默認的鏈接文件即可。 點擊最右邊的按鈕,會自動填充默認的鏈接文件。 6cecc4fa-401b-11ee-ac96-dac502259ad0.png

C. IDE選擇(Toolchain/IDE)與Toolchain Path

YCT工程支持創建以下工具鏈的云途車規MCU SDK/MCAL應用工程:

EWARM:IAR工程,工程屬性通過IAR IDE軟件界面配置;

KEIL:將創建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的下拉菜單選擇:

6d09061a-401b-11ee-ac96-dac502259ad0.png

Tips: 默認建議使用CMake+Vscode(GCC)的配置,更加高效和強大,本文介紹也以CMake+Vscode(GCC)為例進行。 當選擇CMake + Vscode(GCC/IAR/KEIL)的方式時,用戶需要將相應的工具鏈安裝路徑添加到操作系統的全局PATH變量或者手動選擇 6d24ee66-401b-11ee-ac96-dac502259ad0.png 若已經將工具鏈添加到PATH變量(通過YCT安裝包選擇默認安裝),那么這里可以不用選擇。 ?

D. Debug in Vscode(VSCode Debug Settings)

若選擇CMake+Vscode(GCC)的作為Toolchain,用戶可以勾選“VSCodeDebugger”開啟VSCODE 的Debug功能,目前只支持JLINK+VSCODE的方式,相關配置選項說明如下:

6d41fe66-401b-11ee-ac96-dac502259ad0.png

Debugger: JLINK, 保持默認即可;

Interface type:配置調試接口類型,推薦使用默認單線調試“SWD”,當然YTM32B1Mx系列車規MCU使用CM33內核也是可以支持標準的邊界掃描JTAG接口的,只需要將此配置改為“JTAG”即可。

Tips:① YTM32B1LD/Ex系列車規MCU使用CM0+內核,只支持SWD接口,此處不能設置為“JTAG”;② 云途MCAL中Port模塊默認的調試接口功能復用也是使用SWD接口,若要使用JTAG接口,必須修改Port模塊配置,否則會出現調試連接問題。

Entry point:進入調試后默認的斷點,可以是任意有效的C/匯編函數名,比如應用程序主函數main或者復位函數Reset_Handler,推薦使用默認的main即可;

GDB Server path:設置JLINK GDB Server命令行(JlinkGDBServerCL.exe)的路徑,默認為:C:Program Files (x86)SEGGERJLinkJLinkGDBServerCL.exe,若用戶自己電腦上JLINK的安裝目錄與此不同,則需要手動設置一下。

Tips:可以通過全局搜索工具,比如everyting搜索“JLinkGDBServerCL.exe”確定:

6d787b44-401b-11ee-ac96-dac502259ad0.png

SVD file path:設置調試時內核和外設寄存器信息文件,保持默認配置即可;

以上配置信息,將被生成保存到應用工程的./vscode/launch.json配置文件中: 6d9b9890-401b-11ee-ac96-dac502259ad0.png

3.2.2 YCT代碼生成選項(Code Generate)配置

Code Generate用于控制YCT的代碼生成行為,主要配置選項包括: 6ddf92ac-401b-11ee-ac96-dac502259ad0.png

Target Folder:YCT生成的配置代碼保存文件夾/目錄,默認為“board”,將在生成SDK/MCAL應用工程根目錄下創建一個名為“board”的文件夾用于保存所有的生成文件,包括.h/.c文件和鏈接文件:

6e19fae6-401b-11ee-ac96-dac502259ad0.png

Keep User Code When re-generating: 配置重新生成代碼時是否保存main.c中添加的用戶代碼,若勾選則添加在關鍵詞保護的指定區域中的用戶應用代碼將不被覆蓋,推薦保持默認勾選配置即可;

Generate board init function:配置是否生成系統和外設初始化函數,推薦默認的勾選配置,生成系統和外設的初始化調用API函數;

Board function name:設置Board初始化函數名字,默認為Board_Init,用戶可以設置為其他名字,推薦使用默認配置即可。該函數將在生產的main()函數中調用,可將系統時鐘初始化、外設模塊初始化以及引腳初始化等API放到Board_Init()中,

Tips:用戶可以通過YCT的API界面圖形化添加SDK和MCAL的驅動模塊初始化函數: 6e3808d8-401b-11ee-ac96-dac502259ad0.png

3.2.3 工程屬性(CMake GCC)配置

若3.2.1小節的IDE配置選擇為“CMake+Vscode(GCC)”,則可以通過YCT提供的CMake GCC界面配置所使用的GNU GCC編譯器和鏈接器選項,主要包括: 6e85166e-401b-11ee-ac96-dac502259ad0.png

A. Target Config

Arm family: ARM內核,根據新建yct工程時選擇的云途車規MCU型號自動選擇,這里不可配置;

Library support:選擇使用的C語言庫,包括GNU GCC的輕量版newlib_nano no I/O、newlib_nano Debugger Console和完整版newlib no I/O、newlib Debugger Console,用戶可根據自己應用的實際需求來選擇:newlib_nano是newlib的一個變種,它進一步減小了庫的大小,并提供了一些額外的優化。newlib_nano通過去除一些不常用的功能和減小庫的大小來降低內存占用和存儲需求。比如,newlib_nano庫不支持浮點數。

6ec35b9a-401b-11ee-ac96-dac502259ad0.png

Float ABI:浮點數應用二進制接口標準,支持純硬件FPU(FP(hard),使用硬件浮點數指令)、純軟件庫(Library(soft))和軟硬件混合(Library(softfp)),對于CM33內核支持硬件FPU,推薦使用純硬件FPU(FP(hard))或者軟硬件混合(Library(softfp)),以減少代碼size,提高CPU的浮點數處理性能。

6eecf82e-401b-11ee-ac96-dac502259ad0.png

FPU Type:CM33內核的FPU只支持單精度(Single-Point)浮點數指令:fpv4-sp-d16

6f05f126-401b-11ee-ac96-dac502259ad0.png

B. Debugging Options

6f1c610e-401b-11ee-ac96-dac502259ad0.png 調試選項配置包括:

Debug Level:調試等級配置,-g/1/3,數字越大,包含的調試信息越多,推薦使用默認配置即可。PS:若此選項配置為“None”,則生成的elf文件不包含任何調試信息,下載后將無法調試,包括斷點都不能打。

6f34e7d8-401b-11ee-ac96-dac502259ad0.png

Debug format:生成elf文件包含的調試文件格式支持配置,用戶可根據實際需求進行配置,一般情況推薦使用默認配置即可。

6f53b546-401b-11ee-ac96-dac502259ad0.png

Generate gcov information(-ftest-coverage -fprofile-arcs): 勾選將生成GNU的代碼測試覆蓋度和profile信息。

C. Compiler Options

GCC編譯的配置選項如下:

6f69b10c-401b-11ee-ac96-dac502259ad0.png

其中,需要關注的配置選項如下:

Optimization Level:優化等級設置,-O0/1/2/s/fast,-O0就是沒有任何優化,編譯的代碼size最大,-O1是比較推薦的優化設置,-Os的優化目標是代碼大小size,編譯結果最小,但是運行速度比較差,-Ofast優化目標為速度speed,運行速度快,但是代碼size可能比較大,用戶可根據實際需求進行配置,云途推薦使用-O1,因為云途SDK和MCAL都是基于-O1進行測試驗證的。

6f929d4c-401b-11ee-ac96-dac502259ad0.png

Function Sections(-ffunction-section):勾選將在工程編譯結果的map文件中生成應用工程中所有函數的段(.text section)信息,推薦使用默認勾選配置即可;

Data sections(-fdata-sections):勾選將在工程編譯結果的map文件中生成應用工程中所數據的段(.data/.bss section)信息,推薦使用默認勾選配置即可;

Other flags:用戶可在此輸入自定義的編譯選項,比如添加一個全局有效的宏定義符號MCAL_ENABLE_USER_MODE_SUPPORT:

6fb58758-401b-11ee-ac96-dac502259ad0.png

D. Link Options

Link Options可以用于配置應用工程鏈接選項,主要配置選項如下: 6fe131b4-401b-11ee-ac96-dac502259ad0.png

Remove unused sections(-Xlinker --gc-section):勾選此選項鏈接生成成的elf文件將刪除未使用的代碼段和數據段,從而減小代碼大小,且不影響應用功能和程序運行結果,因此推薦使用默認使能選項;

Printf removed sections(-Xlinker --printf-gc-section):勾選此選項,則在鏈接過程中將在DE的輸出控制臺打印被刪除/移除的段信息;若有需要,可以勾選使能此選項。

Other flags:用戶可在此輸入自定義的鏈接配置選項;

Tips:關于GNU GCC toolchain的編譯鏈接配置選項細節,可以參考如下文章或者鏈接:

S32DS GNU GCC編譯優化選項與配置方法詳解及S32 SDK代碼編譯優化選項設置建議》(點擊文章標題即可直接跳轉閱讀);

GNU官網在線幫助手冊:https://www.gnu.org/doc/doc.html

3.3 生成MCAL/SDK配置代碼及應用工程

在完成以上工程配置之后,點擊“Ctrl+S”保存工程,則會在指定的工程目錄下創建一個工程名命名的yct文件,其中保存了當前工程的所有配置信息:
7006869e-401b-11ee-ac96-dac502259ad0.png703fbeb4-401b-11ee-ac96-dac502259ad0.png

然后,添加應用所需的SDK或者MCAL驅動模塊,完成配置并解決/fix所有錯誤之后(LOG界面中Problem的Errors為0),即可點擊“Generate”開始配置代碼和應用工程生成了:

705e6828-401b-11ee-ac96-dac502259ad0.png

在彈出的Generate Code窗口,可以預覽查看(View)配置結果生成代碼,點擊“Generate”即可開始生成代碼:

708c3ca8-401b-11ee-ac96-dac502259ad0.png

完成配置代碼和應用工程生成后,會彈窗提示是否打開當前工程?選擇“OK”,YCT就會自動調用VScode IDE打開當前工程:

70cea2be-401b-11ee-ac96-dac502259ad0.png

YCT生成的云途車規MCU MCAL應用工程完整目錄如下:

711a9818-401b-11ee-ac96-dac502259ad0.png

調試云途車規MCU的VSCode應用工程

默認YCT配置生成的VSCode IDE應用工程,在確保本文第2章節介紹的工具鏈軟件(CMake + Ninja + GCC for ARM)和VSCode擴展插件安裝正確的情況下,是可以被成功編譯鏈接生成elf文件并下載調試的。

4.1 編譯應用工程

打開上文生成的VSCode IDE應用工程,點擊下方的“Build”命令,在上方彈出的編譯工具鏈欄提示,選擇“[unspecfied] Unspecified(Let CMake guess what compiler and environment to use)”即可開始工程編譯和鏈接:

7159a3e6-401b-11ee-ac96-dac502259ad0.png

整個編譯和鏈接過程會在VSCode IDE的OUTPUT窗口輸出提示信息,編譯完成后,在工程目錄下將生成一個“build”文件夾,用于存放編譯結果,比如map文件和elf文件:

719cdfee-401b-11ee-ac96-dac502259ad0.png ?

Tips:安裝了CMake Tools VSCode擴展并且應用程序項目構建完成,生成elf文件后,打開CMake工具實用程序,用戶可以選擇不同的CMake目標來生成所需的Flash編程文件和工程列表文件:

gembin-Utility:生成二進制文件,僅包含以二進制格式存儲的程序數據,文件大小與Flash大小相同。

gemhex-Utility:生成Intel指定的十六進制文件,包含程序數據和Flash地址,以人類可讀的ASCII文本格式表示。

gems19-Utility:生成Motorola指定的十六進制文件,包含程序數據和Flash地址,以人類可讀的ASCII文本格式表示。

gemlist-Utility:生成列表文件,包含從elf文件中提取的所有匯編代碼和符號信息。對于調試和問題分析很有幫助。

720d2f1a-401b-11ee-ac96-dac502259ad0.png ?

生成的Flash編程文件和列表文件存放在“build”目錄下:

7265c9fe-401b-11ee-ac96-dac502259ad0.png

4.2 下載調試應用工程

完成以上編譯鏈接生成elf文件之后,就可以開始下載調試了。具體方法步驟如下:

首先,需要確認YCT自動生成的debug配置腳本launch.json中MCU芯片的“device” name是否JLINK能夠識別的目標板使用MCU對應的完整part number:

728bc3c0-401b-11ee-ac96-dac502259ad0.png

若不是(v1.1.8及之前的老版本YCT工具),則參考下表修改:

731156a2-401b-11ee-ac96-dac502259ad0.png

上表為J-Flash軟件目標設備配置(Target Device Settings)界面截圖,需要提前安裝云途車規MCU的patch補丁包才能讓JLINK(推薦JLINK V9以上版本硬件 + v6.96版本驅動)支持/識別。 云途車規MCU的patch補丁包的安裝方法有如下兩種: 方法①:使用SDK Config Tool集成的Patch Tool(從“YTMicro Devices”下拉菜單選擇需要打補丁的MCU系列,在“JLink Install Path”選擇JLINK軟件安裝根目錄)
733da040-401b-11ee-ac96-dac502259ad0.png

方法②:使用SDK Release Package集成的Patch Tool(配置界面和patch方法同上)

736645ea-401b-11ee-ac96-dac502259ad0.png

連接硬件:通過USB或者12V DV電源給目標EVB供電,然后提供USB將JLINK調試器與電腦主機和目標MCU EVB連接:

73827b52-401b-11ee-ac96-dac502259ad0.png

在VScode中,切換到debug界面,選擇launch Debug jlink:,點擊左側的“?”開始調試器連接,elf下載和調試:

73c0f58a-401b-11ee-ac96-dac502259ad0.png

進入調試界面后,默認停在main()函數最開始的默認斷點:

73f9a376-401b-11ee-ac96-dac502259ad0.png

VSCode IDE的Cortex Debug調試擴展支持自動變量(VARIABLES)、手動變量(WATCH)、斷點(BREAKPOINTS)、外設寄存器(CORTEX PERPHERALS)和內核寄存器(CORTEX REFISTERS)查看以及復位/運行/單步/進入/退出函數/關閉調試器等便捷高效的調試控制、源代碼自動跳轉,斷點快捷設置(單擊源代碼行號前紅點)以及調試控制臺顯示下載調試命令執行log等,功能十分強大好用:

74362ce2-401b-11ee-ac96-dac502259ad0.png

Tips:當然,用戶也可以選擇使用調試器(比如勞德巴赫、iSystem等)其他第三方調試軟件(比如Segger的OZone, 勞德巴赫的Trace32等)下載調試本文生成的elf文件,后續專門寫篇文件進行介紹。

總結

本文詳細介紹了基于YCT和VSCode(CMake + GCC)工具鏈的云途車規MCU應用軟件開發環境的搭建和使用方法及步驟。此工具鏈搭建簡單、功能強大、使用方便,從SDK/MCAL底層驅動圖形化配置、代碼和應用工程生成、到應用程序編譯鏈接和下載調試等步驟“一氣呵成”,是云途車規MCU軟件開發的一站式解決方案,強烈推薦正在或者計劃使用云途車規MCU芯片開發汽車ECU應用軟件的用戶評估使用。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17317

    瀏覽量

    352635
  • IDE
    IDE
    +關注

    關注

    0

    文章

    341

    瀏覽量

    46878
  • 嵌入式軟件
    +關注

    關注

    4

    文章

    240

    瀏覽量

    26729
  • 開發環境
    +關注

    關注

    1

    文章

    230

    瀏覽量

    16697
  • vscode
    +關注

    關注

    1

    文章

    157

    瀏覽量

    7851

原文標題:云途車規MCU軟件開發環境搭建及使用詳解--VSCode(CMake GCC) IDE

文章出處:【微信號:汽車電子expert成長之路,微信公眾號:汽車電子expert成長之路】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    半導體:基于Arm Cortex-M33的高端MCU,對標NXP域控制器

    在8月5日第十二屆松山湖中國IC創新高峰論壇,面向“智慧出行”的創新IC新品推介會上,蘇州半導體有限公司帶來了其今年量產的高端32位MCU
    的頭像 發表于 08-07 14:35 ?7771次閱讀
    <b class='flag-5'>云</b><b class='flag-5'>途</b>半導體:基于Arm Cortex-M33的高端<b class='flag-5'>車</b><b class='flag-5'>規</b><b class='flag-5'>MCU</b>,對標NXP域控制器

    小白從0學習CW32的第一天(搭建軟件開發環境

    小白從0學習CW32的第一天(搭建軟件開發環境
    的頭像 發表于 05-26 14:34 ?2164次閱讀
    小白從0學習CW32的第一天(<b class='flag-5'>搭建</b><b class='flag-5'>軟件開發</b><b class='flag-5'>環境</b>)

    【視頻】如何搭建瑞薩MCU開發環境CubeSuit+

    本帖最后由 于圭 于 2015-1-8 16:54 編輯 本視頻介紹了如何搭建瑞薩MCU開發環境CubeSuite、如何使用CubeSuite對瑞薩
    發表于 01-08 16:09

    ECU/MCU軟件開發

    汽車電子技術——ECU/MCU軟件開發1. ECU/MCU軟件開發知識儲備1.1 ECU/MCU相關基礎知識1.2 C語言編程知識1.3 外
    發表于 09-10 08:13

    軟通動力啟航 KS_IoT 智能開發套件 軟件開發環境搭建

    概述本文主要介紹基于OpenHarmony1.1.3版本下軟通動力啟航KS_IoT智能開發套件(以下簡稱:啟航KS)軟件開發環境搭建,指導如何進行虛擬機安裝、Linux系統安裝、代碼
    發表于 07-01 16:17

    Linux軟件開發環境

    Linux軟件開發環境介紹。
    發表于 03-25 15:46 ?7次下載
    Linux<b class='flag-5'>軟件開發</b><b class='flag-5'>環境</b>

    STM32 軟件開發環境搭建

    STM32 軟件開發環境搭建
    發表于 11-13 16:51 ?25次下載
    STM32 <b class='flag-5'>軟件開發</b><b class='flag-5'>環境</b><b class='flag-5'>搭建</b>

    AN016基于CMAKE工具搭建GD32MCU開發環境

    AN016 基于CMAKE工具搭建GD32 MCU開發環境
    發表于 02-27 18:20 ?3次下載
    AN016基于CMAKE工具<b class='flag-5'>搭建</b>GD32<b class='flag-5'>MCU</b><b class='flag-5'>開發</b><b class='flag-5'>環境</b>

    MCU VSCode IDE工程使用教程

    作者按:隨著越來越多云MCU芯片型號的量產,越來越多的客戶開始使用
    的頭像 發表于 09-24 10:51 ?2696次閱讀
    <b class='flag-5'>云</b><b class='flag-5'>途</b><b class='flag-5'>車</b><b class='flag-5'>規</b><b class='flag-5'>MCU</b> VSCode IDE工程使用教程

    MCU軟件開發生態解析

    )的核心芯片,其軟件開發生態是客戶高效快速且可靠的開發各類汽車功能應用軟件的基礎,是一顆MCU
    的頭像 發表于 10-18 10:00 ?5461次閱讀
    <b class='flag-5'>車</b><b class='flag-5'>規</b><b class='flag-5'>MCU</b>的<b class='flag-5'>軟件開發</b>生態解析

    MCU軟件開發套件

    費用。 對于項目預算有限、非平臺化的小項目,非AUTOSAR(Non-AUTOSAR)軟件開發是一個不錯的選擇。雖然很多大客戶有自
    的頭像 發表于 10-27 16:05 ?1757次閱讀
    <b class='flag-5'>車</b><b class='flag-5'>規</b><b class='flag-5'>MCU</b>的<b class='flag-5'>軟件開發</b>套件

    軟通動力啟航KS_IoT智能開發套件_軟件開發環境搭建V1

    概述本文主要介紹基于OpenHarmony1.1.3版本下軟通動力啟航KS_IoT智能開發套件(以下簡稱:啟航KS)軟件開發環境搭建,指導如何進行虛擬機安裝、Linux系統安裝、代碼
    發表于 01-06 17:46 ?42次下載

    基于YCT的SDK配置工程升級方法

    配置工具(YCT - Yuntu Config Tool)自去年Q4推出以來,已經有不少
    的頭像 發表于 11-14 11:16 ?1742次閱讀
    基于YCT的<b class='flag-5'>云</b><b class='flag-5'>途</b>SDK配置工程升級方法

    戰略合作 | IAR全面支持MCU

    與知名國產汽車芯片公司江蘇半導體有限公司(以下簡稱“半導體”)聯合宣布,兩家公司達成戰略合作,最新發布的IAR Embedded Workbench for Arm 9.50版
    發表于 01-29 17:03 ?559次閱讀
    戰略合作 | IAR全面支持<b class='flag-5'>云</b><b class='flag-5'>途</b><b class='flag-5'>車</b><b class='flag-5'>規</b>級<b class='flag-5'>MCU</b>

    MCU設計廠商半導體完成新一輪融資

    半導體,一家專注于MCU設計的公司,近日宣布完成了數億元人民幣的B2輪融資。本輪融資由國調基金領投,錫創投等機構跟投。
    的頭像 發表于 02-05 09:40 ?824次閱讀
    百家乐出千的方法| 奥斯卡百家乐的玩法技巧和规则 | 百家乐的连庄连闲| 百家乐官网出庄的概率| 百家乐视频聊天软件| 威尼斯人娱乐城玩百家乐| 皇冠网vip小说| 网上百家乐官网平台下载| 百家乐官网强对弱的对打法| 百家乐官网baccarat| 玩百家乐官网上高尔夫娱乐场| 乐享百家乐的玩法技巧和规则 | 威尼斯人娱乐城 196| 霍邱县| 百家乐官网路技巧| 百家乐网上真钱娱乐平台| 女神国际娱乐城| 澳门百家乐官网娱乐平台| 百家乐赌场凯时娱乐| 皇冠网小说网站网址| 竞咪百家乐官网的玩法技巧和规则| 百家乐公式与赌法| 金秀| 利高百家乐游戏| 顶级赌场官方客户端下载| 百家乐官网赌博筹码| 百家乐官网编单短信接收| 百家乐机械投注法| 恒和国际| 黄金城百家乐官网下载| 大发888游戏下载46| 百家乐官网哪条路准| 百家乐翻天youtube| 和记娱乐| 真人百家乐官网作| 澳门博彩业| 巴比伦百家乐官网的玩法技巧和规则 | 会同县| 太阳城百家乐的破解| 菲律宾太子娱乐城| 百家乐游戏类型|