NXP Auto HVBMS S32DS 参数配置卡顿解决办法:使用 EB 替代 S32DS Configuration Tools

一、背景介绍

        用户在 Automotive Software Package Manager | NXP Semiconductors 可以下载 S32K344 或者是 S32K358 的 HVBMS 捆绑包。



        其中包含有 IDE:S32DS,基于 S32DS 的基础软件包以及 RTD 插件包,MCAL 配置工具:EB Tresos 以及 RTD 安装包。这些均包含在 HVBMS 捆绑包中。用户需要根据其中的 Release Note 了解安装依赖关系,进行正常顺序的安装。关于 MCAL 以及 S32DS 的具体安装方式可以参考:S32K344 开发环境的搭建 - 大大通(简体站) (wpgdadatong.com.cn) 



        但是很多用户只使用 S32DS (已经安装对应的基础包 & 安装包)可能会遇到使用 S32DS Configuration Tools 打开 “.mex”文件速度慢、配置切换卡顿、代码生成超时的问题。这主要是因为 HVBMS 包含的相关例程使用到的外设组件较多,每个组件中的配置项也不少,并且单个配置项目往往还和其他项目相关联——改动一处,需要对其他好多地方进行检查,特别吃配置。



        所以在调试 HVBMS 时,建议用户使用专门的 MCAL 配置工具:EB Tresos,EB Tresos 根据配置生成相应的配置代码。用户只需要使用对应的配置代码进行编译调试即可。此处介绍一个一劳永逸的方式,将 EB Tresos 生成代码链接到 S32DS 工程中,这样后续更改配置,用 EB 生成代码之后,不需要手动将相关源文件、头文件复制到 S32DS 工程中,直接进行编译烧录调试即可。


二、操作流程

        本文是基于 SW32K3_BMS_SDK_4.4_R21-11_1.0.1\eclipse\plugins\Bcc_774a_TS_TxDxM10I1R0\examples\EBT\S32K3XX\Bcc_774a_Phy_665a_example_S32K344_EBT 例程建立 S32DS 工程(使用 EB 配置,S32DS 编译)。

        ① 首先我们确保相关安装包已经按照 S32K344 开发环境的搭建 - 大大通(简体站) (wpgdadatong.com.cn) 以及 S32K344 开发环境的搭建 - 大大通(简体站) (wpgdadatong.com.cn) 安装完毕,SW32K3_RTD4.4_R21-11_3.0.0_D2303.exe,SW32K3_BMS_SDK_4.4_R21-11_1.0.1_D2308.exe 以及 SW32K3_BMS_SL_SDK_4.4_R21-11_1.0.1_DEMO_D2308.exe 推荐按照默认路径安装,因为虽然他们是 EB 配置需要使用的安装包,本次整合 S32DS 还需要使用到他们的安装路径,使用默认安装路径(C:\NXP)方便查找。

        ② 紧接着我们需要 2 个工程:一个是 S32DS 工程,另一个则是 EB Tresos 工程。这两个工程我们可以通过仿照参考例程进行新建(重头开始,熟悉整个 S32K3 外设组件),或者是基于现有工程进行创建(工程名自定,适合用于熟悉框架的用户加速开发)。



        需要注意的是,创建的 EB Tresos 工程,路径需要在 S32DS 新建工程路径下:新建 S32DS 工程(默认创建的 "include" 文件夹,位于“Project_Settings”中的“Startup_Code”文件夹和“Linker_Files”文件夹,以及“.mex”文件都属于新建之后不需要使用的部分,可以直接删除)之后,可以在工程中新建一个“Tresos_Project”文件夹,该文件夹即用于新建存放 EB 工程。



        新建 EB 工程时,只需要路径位于 S32DS 工程路径下即可。



        图中的 EB 工程是我自己新建(工程名自己命名,路径只需要注意 S32DS 工程以及 EB 工程相对路径正确)然后参照例程,添加依赖外设组件。

        ③ 在保证 MCAL 配置正确无误之后,需要依据配置生成代码。所以接下来,我们要先在 S32DS 工程下面创建一个“Generate”文件夹,用于存放 EB 生成的配置代码。



        紧接着就需要在 EB Tresos 中,对应工程的工程属性里“Code Generator”部分,设置默认生成路径,路径与文件名需要同 S32DS 中保持一致。如此就可以保证 MCAL 配置转换源文件、头文件以及生成的“.epc”文件均在“Generate”文件夹中生成,便于后续查找以及 Include。



        ④ 之后就需要在 S32DS 工程中添加 MCAL 组件。



        上述 3 个文件可通过 HVBMS 捆绑包中的 SW32K3_RTD4.4_R21-11_3.0.0_D2303.exe,SW32K3_BMS_SDK_4.4_R21-11_1.0.1_D2308.exe 以及 SW32K3_BMS_SL_SDK_4.4_R21-11_1.0.1_DEMO_D2308.exe 安装获得,推荐装在默认位置(路径不深,无中文字符),其中的“plugins”文件夹包含了不同外设模块的驱动代码,这部分代码平时几乎不需修改,只需要调用即可。因此用户只需要在 S32DS 的工程中新建对应的链接文件夹即可(驱动文件不放在本地工程,减少工程大小,不过需要驱动文件安装位置正确)。

        用户可以通过右键工程,在“New-->Folder-->Advanced”中选择“Link to alternate location”,然后将路径引导至如“C:\NXP\SW32K3_RTD_4.4_R21-11_3.0.0\eclipse\plugins”即可。




        其中文件过滤器的设置,是将“plugins”里的所有模块的“include”以及“src”文件夹涵盖进去,编译需要使用,没有包含就会编译报错。除此之外 BaseNXP_TS_T40D34M30I0R0 组件还需要将“header”文件夹,Platform_TS_T40D34M30I0R0 组件则需要将“build_files”以及“startup”文件夹包含在内。

        针对工程使用的建立对应的  MCAL 驱动链接文件夹。






        这 3 个 MCAL 驱动链接文件夹建立完毕(SBC 的驱动暂不考虑),在新建过程中,初次尝试的人可能不知道如何使用文件过滤器,但是没关系,在这 3 个文件夹的属性中,可以在 Resource --> Resource  Filters 中重新调整文件过滤器设置,最终 3 个 MCAL 文件夹过滤器如下即符合要求。







        ⑤ 设置工程变量名,此处是为后续编译所需要 Include 的文件做准备。



        ⑥ 设置编译宏定义,添加“VV_RESULT_ADDRESS=0x2043FF00”,因为 RTD 组件例程(如 C:\NXP\SW32K3_BMS_SDK_4.4_R21-11_1.0.1\eclipse\plugins\Bcc_774a_TS_TxDxM10I1R0\examples\EBT\S32K3XX\Bcc_774a_Phy_665a_example_S32K344_EBT)中的 main.c (该文件可以作为 S32DS 工程的 main.c)中的 Exit_Example(ExampleStatus); 需要使用。



        ⑦ 将 S32DS 工程需要使用的头文件 Include 进来,让编译器知道哪些头文件需要编译(相关组件,EB 配置生成头文件,以及用户自定义功能头文件)。



        ⑧ 设置工程 Link 阶段链接文件,保证编译完成后能够正常链接生成最终 .elf 文件。



        ⑨ 选择要编译的文件,目前我们已经将 BMS 编译需要的文件涵盖进来,但是还可以进一步细化,选择对真正使用到的文件进行编译。

 

        不需要编译的文件,就将其移除编译选项。



        在这个工程中,不编译的文件将会标灰。




        上述流程做完之后,即可配置 EB 生成代码。



        之后只需要在 S32DS 上面编译调试即可。



三、参考文档

[1]SW32K3_RTD_4.4_R21-11_3.0.0_D2303_ReleaseNotes.pdf
[2]SW32K3_BMS_SDK_4.4_R21-11_1.0.1_D2308_Release_Notes.pdf
[3]SW32K3_BMS_SL_SDK_4.4_R21-11_1.0.1_DEMO_D2308_Release_Notes.pdf
[4]S32K344 开发环境的搭建 - 大大通(简体站) (wpgdadatong.com.cn)

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

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

评论

bms小白

bms小白

14 天前
不错,点赞