在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

jf_ocihYtwl ? 來(lái)源:汽車電子expert成長(zhǎng)之路 ? 2023-08-22 10:12 ? 次閱讀

引言

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

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

VScode vs. Eclipse IDE

1.1 VSCode IDE架構(gòu)

VSCode是基于Electron框架構(gòu)建的,使用主進(jìn)程和渲染進(jìn)程來(lái)管理窗口和用戶界面,支持通過(guò)擴(kuò)展來(lái)增強(qiáng)功能,并使用Monaco編輯器提供強(qiáng)大的代碼編輯和調(diào)試功能。它的架構(gòu)主要包括以下幾個(gè)主要組件:

Electron:VSCode使用Electron作為框架,它是一個(gè)基于Web技術(shù)的桌面應(yīng)用程序開(kāi)發(fā)框架,可以將Web技術(shù)(HTML、CSS和JavaScript)打包成一個(gè)本地應(yīng)用程序。

主進(jìn)程(Main Process):主進(jìn)程是VSCode的核心組件,負(fù)責(zé)管理所有的窗口和應(yīng)用程序的生命周期。它使用Electron提供的API來(lái)創(chuàng)建和管理窗口,處理菜單、對(duì)話框等系統(tǒng)級(jí)別的操作。

渲染進(jìn)程(Renderer Process):渲染進(jìn)程是VSCode的界面組件,負(fù)責(zé)顯示和處理用戶界面。每個(gè)窗口都有一個(gè)獨(dú)立的渲染進(jìn)程,它使用Electron的BrowserWindow對(duì)象來(lái)創(chuàng)建和管理窗口。渲染進(jìn)程使用HTML、CSS和JavaScript來(lái)構(gòu)建用戶界面,并通過(guò)與主進(jìn)程通信來(lái)執(zhí)行各種操作。

擴(kuò)展(Extensions):VSCode支持通過(guò)擴(kuò)展來(lái)增強(qiáng)其功能。擴(kuò)展是使用JavaScript或TypeScript編寫的插件,可以添加新的編輯器功能、語(yǔ)言支持、調(diào)試器等。擴(kuò)展可以在VSCode的運(yùn)行時(shí)環(huán)境中與主進(jìn)程和渲染進(jìn)程進(jìn)行通信,以實(shí)現(xiàn)各種功能。

編輯器(Editor):編輯器是VSCode的核心功能之一,它提供了強(qiáng)大的代碼編輯和調(diào)試功能。編輯器使用Monaco編輯器作為其基礎(chǔ),它是一個(gè)開(kāi)源的Web代碼編輯器,具有語(yǔ)法高亮、智能代碼補(bǔ)全、代碼導(dǎo)航、代碼重構(gòu)等功能。

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

1.2 VSCode相對(duì)于Eclipse的優(yōu)勢(shì)

VSCode相對(duì)于Eclipse的優(yōu)勢(shì)包括:

輕量級(jí):VSCode是一個(gè)輕量級(jí)的編輯器,啟動(dòng)速度快,占用系統(tǒng)資源少,適合于低配置的電腦或者開(kāi)發(fā)環(huán)境。

擴(kuò)展性強(qiáng):VSCode具有豐富的插件生態(tài)系統(tǒng),可以通過(guò)安裝各種插件來(lái)擴(kuò)展其功能,滿足不同開(kāi)發(fā)需求。

跨平臺(tái)支持:VSCode支持Windows、macOS和Linux等多個(gè)操作系統(tǒng)開(kāi)發(fā)者可以在不同的平臺(tái)上使用相同的編輯器進(jìn)行開(kāi)發(fā)。

內(nèi)置終端:VSCode內(nèi)置了終端,可以在編輯器中直接執(zhí)行命令,無(wú)需額外打開(kāi)終端窗口,提高開(kāi)發(fā)效率。

強(qiáng)大的調(diào)試功能:VSCode提供了強(qiáng)大的調(diào)試功能,支持多種編程語(yǔ)言的調(diào)試,可以方便地設(shè)置斷點(diǎn)、查看變量值等。

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

用戶友好的界面:VSCode的界面簡(jiǎn)潔、直觀,易于上手和使用,同時(shí)也支持自定義布局和主題,可以根據(jù)個(gè)人喜好進(jìn)行配置。

快捷鍵和命令:VSCode提供了豐富的快捷鍵和命令,可以快速執(zhí)行各種操作,提高開(kāi)發(fā)效率。

總的來(lái)說(shuō),VSCode相對(duì)于Eclipse更加輕量、靈活、易用,并且具有更強(qiáng)大的擴(kuò)展性和調(diào)試功能,適合于各種類型的開(kāi)發(fā)。目前越來(lái)越多的MCU嵌入式軟件開(kāi)發(fā)都轉(zhuǎn)向支持VSCode IDE,包括傳統(tǒng)的8051內(nèi)核MCU,基于ARM的STM32等,此外IAR和Keil等傳統(tǒng)toolchain也提供了VSCode的擴(kuò)展支持。

1.3 VSCode IDE下載和安裝

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

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

權(quán)限:由于安裝位置的不同,User Installer只需要用戶的權(quán)限來(lái)安裝和更新VSCode,而System Installer可能需要管理員權(quán)限來(lái)進(jìn)行安裝和更新。

更新:User Installer會(huì)自動(dòng)檢測(cè)和更新VSCode,而System Installer通常需要管理員權(quán)限來(lái)進(jìn)行更新。

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

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

VSCode IDE及必要擴(kuò)展安裝

基于VSCode IDE搭建云途車規(guī)MCU的整體思路如下: 使用VScode作為IDE,調(diào)用NinjaCMake構(gòu)建編譯環(huán)境,調(diào)用GNU工具鏈進(jìn)行工程代碼的編譯和鏈接生成可執(zhí)行文件elf和Flash下載編程文件-bin/hex/s19, 通過(guò)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中輸入查看輸出以確認(rèn)以上CMake和Ninja工具是否安裝正確:


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

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

Tips:若無(wú)法提示的識(shí)別的命令,則有可能上面的環(huán)境變量設(shè)置對(duì)當(dāng)前Windows命令行窗口/VSCode terminal沒(méi)有起作用,將Windows命令行窗口/VSCode IDE 關(guān)閉重啟再試。

Tips:Ninja和CMake是與軟件構(gòu)建相關(guān)的工具,其功能如下:

Ninja:Ninja是一個(gè)快速、輕量級(jí)的構(gòu)建系統(tǒng)工具。它使用簡(jiǎn)單的配置文件來(lái)描述構(gòu)建過(guò)程,并且能夠高效地執(zhí)行并行構(gòu)建。Ninja的設(shè)計(jì)目標(biāo)是提供一種快速的構(gòu)建工具,尤其適用于大型項(xiàng)目和復(fù)雜的構(gòu)建過(guò)程。Ninja通常與其他構(gòu)建工具(如CMake)配合使用。

CMake:CMake是一個(gè)跨平臺(tái)的構(gòu)建工具,用于生成各種不同構(gòu)建系統(tǒng)(如Makefile、Ninja等)所需的構(gòu)建文件。CMake通過(guò)提供一個(gè)簡(jiǎn)單的跨平臺(tái)配置語(yǔ)言,使得開(kāi)發(fā)者可以輕松地定義項(xiàng)目的構(gòu)建規(guī)則。CMake可以自動(dòng)生成適用于不同操作系統(tǒng)和編譯器的構(gòu)建文件,簡(jiǎn)化了跨平臺(tái)項(xiàng)目的構(gòu)建過(guò)程。

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

2.1 C/C++語(yǔ)言支持?jǐn)U展插件--C/C++ Extension Pack

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

2.2 CMake及CMake Tools支持?jǐn)U展插件

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

2.3 ARM Cortex調(diào)試擴(kuò)展插件--Cortex-Debug

在VSCode的擴(kuò)展插件(extension,快捷鍵Ctrl + Shift + P打開(kāi)),搜索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 通過(guò)MCU選擇界面創(chuàng)建一個(gè)新的SDK/MCAL配置YCT工程

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

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

Tips:由于YCT支持的MCU型號(hào)比較多,可以通過(guò)Family過(guò)濾來(lái)篩選,從而只顯示勾選的MCU family,快速找到所使用的的目標(biāo)MCU型號(hào)。

3.1.2 通過(guò)MCAL樣例工程選擇界面創(chuàng)建一個(gè)MCAL配置YCT工程

通過(guò)New Project -> Start McalFromExample,Easy to Start-> "Choose Mcal Example"打開(kāi)MCAL樣例工程選擇界面:

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

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

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

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

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

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

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

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

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

工程配置界面用于配置整個(gè)工程的基本屬性,目前有以下配置。 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)建一個(gè)Project Name同名的文件夾保存相關(guān)工程信息。

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

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

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

YCT工程支持創(chuàng)建以下工具鏈的云途車規(guī)MCU SDK/MCAL應(yīng)用工程:

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

KEIL:將創(chuàng)建ARM的Keil v5/MDK IDE工程,工程屬性通過(guò)Keil/MDK軟件界面配置;

CMake + VSCode(GCC): 使用CMake + GNU/GCC工具鏈的VSCode IDE工程,工程屬性通過(guò)YCT的CMake GCC界面或者CMake的CMakelist.txt配置;

CMake + VSCode(IAR): 使用CMake + GNU/GCC工具鏈的VSCode IDE工程,工程屬性通過(guò)CMake的CMakelist.txt配置;

CMake + VSCode(KEIL): 使用CMake + GNU/GCC工具鏈的VSCode IDE工程,工程屬性通過(guò)CMake的CMakelist.txt配置;

這些toolchain/IDE配置可以方便地通過(guò)Toolchain/IDE的下拉菜單選擇:

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

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

D. Debug in Vscode(VSCode Debug Settings)

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

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

Debugger: JLINK, 保持默認(rèn)即可;

Interface type:配置調(diào)試接口類型,推薦使用默認(rèn)單線調(diào)試“SWD”,當(dāng)然YTM32B1Mx系列車規(guī)MCU使用CM33內(nèi)核也是可以支持標(biāo)準(zhǔn)的邊界掃描JTAG接口的,只需要將此配置改為“JTAG”即可。

Tips:① YTM32B1LD/Ex系列車規(guī)MCU使用CM0+內(nèi)核,只支持SWD接口,此處不能設(shè)置為“JTAG”;② 云途MCAL中Port模塊默認(rèn)的調(diào)試接口功能復(fù)用也是使用SWD接口,若要使用JTAG接口,必須修改Port模塊配置,否則會(huì)出現(xiàn)調(diào)試連接問(wèn)題。

Entry point:進(jìn)入調(diào)試后默認(rèn)的斷點(diǎn),可以是任意有效的C/匯編函數(shù)名,比如應(yīng)用程序主函數(shù)main或者復(fù)位函數(shù)Reset_Handler,推薦使用默認(rèn)的main即可;

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

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

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

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

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

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

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

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

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

Keep User Code When re-generating: 配置重新生成代碼時(shí)是否保存main.c中添加的用戶代碼,若勾選則添加在關(guān)鍵詞保護(hù)的指定區(qū)域中的用戶應(yīng)用代碼將不被覆蓋,推薦保持默認(rèn)勾選配置即可;

Generate board init function:配置是否生成系統(tǒng)和外設(shè)初始化函數(shù),推薦默認(rèn)的勾選配置,生成系統(tǒng)和外設(shè)的初始化調(diào)用API函數(shù);

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

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

3.2.3 工程屬性(CMake GCC)配置

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

A. Target Config

Arm family: ARM內(nèi)核,根據(jù)新建yct工程時(shí)選擇的云途車規(guī)MCU型號(hào)自動(dòng)選擇,這里不可配置;

Library support:選擇使用的C語(yǔ)言庫(kù),包括GNU GCC的輕量版newlib_nano no I/O、newlib_nano Debugger Console和完整版newlib no I/O、newlib Debugger Console,用戶可根據(jù)自己應(yīng)用的實(shí)際需求來(lái)選擇:newlib_nano是newlib的一個(gè)變種,它進(jìn)一步減小了庫(kù)的大小,并提供了一些額外的優(yōu)化。newlib_nano通過(guò)去除一些不常用的功能和減小庫(kù)的大小來(lái)降低內(nèi)存占用和存儲(chǔ)需求。比如,newlib_nano庫(kù)不支持浮點(diǎn)數(shù)。

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

Float ABI:浮點(diǎn)數(shù)應(yīng)用二進(jìn)制接口標(biāo)準(zhǔn),支持純硬件FPU(FP(hard),使用硬件浮點(diǎn)數(shù)指令)、純軟件庫(kù)(Library(soft))和軟硬件混合(Library(softfp)),對(duì)于CM33內(nèi)核支持硬件FPU,推薦使用純硬件FPU(FP(hard))或者軟硬件混合(Library(softfp)),以減少代碼size,提高CPU的浮點(diǎn)數(shù)處理性能。

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

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

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

B. Debugging Options

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

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

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

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

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

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

C. Compiler Options

GCC編譯的配置選項(xiàng)如下:

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

其中,需要關(guān)注的配置選項(xiàng)如下:

Optimization Level:優(yōu)化等級(jí)設(shè)置,-O0/1/2/s/fast,-O0就是沒(méi)有任何優(yōu)化,編譯的代碼size最大,-O1是比較推薦的優(yōu)化設(shè)置,-Os的優(yōu)化目標(biāo)是代碼大小size,編譯結(jié)果最小,但是運(yùn)行速度比較差,-Ofast優(yōu)化目標(biāo)為速度speed,運(yùn)行速度快,但是代碼size可能比較大,用戶可根據(jù)實(shí)際需求進(jìn)行配置,云途推薦使用-O1,因?yàn)樵仆維DK和MCAL都是基于-O1進(jìn)行測(cè)試驗(yàn)證的。

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

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

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

Other flags:用戶可在此輸入自定義的編譯選項(xiàng),比如添加一個(gè)全局有效的宏定義符號(hào)MCAL_ENABLE_USER_MODE_SUPPORT:

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

D. Link Options

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

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

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

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

Tips:關(guān)于GNU GCC toolchain的編譯鏈接配置選項(xiàng)細(xì)節(jié),可以參考如下文章或者鏈接:

S32DS GNU GCC編譯優(yōu)化選項(xiàng)與配置方法詳解及S32 SDK代碼編譯優(yōu)化選項(xiàng)設(shè)置建議》(點(diǎn)擊文章標(biāo)題即可直接跳轉(zhuǎn)閱讀);

GNU官網(wǎng)在線幫助手冊(cè):https://www.gnu.org/doc/doc.html

3.3 生成MCAL/SDK配置代碼及應(yīng)用工程

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

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

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

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

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

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

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)用工程

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

4.1 編譯應(yīng)用工程

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

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

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

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

Tips:安裝了CMake Tools VSCode擴(kuò)展并且應(yīng)用程序項(xiàng)目構(gòu)建完成,生成elf文件后,打開(kāi)CMake工具實(shí)用程序,用戶可以選擇不同的CMake目標(biāo)來(lái)生成所需的Flash編程文件和工程列表文件:

gembin-Utility:生成二進(jìn)制文件,僅包含以二進(jìn)制格式存儲(chǔ)的程序數(shù)據(jù),文件大小與Flash大小相同。

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

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

gemlist-Utility:生成列表文件,包含從elf文件中提取的所有匯編代碼和符號(hào)信息。對(duì)于調(diào)試和問(wèn)題分析很有幫助。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

進(jìn)入調(diào)試界面后,默認(rèn)停在main()函數(shù)最開(kāi)始的默認(rèn)斷點(diǎn):

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

VSCode IDE的Cortex Debug調(diào)試擴(kuò)展支持自動(dòng)變量(VARIABLES)、手動(dòng)變量(WATCH)、斷點(diǎn)(BREAKPOINTS)、外設(shè)寄存器(CORTEX PERPHERALS)和內(nèi)核寄存器(CORTEX REFISTERS)查看以及復(fù)位/運(yùn)行/單步/進(jìn)入/退出函數(shù)/關(guān)閉調(diào)試器等便捷高效的調(diào)試控制、源代碼自動(dòng)跳轉(zhuǎn),斷點(diǎn)快捷設(shè)置(單擊源代碼行號(hào)前紅點(diǎn))以及調(diào)試控制臺(tái)顯示下載調(diào)試命令執(zhí)行l(wèi)og等,功能十分強(qiáng)大好用:

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

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

總結(jié)

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

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

    關(guān)注

    146

    文章

    17318

    瀏覽量

    352649
  • IDE
    IDE
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    46878
  • 嵌入式軟件
    +關(guān)注

    關(guān)注

    4

    文章

    240

    瀏覽量

    26729
  • 開(kāi)發(fā)環(huán)境

    關(guān)注

    1

    文章

    230

    瀏覽量

    16697
  • vscode
    +關(guān)注

    關(guān)注

    1

    文章

    157

    瀏覽量

    7852

原文標(biāo)題:云途車規(guī)MCU軟件開(kāi)發(fā)環(huán)境搭建及使用詳解--VSCode(CMake GCC) IDE

文章出處:【微信號(hào):汽車電子expert成長(zhǎng)之路,微信公眾號(hào):汽車電子expert成長(zhǎng)之路】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    半導(dǎo)體:基于Arm Cortex-M33的高端規(guī)MCU,對(duì)標(biāo)NXP域控制器

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

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

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

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

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

    ECU/MCU軟件開(kāi)發(fā)

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

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

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

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

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

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

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

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

    AN016 基于CMAKE工具搭建GD32 MCU開(kāi)發(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'>開(kāi)發(fā)</b><b class='flag-5'>環(huán)境</b>

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

    作者按:隨著越來(lái)越多云規(guī)MCU芯片型號(hào)的量產(chǎn),越來(lái)越多的客戶開(kāi)始使用
    的頭像 發(fā)表于 09-24 10:51 ?2698次閱讀
    <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軟件開(kāi)發(fā)生態(tài)解析

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

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

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

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

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

    基于YCT的SDK配置工程升級(jí)方法

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

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

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

    規(guī)級(jí)MCU設(shè)計(jì)廠商半導(dǎo)體完成新一輪融資

    半導(dǎo)體,一家專注于規(guī)級(jí)MCU設(shè)計(jì)的公司,近日宣布完成了數(shù)億元人民幣的B2輪融資。本輪融資由國(guó)調(diào)基金領(lǐng)投,錫創(chuàng)投等機(jī)構(gòu)跟投。
    的頭像 發(fā)表于 02-05 09:40 ?825次閱讀
    主站蜘蛛池模板: 双性受粗大撑开白浊 | 成人观看网站a | 日本69式xxx视频 | 亚洲一区二区在线视频 | 欧美性天天 | 人人插人人草 | 国产伦精品一区二区三区 | 777精品视频 | 天天操天天干天天 | 手机看片福利盒子 | 正在播放羽月希与黑人bd在线 | 亚洲激情四射 | 四虎在线电影 | 人人做人人爽人人爱 | 综合网伊人 | 手机在线看片你懂的 | 日本一区二区在线不卡 | 久久久噜噜噜久久久午夜 | 午夜在线一区 | 国产农村妇女毛片精品久久久 | 亚洲444444在线观看 | 午夜精品视频在线观看美女 | 天天天天添天天拍天天谢 | 午夜男人的天堂 | 黄色一及毛片 | 欧美一级精品 | 国产毛片农村妇女系列 | 爽好舒服老师快点 | 欧美猛交喷潮在线播放 | 手机看片日韩福利 | 四虎影院网址大全 | 操到喷水 | 国产永久免费爽视频在线 | 日本在线观看高清不卡免v 日本在线观看永久免费网站 | 一本到在线观看视频不卡 | 欧美性猛交xxxx黑人喷水 | 美女网站黄在线看 | 韩国r天堂 | 一区二区不卡视频在线观看 | 最近2018免费中文字幕视频 | 美女好紧好大好爽12p |