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