AURIX™ TC4x 如何使用MathWorks Matlab工具箱自动生成PPU目标代码
英家MCU之AURIX™
摘要
英飞凌和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”。
图1 在Matlab help center中搜索PPU
点击打开该文档后,继续点击“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)
成功安装后,下列两个插件会出现在“Add-On manager”中,如图4所示。第一个插件用于生成基于TC4x 的ANSI/ISO C/C++代码。第二个插件用于多核间通讯,包括PPU核。
图4 安装完成的插件
在插件安装过程中,可能出现下面问题。
问题一:点击“Install version 10.1r1”,找不到编译器Tasking安装路径。
图5 无法找到编译器TASKING安装路径
解决方法: 可以通过下列网址注册,获取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
问题二:点击“iLLD for TC4x family”,无法访问相关链接。
图6 无法找到TC4x iLLD驱动软件
解决方法: 用户需要先注册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识别不出来。
图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 模型成功编译生成目标代码
在上述过程中,可能出现下列问题。
问题一:出现多核数据读写问题。
解决方法: 必须要事先安装两个插件:
图11 多核数据读写问题
问题二:模型编译错误,代码生成文件夹结构(CodeGenFolderStructure)需要定义。
解决方法: 在Matlab命令行中输入:Simulink.fileGenControl('set','CodeGenFolderStructure',Simulink.filegen.CodeGenFolderStructure.TargetEnvironmentSubfolder);
图12 代码生成文件夹结构未定义
问题三:函数未被定义为单元输入。
解决方法: 不要保存,关闭模型,之后重新打开模型,再次validate。
图13 函数未被定义为单元输入
问题四:无法保存某个模型。
解决方法: 在Matlab命令行输入save_system('tc4x_IpcPPU','SaveDirtyReferencedModels',true)
图14 无法保存某个模型
问题五:在编译阶段,报Error using coder.make.internal.
configureToolchain错误。
图15 编译阶段报错
解决办法: 需要下载Synopsys Metaware for AURIX™ TC4x,并在HSP的hardware Setup中进行配置。用户可以在下面网页注册获取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
欢迎关注微信公众号
英飞凌汽车电子生态圈