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

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

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

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

jf_ocihYtwl ? 來源:汽車電子expert成長之路 ? 2023-09-24 10:51 ? 次閱讀

作者按:隨著越來越多云途車規(guī)MCU芯片型號的量產(chǎn),越來越多的客戶開始使用云途的車規(guī)MCU應(yīng)用軟件開發(fā)工具鏈,其中基于CMake + ninja + GNU gcc toolchain的VSCode IDE尤為受到大家的歡迎,但是對于很多習(xí)慣了傳統(tǒng)IDE工程師來說,使用VSCode IDE難免會遇到問題,因此,我希望寫一系列相關(guān)的使用指南,通過自己實際使用中遇到的問題的解決方案為例進行介紹,希望能夠幫助大家快速上手。

如何使用Segger Ozone調(diào)試GCC/Keil/IAR編譯工程?

電腦本地將云途車規(guī)MCU的應(yīng)用工程通過VSCode IDE(GCC/KEIL/IAR + CMake + Ninja)或者Keil IDE及IAR IDE進行編譯,生成二進制可執(zhí)行文件:

VSCode IDE(GCC + CMake + Ninja)應(yīng)用工程:<project_name>.elf

VSCode IDE(KEIL + CMake + Ninja)或者Keil IDE應(yīng)用工程:<project_name>.axf

VSCode IDE(/IAR + CMake + Ninja)或者IAR IDE應(yīng)用工程:<project_name>.out

YCT中配置生成VSCode IDE應(yīng)用工程方法如下:

68b6c7c4-5933-11ee-939d-92fbcf53809c.png

68cdbc72-5933-11ee-939d-92fbcf53809c.png

68e7b514-5933-11ee-939d-92fbcf53809c.png

6904e33c-5933-11ee-939d-92fbcf53809c.png

下載安裝SEGGER Ozone調(diào)試軟件

https://www.segger.com/products/development-tools/ozone-j-link-debugger/

選擇一個匹配自己電腦操作系統(tǒng)的穩(wěn)定的版本進行下載即可:

https://www.segger.com/downloads/jlink/#Ozone

6925520c-5933-11ee-939d-92fbcf53809c.png

下載到本地后,直接雙擊可執(zhí)行exe進行傻瓜式安裝即可,此處不贅述。

Tips:如果在Ozone安裝之前JLINK的驅(qū)動已經(jīng)安裝好,則需要使用JLINK的DLL updater更新一下JLINK驅(qū)動:

693f2d94-5933-11ee-939d-92fbcf53809c.png

69618dbc-5933-11ee-939d-92fbcf53809c.png

② 打開Ozone,選擇“Create New Project”打開新建工程向?qū)?/strong>:

697a6486-5933-11ee-939d-92fbcf53809c.png

選擇目標(biāo)MCU型號(Device)、內(nèi)核寄存器(Register Set)和外設(shè)寄存器映射文件(Peripherals(Optional)), -> "Next":

69919bd8-5933-11ee-939d-92fbcf53809c.png

選擇目標(biāo)器件時,通過在“Device”列輸入“YTM”可進行過濾篩選快速查找到云途車規(guī)MCU型號,但是其他是必須提前安裝好云途車規(guī)MCU的JLINK補?。?/p>

69a521bc-5933-11ee-939d-92fbcf53809c.png

選擇工程目錄下“.vscode”的“chip.svd”文件(注意:僅在選擇VSCode作為IDE時YCT才會在“.vscode”目錄下生成該文件)作為調(diào)試時MCU外設(shè)寄存器映射文件:

69b6212e-5933-11ee-939d-92fbcf53809c.png

選擇JLINK調(diào)試器連接方式為使用“SWD接口,“4MHz通信速率,“USB”接口 ->"Next":

69cb62d2-5933-11ee-939d-92fbcf53809c.png

選擇要調(diào)試工程的可選elf文件,IAR為后綴.out的文件 -> "Next":

69e8cad4-5933-11ee-939d-92fbcf53809c.png

保持默認(rèn)配置 -> "Finish"即可完成Ozone調(diào)試工程創(chuàng)建:

6a0a3066-5933-11ee-939d-92fbcf53809c.png

選擇右上角的“Download & Reset Program”進行程序下載連接:

6a1c3d38-5933-11ee-939d-92fbcf53809c.png

Ozone調(diào)試概覽如下,更多細(xì)節(jié)請參考其用戶手冊或者幫助文檔:

6a2ed902-5933-11ee-939d-92fbcf53809c.png

如何在添加用戶自己的代碼到CMake編譯目錄?

Case 1:用戶自己添加的應(yīng)用代碼文件較少,直接添加到“app”目錄即可

這些情況,直接將添加的.c和.h文件添加到Y(jié)CT生成VSCode IDE應(yīng)用工程默認(rèn)生成的“app”文件夾目錄即可:

6a4cfbd0-5933-11ee-939d-92fbcf53809c.png

Case 2:用戶自己添加的應(yīng)用代碼文件比較多,需要添加多個文件夾,則需要修改CMakelist.txt

在YCT創(chuàng)建VSCode IDE應(yīng)用工程根目錄下有一個CMakeLists.txt,其中存放了CMake編譯的規(guī)則,找到保留關(guān)鍵詞“# USER CODE BEGIN add_executable”和“# USER CODE END add_executable”,將默認(rèn)添加app目錄的CMake腳本拷貝粘貼到其間,以防止重新生成工程時被覆蓋。然后修改添加編譯目錄,比如下圖中的應(yīng)用工程,添加了“General_CryptoAlgo”,“MIRACL”和“SMx”3個用戶代碼目錄及其子目錄到CMake的elf編譯目錄中:

6a6137d0-5933-11ee-939d-92fbcf53809c.png

在target_include_directories(${project_elf} )行添加用戶目錄,可添加多個,以空格隔開即可;

在file(GLOB dir_sources "/*.c" "/*.c")行添加想要編譯源代碼文件,其中*.c為任意C源代碼,*.cpp為任意C++源代碼, *.S/*.s為任意匯編源代碼(注意CMake區(qū)分文件名后綴的大小寫,必須與實際源代碼文件名匹配)

接下的的if語句判斷源文件“dir_sources ”是否為空,不為空,即存在源代碼需要編譯,則調(diào)用后續(xù)foreach語句遍歷所有源文件進行編譯。

如何編譯生成靜態(tài)庫?

以如下工程為例,將其中的MIRACL目錄下的所有C源代碼(將其添加到Y(jié)CT生成的SDK/MCAL VSCode IDE應(yīng)用工程中)編譯成一個靜態(tài)庫(比如libYTM32B1M_MIRACL.a)供其他應(yīng)用工程調(diào)用:

6a7ce49e-5933-11ee-939d-92fbcf53809c.png

具體步驟如下:

在應(yīng)用工程根目錄下的CMakelist.txt中,使用set()函數(shù)創(chuàng)建一個CMake的編譯目標(biāo)miracl_lib,并使用add_library()函數(shù)添加為靜態(tài)庫:

set(miracl_lib YTM32B1M_MIRACL)
add_library(${miracl_lib})

Tips推薦將其放在“# USER CODE BEGIN include”和“# USER CODE END include”之間,以防止YCT重新生成SDK/MCAL驅(qū)動配置時被覆蓋:

6a9bb4c8-5933-11ee-939d-92fbcf53809c.png

將要鏈接到靜態(tài)庫中的C源文件和頭文件包含目錄添加到上面創(chuàng)建的編譯目標(biāo)miracl_lib,具體腳本如下:

#add "MIRACL/src as include path  for static library
target_include_directories(${miracl_lib} PRIVATE MIRACL/src MIRACL/inc)
#add all source files in SMx folder 
file(GLOB dir_sources "MIRACL/src/*.c")
if(dir_sources)
    foreach(src ${dir_sources})
        target_sources(${miracl_lib} PRIVATE ${src})
    endforeach()
endif()

Tips:推薦將其放在“USER CODE BEGIN add_executable”和“# USER CODE END add_executable”之間,以防止YCT重新生成SDK/MCAL驅(qū)動配置時被覆蓋:

6aad8572-5933-11ee-939d-92fbcf53809c.png

保存以上修改后的CMakelist.txt,然后打開VSCode的CMake Tools擴展插件,就能夠發(fā)現(xiàn)上面創(chuàng)建的靜態(tài)庫編譯目標(biāo)了,最終生成的靜態(tài)庫為libYTM32B1M_MIRACL.a,自動添加了前綴“l(fā)ib”和后綴“.a”:

6acab5de-5933-11ee-939d-92fbcf53809c.png

Tips:如果沒有安裝CMake Tools擴展插件,大家可以通過VSCode的Extension(Ctrl + Shift + X), 搜索“CMake Tools”在線安裝:

6afcc8e4-5933-11ee-939d-92fbcf53809c.png

在CMake Tool中選中靜態(tài)庫編譯目標(biāo),點擊右側(cè)的編譯(Build)圖標(biāo),即可開始靜態(tài)庫的編譯,

6b2a02aa-5933-11ee-939d-92fbcf53809c.png

VSCode IDE的“OUTPUT”窗口輸出靜態(tài)庫編譯鏈接過程log信息如下:

6b3a949e-5933-11ee-939d-92fbcf53809c.png

最終生成的靜態(tài)庫位于工程目錄下的“build”文件夾下:

6b59bdc4-5933-11ee-939d-92fbcf53809c.png

Tips:若靜態(tài)庫源代碼有修改,需要重新編譯,則需要收到刪除“build”目錄,否則ninja將輸出“ no work to do”:

6b6d326e-5933-11ee-939d-92fbcf53809c.png

如何使用靜態(tài)庫?

接下來,介紹如何在YCT生成的SDK/MCAL VSCode IDE應(yīng)用工程中調(diào)用以上生成的靜態(tài)庫,具體步驟如下:

使用YCT配置創(chuàng)建一個與上面靜態(tài)庫編譯目標(biāo)MCU相同內(nèi)核(比如YTM32B1Mx系列使用的CM33內(nèi)核,則編譯的靜態(tài)庫可以通用)的云途車規(guī)MCU SDK/MCAL VSCode IDE應(yīng)用工程;

將需要使用的靜態(tài)庫文件和相應(yīng)的頭文件添加到VSCode IDE應(yīng)用工程:

6b88a6b6-5933-11ee-939d-92fbcf53809c.png

在工程CMakelist.txt文件中,使用target_include_directories() 函數(shù)將靜態(tài)庫文件使用的頭文件路徑添加到應(yīng)用工程elf編譯目標(biāo)包含路徑:

target_include_directories(${project_elf} PRIVATE MIRACL/inc  MIRACL)

Tips:推薦將其放在“USER CODE BEGIN add_executable”和“# USER CODE END add_executable”之間,以防止YCT重新生成SDK/MCAL驅(qū)動配置時被覆蓋:

6b9bc548-5933-11ee-939d-92fbcf53809c.png

在工程CMakelist.txt文件中,使用target_link_libraries() 函數(shù)將用戶靜態(tài)庫添加到應(yīng)用工程elf鏈接庫:

target_link_libraries(${project_elf} libYTM32B1M_MIRACL.a -L${CMAKE_SOURCE_DIR}/MIRACL)

Tips:以上函數(shù)中,需要使用完整的靜態(tài)庫文件名“l(fā)ibYTM32B1M_MIRACL.a”,并通過“-L${CMAKE_SOURCE_DIR}/MIRACL”指定正確的搜索路徑,否則鏈接生成工程elf時會報找不到添加的靜態(tài)庫文件的錯誤;

Tips:推薦將其放在“USER CODE BEGIN target_link_libraries”和“# USER CODE END target_link_libraries”之間,以防止YCT重新生成SDK/MCAL驅(qū)動配置時被覆蓋:

6bb6f9f8-5933-11ee-939d-92fbcf53809c.png

在應(yīng)用工程中,包含所需靜態(tài)庫接口函數(shù)的頭文件,然后調(diào)用庫函數(shù)即可。

以上就是今天先跟大家分享的內(nèi)容,希望對大家有啥幫助和啟發(fā)。

若大家在實際工作中遇到了云途車規(guī)MCU VSCode IDE工程使用和配置相關(guān)的問題,也歡迎留言指出,我將在這一系列文章的下篇文章中為大家解答。

審核編輯:湯梓紅

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

    關(guān)注

    455

    文章

    50816

    瀏覽量

    423674
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17148

    瀏覽量

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

    關(guān)注

    0

    文章

    338

    瀏覽量

    46758
  • vscode
    +關(guān)注

    關(guān)注

    1

    文章

    155

    瀏覽量

    7714
  • 云途
    +關(guān)注

    關(guān)注

    1

    文章

    4

    瀏覽量

    1945

原文標(biāo)題:云途車規(guī)MCU VSCode IDE工程使用和配置指南(一)

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    高可靠、高性能規(guī)MCU, 滿足車身控制多元應(yīng)用

    /汽車&新興產(chǎn)業(yè)深度報告(2022-7-12);電子工程專輯(2023-6-19) 從上表可看出車用MCU對工作溫度要求更寬的范圍,笙泉規(guī)MCU
    發(fā)表于 09-15 12:04

    VSCode EIDE的AT32 MCU

    AT32 MCU With VSCode EIDE描述了VSCode開發(fā)環(huán)境中,使用Embedded IDE管理AT32項目。
    發(fā)表于 10-26 07:38

    解析規(guī)MCU的技術(shù)難點

    近日,四維圖新旗下全資子公司AutoChips杰發(fā)科技對外宣布,其規(guī)MCU產(chǎn)品線又添重量級新成員——AC7801X,這是杰發(fā)科技繼2018年底量產(chǎn)的國內(nèi)首顆
    發(fā)表于 02-16 09:34 ?1.1w次閱讀

    完成數(shù)億元A+輪融資,打造全系列高端規(guī)芯格局

    時間,獲得眾多一線資本青睞,完成5輪融資,并率先實現(xiàn)產(chǎn)品量產(chǎn)出貨,充分證明了其作為頂尖規(guī)芯片選手的實力,吸引了眾多投資者與行業(yè)相關(guān)企業(yè)的目光。 ? ? 憑實力出圈力爭產(chǎn)品達到國際一線水準(zhǔn) ?
    發(fā)表于 07-29 10:44 ?491次閱讀
    <b class='flag-5'>云</b><b class='flag-5'>途</b>完成數(shù)億元A+輪融資,打造全系列高端<b class='flag-5'>車</b><b class='flag-5'>規(guī)</b>芯格局

    國民技術(shù)規(guī)MCU型號應(yīng)用與參數(shù)

    國民技術(shù)規(guī)MCU型號應(yīng)用與參數(shù)
    發(fā)表于 11-30 14:17 ?1665次閱讀
    國民技術(shù)<b class='flag-5'>車</b><b class='flag-5'>規(guī)</b><b class='flag-5'>MCU</b>型號應(yīng)用與參數(shù)

    貞光科技:什么是規(guī)MCU?

    MCU也被稱為微控制單元,是將CPU、SRAM、Flash、計數(shù)器及其它數(shù)字和模擬模塊集成到一顆芯片上,構(gòu)成一個小而完善的微型計算機系統(tǒng)。MCU主要可以分為消費級、工業(yè)級、規(guī)級和軍用
    的頭像 發(fā)表于 10-13 17:47 ?1373次閱讀
    貞光科技:什么是<b class='flag-5'>車</b><b class='flag-5'>規(guī)</b>級<b class='flag-5'>MCU</b>?

    ?國民技術(shù)規(guī)MCU型號應(yīng)用與參數(shù)

    國民技術(shù)作為新晉MCU廠家,除了通用MCU市場,目前面向汽車電子領(lǐng)域,已全面發(fā)展全系列車規(guī)MCU、安全芯片、電池管理芯片等核心器件,并協(xié)同合作伙伴為汽車電子行業(yè)市場與客戶提供
    的頭像 發(fā)表于 11-22 10:46 ?3712次閱讀
    ?國民技術(shù)<b class='flag-5'>車</b><b class='flag-5'>規(guī)</b><b class='flag-5'>MCU</b>型號應(yīng)用與參數(shù)

    2022規(guī)MCU的發(fā)展趨勢及國產(chǎn)替代分析

    貞光科技深耕汽車電子、工業(yè)及軌道交通領(lǐng)域十余年,為客戶提供規(guī)MCU規(guī)電容、
    的頭像 發(fā)表于 12-30 15:57 ?1051次閱讀
    2022<b class='flag-5'>車</b><b class='flag-5'>規(guī)</b><b class='flag-5'>MCU</b>的發(fā)展趨勢及國產(chǎn)替代分析

    國產(chǎn)規(guī)MCU發(fā)展趨勢

    貞光科技深耕汽車電子、工業(yè)及軌道交通領(lǐng)域十余年,為客戶提供規(guī)MCU規(guī)電容、
    的頭像 發(fā)表于 12-30 16:00 ?735次閱讀
    國產(chǎn)<b class='flag-5'>車</b><b class='flag-5'>規(guī)</b><b class='flag-5'>MCU</b>發(fā)展趨勢

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

    MCU的嵌入式軟件開發(fā)領(lǐng)域,過去很長一段時間都是以基于Eclipse框架開發(fā)的IDE為主,典型此類IDE包括:NXP的CodeWarrior 10.x/11.xIDE, S32DS IDE
    的頭像 發(fā)表于 08-22 10:12 ?7132次閱讀
    <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>軟件開發(fā)環(huán)境搭建及使用詳解

    AT32 MCU Develop with VSCode

    電子發(fā)燒友網(wǎng)站提供《AT32 MCU Develop with VSCode.pdf》資料免費下載
    發(fā)表于 09-19 15:22 ?2次下載
    AT32 <b class='flag-5'>MCU</b> Develop with <b class='flag-5'>VSCode</b>

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

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

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

    與知名國產(chǎn)汽車芯片公司江蘇半導(dǎo)體有限公司(以下簡稱“半導(dǎo)體”)聯(lián)合宣布,兩家公司達成戰(zhàn)略合作,最新發(fā)布的IAR Embedded Workbench for Arm 9.50版
    發(fā)表于 01-29 17:03 ?525次閱讀
    戰(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è)計廠商半導(dǎo)體完成新一輪融資

    半導(dǎo)體,一家專注于規(guī)MCU設(shè)計的公司,近日宣布完成了數(shù)億元人民幣的B2輪融資。本輪融資由國調(diào)基金領(lǐng)投,錫創(chuàng)投等機構(gòu)跟投。
    的頭像 發(fā)表于 02-05 09:40 ?771次閱讀