AURIX™ TC4x 如何使用MathWorks Matlab工具箱自动生成PPU目标代码

原作者:英飞凌汽车电子生态圈

摘要

英飞凌和MathWorks合作开发了新一代微处理器AURIX™  TC4x Hardware Support Package (HSP)。HSP通过两款软件插件可以方便实现TC4x TriCore™ CPU 和PPU的自动代码生成,结合芯片底层驱动软件,自动调用相关编译器,生成目标代码。配合TC4x 开发板,进一步实现PIL(Processor In the Loop)测试功能。

本文将对MathWorks提供的支持文档Get Started with SoC Blockset Support Package for Infineon AURIX™ Microcontrollers进行补充说明,针对操作过程中可能遇到的问题,给出解决方法。


工具链安装

请安装Matlab v2023b 及以上版本。完成后,请安装两款插件。可以在Matlab 软件界面右上角“Matlab help center”中搜索PPU,如图1,在下面界面中可以找到文档“Get started with SoC Blockset support package for Infineon AURIX™ Microcontrollers”。

点击打开该文档后,继续点击“Install SoC Blockset Support Package for Infineon AURIX™ Microcontrollers”。

之后找到HSP安装说明文档,如图3所示,请按该说明文档,依次安装两个插件。需要注册登录MathWorks账号,才能安装add-on。

成功安装后,下列两个插件会出现在“Add-On manager”中,如图4所示。第一个插件用于生成基于TC4x 的ANSI/ISO C/C++代码。第二个插件用于多核间通讯,包括PPU核。

在插件安装过程中,可能出现下面问题。

 

解决方法:可以通过下列网址注册,获取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-L\plugins\com.infineon.aurix.ads.tc4xx.tools_1.10.0\build_system\tools\Compilers\Tasking_10.1r1\ctc\bin


 

解决方法:用户需要先注册MyInfineon账号:https://softwaretools.infineon.com/cart/welcome,如图7所示。注册完成后,联系英飞凌或在MyCases(使用说明请参考https://www.infineon.com/export/sites/default/en/about-infineon/company/contacts/support/images/Leaflet-Infineon-myCases-portal.pdf)中申请获取TC4x iLLD 驱动软件。

这里在validation一步指定iLLD路径文件夹时,要确保是包含iLLD_TC4xx_2_0_1_2_19_Package文件夹的路径,而不是iLLD_TC4xx的子路径,否则Matlab识别不出来。


PPU 例程编译

在帮助页面“Get started with SoC Blockset…”,有个PPU例程“Get started with PPU acceleration…”。双击打开该模型。


 

请按照帮助页面“Get started with SoC Blockset…”中两个文档对该PPU例程进行配置、验证、编译和下载。

模型成功编译后,会生成Tricore CPU、PPU目标代码 ,如下所示。

在上述过程中,可能出现下列问题。
问题一:出现多核数据读写问题。
解决方法:必须要事先安装两个插件:

问题二:模型编译出错,代码生成文件夹结构(CodeGenFolderStructure)需要定义。
解决方法:在Matlab命令行中输入:
Simulink.fileGenControl('set','CodeGenFolderStructure',Simulink.filegen.CodeGenFolderStructure.TargetEnvironmentSubfolder);

问题三:函数未被定义为单元输入。
解决方法:不要保存,关闭模型,之后重新打开模型,再次validate。

问题四:无法保存某个模型。
解决方法:在Matlab命令行输入
save_system('tc4x_IpcPPU','SaveDirtyReferencedModels',true)

 

问题五:在编译阶段,报Error using coder.make.internal.configureToolchain错误。

 

解决办法:需要下载Synopsys Metaware for AURIX™ TC4x,并在HSP的hardware Setup中进行配置。用户可以在下面网页注册获取3个月免费Metaware license: https://www.synopsys.com/cgi-bin/dwarc_prod/req1.cgi


参考文献
[1] “Get Started with SoC Blockset Support Package for Infineon AURIX Microcontrollers”, https://ww2.mathworks.cn/help/soc/getting-started-with-infineon.html

 

扫描二维码,关注英飞凌汽车电子寻找更多应用或产品信息

扫描二维码,关注英飞凌汽车电子寻找更多应用或产品信息

★博文内容参考自 网站,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

参考来源

英飞凌汽车电子生态圈: https://mp.weixin.qq.com/s/8WAM9g8TuziypvILBOaYuQ

评论