色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內(nèi)不再提示

云途車規(guī)MCU軟件開發(fā)環(huán)境搭建及使用詳解

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

引言

MCU嵌入式軟件開發(fā)領(lǐng)域,過去很長一段時間都是以基于Eclipse框架開發(fā)的IDE為主,典型此類IDE包括:NXPCodeWarrior 10.x/11.xIDE, S32DS IDE, MCUXpresso IDE, TICCStudio 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。

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

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)等功能。

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

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 699849f0-401b-11ee-ac96-dac502259ad0.pngTips: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)用NinjaCMake構(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:

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

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插件: 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調(diào)試擴展插件--Cortex-Debug

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

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

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選擇界面, 6aebdc68-401b-11ee-ac96-dac502259ad0.png

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

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樣例工程選擇界面:

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

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

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

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

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

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

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

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

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: 工程名一旦選擇好后,不能直接更改, 設(shè)置好以上配置后保存YCT工程將在選擇Project Location目錄下創(chuàng)建一個Project Name同名的文件夾保存相關(guān)工程信息。

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

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

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

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

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

D. Debug in Vscode(VSCode Debug Settings)

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

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

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”確定:

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

SVD file path:設(shè)置調(diào)試時內(nèi)核和外設(shè)寄存器信息文件,保持默認配置即可;

以上配置信息,將被生成保存到應(yīng)用工程的./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應(yīng)用工程根目錄下創(chuàng)建一個名為“board”的文件夾用于保存所有的生成文件,包括.h/.c文件和鏈接文件:

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

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ù): 6e3808d8-401b-11ee-ac96-dac502259ad0.png

3.2.3 工程屬性(CMake GCC)配置

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

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ù)。

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

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ù)處理性能。

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

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

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

B. Debugging Options

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

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

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

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

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

其中,需要關(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進行測試驗證的。

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

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:

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

D. Link Options

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

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文件,其中保存了當前工程的所有配置信息:
7006869e-401b-11ee-ac96-dac502259ad0.png703fbeb4-401b-11ee-ac96-dac502259ad0.png

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

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

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

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

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

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

YCT生成的云途車規(guī)MCU MCAL應(yīng)用工程完整目錄如下:

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

調(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)”即可開始工程編譯和鏈接:

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

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

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

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)試和問題分析很有幫助。

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

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

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

4.2 下載調(diào)試應(yīng)用工程

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

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

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

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

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

上表為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軟件安裝根目錄)
733da040-401b-11ee-ac96-dac502259ad0.png

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

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

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

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

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

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

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

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

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等,功能十分強大好用:

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

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)用軟件的用戶評估使用。

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

    關(guān)注

    146

    文章

    17123

    瀏覽量

    350986
  • IDE
    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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    小白從0學習CW32的第一天(搭建軟件開發(fā)環(huán)境

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

    【視頻】如何搭建瑞薩MCU開發(fā)環(huán)境CubeSuit+

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

    ECU/MCU軟件開發(fā)

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

    軟通動力啟航 KS_IoT 智能開發(fā)套件 軟件開發(fā)環(huán)境搭建

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

    Linux軟件開發(fā)環(huán)境

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

    STM32 軟件開發(fā)環(huán)境搭建

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

    AN016基于CMAKE工具搭建GD32MCU開發(fā)環(huán)境

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

    規(guī)MCU VSCode IDE工程使用教程

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

    規(guī)MCU軟件開發(fā)生態(tài)解析

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

    規(guī)MCU軟件開發(fā)套件

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

    軟通動力啟航KS_IoT智能開發(fā)套件_軟件開發(fā)環(huán)境搭建V1

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

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

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

    戰(zhàn)略合作 | IAR全面支持規(guī)MCU

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

    規(guī)MCU設(shè)計廠商半導體完成新一輪融資

    半導體,一家專注于規(guī)MCU設(shè)計的公司,近日宣布完成了數(shù)億元人民幣的B2輪融資。本輪融資由國調(diào)基金領(lǐng)投,錫創(chuàng)投等機構(gòu)跟投。
    的頭像 發(fā)表于 02-05 09:40 ?755次閱讀
    主站蜘蛛池模板: 欧美激情视频一区二区| 国产a在线不卡| 欧美国产一区二区三区激情无套| 最近日本MV字幕免费观看在线| 火影小南被爆羞羞网站| 亚洲欧美一区二区久久| 娇小8一12xxxx第一次| 一本道色综合手机久久| 久久精品熟一区二区三区| 中文亚洲大香伊蕉不卡一区| 老湿司午夜爽爽影院榴莲视频 | 在线高清电影理论片4399| 久久大香线蕉综合爱| 早乙女由依在线观看| 免费精品一区二区三区AA片| 99久久无码一区人妻A片蜜| 青草影院天堂男人久久| 高hnp肉文| 亚洲AV日韩AV欧美在线观看网| 好湿好紧水多AAAAA片秀人网| 一个人HD在线观看免费高清视频| 久久中文字幕综合不卡一二区| 91综合精品网站久久| 轻轻挺进女教师的身体| 国产互换后人妻的疯狂VIDEO| 亚洲 欧美 国产 视频二区| 精品 在线 视频 亚洲| 1区2区3区4区产品不卡码网站| 欧美日韩精品一区二区三区四区| 动漫美女禁区| 亚洲高清中文字幕免费| 久久精品天天爽夜夜爽| a级精品九九九大片免费看| 涩涩视频www在线观看入口| 国产三级在线免费观看| 在线播放一区| 任你懆视频 这里只有精品| 国产久青青青青在线观看| 伊人AV一区二区三区夜色撩人| 妺妺窝人体色777777野大粗 | 入禽太深免费高清在线观看5|