一、背景介绍
用户在 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) 安装完毕,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)
登录大大通,了解更多详情,解锁1500+完整应用方案,更有大联大700+FAE在线答疑解惑!