AURIX? TC4x 如何使用MathWorks Matlab工具箱自動(dòng)生成PPU目標(biāo)代碼
英飛凌和MathWorks合作開(kāi)發(fā)了新一代微處理器AURIX? TC4x Hardware Support Package (HSP)。HSP通過(guò)兩款軟件插件可以方便實(shí)現(xiàn)TC4x TriCore? CPU 和PPU的自動(dòng)代碼生成,結(jié)合芯片底層驅(qū)動(dòng)軟件,自動(dòng)調(diào)用相關(guān)編譯器,生成目標(biāo)代碼。配合TC4x 開(kāi)發(fā)板,進(jìn)一步實(shí)現(xiàn)PIL(Processor In the Loop)測(cè)試功能。
本文將對(duì)MathWorks提供的支持文檔Get Started with SoC Blockset Support Package for Infineon AURIX? Microcontrollers進(jìn)行補(bǔ)充說(shuō)明,針對(duì)操作過(guò)程中可能遇到的問(wèn)題,給出解決方法。
工具鏈安裝
請(qǐng)安裝Matlab v2023b 及以上版本。完成后,請(qǐng)安裝兩款插件??梢栽?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/Matlab">Matlab 軟件界面右上角“Matlab help center”中搜索PPU,如圖1,在下面界面中可以找到文檔“Get started with SoC Blockset support package for Infineon AURIX? Microcontrollers”。
圖1 在Matlab help center中搜索PPU
點(diǎn)擊打開(kāi)該文檔后,繼續(xù)點(diǎn)擊“Install SoC Blockset Support Package for Infineon AURIX? Microcontrollers”。
圖2 Get started with SoC Blockset support package for Infineon AURIX? Microcontrollers
之后找到HSP安裝說(shuō)明文檔,如圖3所示,請(qǐng)按該說(shuō)明文檔,依次安裝兩個(gè)插件。需要注冊(cè)登錄MathWorks賬號(hào),才能安裝add-on。
圖3 安裝Hardware support package (HSP)
成功安裝后,下列兩個(gè)插件會(huì)出現(xiàn)在“Add-On manager”中,如圖4所示。第一個(gè)插件用于生成基于TC4x 的ANSI/ISO C/C++代碼。第二個(gè)插件用于多核間通訊,包括PPU核。
圖4 安裝完成的插件
在插件安裝過(guò)程中,可能出現(xiàn)下面問(wèn)題。
問(wèn)題一:點(diǎn)擊“Install version 10.1r1”,找不到編譯器Tasking安裝路徑。
圖5 無(wú)法找到編譯器TASKING安裝路徑
解決方法: 可以通過(guò)下列網(wǎng)址注冊(cè),獲取3個(gè)月免費(fèi)試用版TASKING SmartCode for AURIX TC4x: https://www.tasking.com/aurixdevstudio_limited
如果下載了TASKING和iLLD,即便這里顯示not detected,也不要卡在這里,可以點(diǎn)擊next,到validation那一步去指定路徑。如果是下載的ADS_Limited并獲取了smartcode的license,那么路徑是:AURIX-Studio-limited-1.10.0-Lpluginscom.infineon.aurix.ads.tc4xx.tools_1.10.0build_systemtoolsCompilersTasking_10.1r1ctcbin
問(wèn)題二:點(diǎn)擊“iLLD for TC4x family”,無(wú)法訪問(wèn)相關(guān)鏈接。
圖6 無(wú)法找到TC4x iLLD驅(qū)動(dòng)軟件
解決方法: 用戶需要先注冊(cè)MyInfineon賬號(hào):https://softwaretools.infineon.com/cart/welcome,如圖7所示。注冊(cè)完成后,聯(lián)系英飛凌或在MyCases(使用說(shuō)明請(qǐng)參考https://www.infineon.com/export/sites/default/en/about-infineon/company/contacts/support/images/Leaflet-Infineon-myCases-portal.pdf)中申請(qǐng)獲取TC4x iLLD 驅(qū)動(dòng)軟件。
這里在validation一步指定iLLD路徑文件夾時(shí),要確保是包含iLLD_TC4xx_2_0_1_2_19_Package文件夾的路徑,而不是iLLD_TC4xx的子路徑,否則Matlab識(shí)別不出來(lái)。
圖7 注冊(cè)MyInfineon賬號(hào)
PPU例程編譯
在幫助頁(yè)面“Get started with SoC Blockset…”,有個(gè)PPU例程“Get started with PPU acceleration…”。雙擊打開(kāi)該模型。
圖8 PPU例程
請(qǐng)按照幫助頁(yè)面“Get started with SoC Blockset…”中兩個(gè)文檔對(duì)該P(yáng)PU例程進(jìn)行配置、驗(yàn)證、編譯和下載。
圖9 幫助文檔
模型成功編譯后,會(huì)生成Tricore CPU、PPU目標(biāo)代碼 ,如下所示。
圖10 模型成功編譯生成目標(biāo)代碼
在上述過(guò)程中,可能出現(xiàn)下列問(wèn)題。
問(wèn)題一:出現(xiàn)多核數(shù)據(jù)讀寫(xiě)問(wèn)題。
解決方法: 必須要事先安裝兩個(gè)插件:
圖11 多核數(shù)據(jù)讀寫(xiě)問(wèn)題
問(wèn)題二:模型編譯錯(cuò)誤,代碼生成文件夾結(jié)構(gòu)(CodeGenFolderStructure)需要定義。
解決方法: 在Matlab命令行中輸入:Simulink.fileGenControl('set','CodeGenFolderStructure',Simulink.filegen.CodeGenFolderStructure.TargetEnvironmentSubfolder);
圖12 代碼生成文件夾結(jié)構(gòu)未定義
問(wèn)題三:函數(shù)未被定義為單元輸入。
解決方法: 不要保存,關(guān)閉模型,之后重新打開(kāi)模型,再次validate。
圖13 函數(shù)未被定義為單元輸入
問(wèn)題四:無(wú)法保存某個(gè)模型。
解決方法: 在Matlab命令行輸入save_system('tc4x_IpcPPU','SaveDirtyReferencedModels',true)
圖14 無(wú)法保存某個(gè)模型
問(wèn)題五:在編譯階段,報(bào)Error using coder.make.internal.
configureToolchain錯(cuò)誤。
圖15 編譯階段報(bào)錯(cuò)
解決辦法: 需要下載Synopsys Metaware for AURIX? TC4x,并在HSP的hardware Setup中進(jìn)行配置。用戶可以在下面網(wǎng)頁(yè)注冊(cè)獲取3個(gè)月免費(fèi)Metaware license: https://www.synopsys.com/cgi-bin/dwarc_prod/req1.cgi
圖16 下載并配置Synopsys Metaware for AURIX? TC4x
參考文獻(xiàn)
[1] “Get Started with SoC Blockset Support Package for Infineon AURIX Microcontrollers”, https://ww2.mathworks.cn/help/soc/getting-started-with-infineon.html
評(píng)論