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) 安装完毕,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在线答疑解惑!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/450859.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

内网渗透-跨域环境渗透-1

目录 smbclient工具 mimikatz工具 Kerbers协议 NTLM认证 hash传递攻击(PTH攻击) 黄金票据攻击 白银票据 MS14-068 smbclient工具 在linux里面连接远程windows共享目录,可以使用这个工具 ​ 第一种连接方式:smbclient -L 目…

【组合回溯递归】【树层去重used标记】Leetcode 40. 组合总和 II

【组合回溯递归】【树层去重used标记】Leetcode 40. 组合总和 II 解法 组合问题常用解法 树层去重 ---------------🎈🎈40. 组合总和 II 题目链接🎈🎈------------------- 解法 组合问题常用解法 树层去重 问题描述&#xff1…

GIS人必备神器降临!快速搞定洪水淹没分析!ArcGIS AddIn无源淹没分析插件!

最近有很多小伙伴给我发私信,想使用我开发的一款基于无源淹没分析算法对洪水淹没进行分析的GIS插件。大部分小伙伴是因为看了我之前发的一个讲解洪水淹没分析算法的视频,在视频中我给大家展示了给某高校水利课题组开发的两款用于洪水淹没分析的插件&…

CentOS 7 基于开源项目制作openssh 9.7p1二进制rpm包(内含ssh-copy-id、显示openssl版本信息)—— 筑梦之路

可参考之前的文章:CentOS 5/6/7 基于开源项目制作openssh 9.6p1 rpm包—— 筑梦之路_centos6 openssh9.6rpm-CSDN博客 2024年3月12日 植树节制作,相关文件见我的资源

iOS全局自动化代码混淆工具!支持cocoapod组件代码一并混淆

​ 目录 摘要 引言 Ipa Guard 怎么使用 ipaguard启动界面 ipaguard代码混淆界面 资源文件混淆界面 重签名界面 总结 摘要 Ipa Guard是一款强大的iOS ipa混淆工具,能够对ipa文件进行混淆加密,保护代码、代码库和资源文件,降低代码可…

灯塔:CSS笔记(3)

盒子模型: 盒子的概念 1.页面中的每一个标签都可以看做是一个“盒子”,通过盒子的视角更方便的进行布局 2.浏览器在渲染(显示)网页时,会将网页中的元素看作是一个个矩形区域,我们也形象的称之为盒子 盒…

混合输入矩阵乘法的性能优化

作者 | Manish Gupta OneFlow编译 翻译|宛子琳、杨婷 AI驱动的技术正逐渐融入人们日常生活的各个角落,有望提高人们获取知识的能力,并提升整体生产效率。语言大模型(LLM)正是这些应用的核心。LLM对内存的需求很高&…

14.WEB渗透测试--Kali Linux(二)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:13.WEB渗透测试--Kali Linux(一)-CSDN博客 netcat简介内容:13.WE…

Java项目:基于Springboot+vue实现的付费自习室系统设计与实现(源码+数据库+毕业论文)附含微信小程序端代码

一、项目简介 本项目是一套基于Springbootvue实现的付费自习室系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

​《宏伟世纪》在 TheSandbox 中带来虚拟苏丹体验!

《宏伟世纪》(Magnificent Century)与 The Sandbox 合作,将戏剧带入数字领域!这部土耳其历史小说电视连续剧以苏丹苏莱曼大帝和许蕾姆苏丹的生平为原型,曾在 140 多个国家和地区播出,收视率超过 5 亿&#…

设计模式一 ---单例设计模式(动力节点,JavaSE基础)

设计模式 1.什么是设计模式? 2.设计模式的分类 单例设计模式就是GoF模式中的一种。 3.GoF设计模式的分类: 单例设计模式: 顾名思义:单个实例的设计模式!

2024 数字环保壁炉|AFIRE ™

2024年,数字和环保壁炉将站在现代性和环保尊重的交汇处。由制作的酒精壁炉和水离子水壁炉提供了将技术创新与生态承诺相结合的体验。为了打造您的装饰壁炉,真正的火焰,100%安全。 2024年,使用水壁炉运行的数字和环保壁炉。 水离…

职场人福音来了!微信机器人自动回复设置

微信消息太多,回复不过来;休息节假日没能及时回复客户消息;好友请求太多一个一个通过很麻烦…… 如果你也有这些烦恼,那么你一定要试试微信管理系统,能够让你实现微信自动会化回复。 1、自动通过好友 当有新的好友请…

算法刷题Day6 | 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

目录 0 哈希表 哈希函数1 有效的字母异位词1.1 string的回顾1.2 我的代码 2 两个数组的交集2.1 unordered_set 介绍2.2 我的解题(set) 3 快乐数3.1 我的解题(set) 4 两数之和4.1 暴力求解4.2 map的使用4.3 哈希表(map&…

使用单片机和电流互感器对非正弦周期电流有效值测定

前言:使用单片机加电流互感器测量交流电路的电流,是非常常见的手段。最简单的方案就是直接使用采样电阻,整流滤波,再进入MCU的ADC进行转换,再通过软件滤波得到一个代表着电流大小的数值。对于电流保护功能来说&#xf…

如何从用户心理一步步挖掘用户需求?

为了更深入透彻挖掘用户需求,彻底满足用户的真实需求,我们可以从用户心理角度,一步步从方案级需求到问题级需求,再到人性级需求。 1、从方案级需求到问题级需求 方案级需求通常是指用户提出的具体解决方案或需求表述。这种需求往往…

一文彻底搞懂IO流

文章目录 1. 什么是IO流2. IO流原理3. IO流分类3.1 按数据类型分类3.2 按流的方向分类 4. IO流的使用场景5. 常用的IO流类5.1 字节流类5.2 字符流类5.3 输入输出流类5.4 字符输出流类 1. 什么是IO流 Java对数据的操作是通过流的方式,IO是java中实现输入输出的基础&…

探索ChatGPT的前沿科技:解锁其在地理信息系统、气候预测、农作物生长等关键领域的创新应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

Java高校学校校园排课系统设计与实现(Idea+Springboot+mysql)

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

【wine】vb程序自定义窗口最大化崩溃分析EXCEPTION_FLT_INEXACT_RESULT 失败

故障现象,wine运行windows应用程序,点击最大化按钮崩溃,wine日志如下 02a8:err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111 for dll L"C:\\windows\\system32\\msxml2.dll" 029c:err:ole:com_get_class_obje…