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在线答疑解惑!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PHP+代码审计】PHP基础——流程控制

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

QT网络编程之实现TCP客户端和服务端

一.QT5.12实现TCP客户端和服务端功能 1.QT中实现TCP通信主要用到了以下类:QTcpServer、QTcpSocket、QHostAddress 2.基本流程: 使用QTcpServer来创建一个TCP服务器,在新的连接建立时,将新建立连接的socket添加到列表中&#xf…

Ubuntu 安装腾讯会议

1.官网下载 进入腾讯会议下载官网下载腾讯会议Linux客户端 选择x86_64格式安装包下载 若不知道自己的系统架构,输入 uname -a 在命令行结果中查看系统架构信息 2.终端命令安装 cd {你的下载路径} sudo dpkg -i TencentMeeting_0300000000_3.19.0.401_x86_64_default.publi…

mysql对索引的选择简述

概述 在业务中经常会优化一些mysql的慢查询,通常都是使用explain去查看分析,检查扫描行数和索引的命中情况; 但是在具体索引的选择上,explain结果中并没有直接展示出来; 此时可以开启mysql的追踪优化器Trace功能&…

如何进行专利布局与专利规避

一、专利布局 WHY 专利布局是指企业或个人在科研或生产过程中,为了保护和利用自身的技术成果,通过综合产业、市场和法律等因素,对专利进行有机结合,构建严密高效的专利保护网,最终形成对企业或个人有利的专利组合。 …

10、Redis分布式系统之数据分区算法

Redis分布式系统之数据分区算法 1、什么是Redis分布式系统 ​ Redis分布式系统,官方称为Redis Cluster, Redis集群(这个集群和前面的主从复制集群不同,这个集群可以理解为是多个主从复制集群所组成的集群),其实是Red…

C# RAM Stable Diffusion 提示词反推 Onnx Demo

目录 介绍 效果 模型信息 项目 代码 下载 C# RAM Stable Diffusion 提示词反推 Onnx Demo 介绍 github地址:GitHub - xinyu1205/recognize-anything: Open-source and strong foundation image recognition models. Open-source and strong foundation ima…

基于Redis实现分布式锁、限流操作(基于SpringBoot)的实现

基于Redis实现分布式锁、限流操作——基于SpringBoot实现 本文总结了一种利用Redis实现分布式锁、限流的较优雅的实现方式本文原理介绍较为通俗,希望能帮到有需要的人本文的demo地址:https://gitee.com/rederxu/lock_distributed.git 一、本文基本实现…

《MySQL数据库》day2--连接查询、子查询、union、limit、DML语句

文章目录 1.把查询结果去除重复记录 -》distinct2.连接查询2.1什么是连接查询?2.2连接查询的分类2.3笛卡尔积现象2.4内连接2.4.1内连接之等值连接。2.4.2内连接之非等值连接2.4.3内连接之自连接 2.5外连接2.6三张表,四张表怎么连接? 3.子查询…

SA3D:基于 NeRF 的三维场景分割方法

Paper: Cen J, Zhou Z, Fang J, et al. Segment anything in 3d with nerfs[J]. Advances in Neural Information Processing Systems, 2024, 36. Introduction: https://jumpat.github.io/SA3D/ Code: https://github.com/Jumpat/SegmentAnythingin3D SA3D 是一种用于 NeRF 表…

Java项目:48 ssm008医院门诊挂号系统+jsp(含文档)

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本选题则旨在通过标签分类管理等方式实现 管理员;个人中心、药房管理、护士管理、医生管理、病人信息管理、科室信息管理、挂号管…

【每日一题】2864. 最大二进制奇数-2024.3.13

题目: 2864. 最大二进制奇数 给你一个 二进制 字符串 s ,其中至少包含一个 1 。 你必须按某种方式 重新排列 字符串中的位,使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。 以字符串形式,表示并返回可以由给定组合…

基于GIS技术的智慧农业大数据平台解决方案

1.建设背景 国务院促进大数据发展纲要 纲要提出大力推动政府信息系统和公共数据互联开放共享,加快政府信息平台整合,推动数据资源整合,提升治理水平。按照“五个统一”建设“大平台“,融合“大数据”,构建“大系统”落…

Leetcode-热题100-持续更新

时间不够,只能背诵哎,没办法,难题不写,简单题和中等题。 def majorityElement(nums):# 使用字典 count 来记录每个元素的出现次数count {}for num in nums:if num in count:count[num] 1else:count[num] 1length len(nums)#…

喜报!聚铭网络实力入选2024年度扬州市网络安全技术支撑服务机构

近日,中共扬州市委网络安全和信息化委员会办公室正式公布了“2024年度扬州市网络安全技术支撑服务机构”名单,聚铭网络凭借其卓越的技术实力与优质的安服能力,在众多竞争者中脱颖而出,光荣上榜! 为了健全扬州市网络安…

zabbix 7.0编译部署教程

zabbix 7.0编译部署教程 2024-03-08 16:50乐维社区 zabbix7.0 alpha版本、beta版本已经陆续发布,Zabbix7.0 LTS版本发布时间也越来越近。据了解,新的版本在性能提升、架构优化等新功能方面有非常亮眼的表现,不少小伙伴对此也已经跃跃欲试。心…

JavaWeb实验 AJAX技术基本应用

实验目的 认识Ajax的作用;能在JSP中应用Ajax与Servlet进行交互。 实验内容 创建一个Java Web应用,综合利用JSP、Ajax和Servlet技术实现中英文互译功能: 在输入框输入英文单词时,在后面即时显示翻译为中文的结果;在输…

下载文件,无法获取header中的Content-Disposition

问题:axios跨域请求时,无法获取header中的Content-Disposition,并且network中已显示Content-Disposition 在使用CORS方式跨域时,浏览器只会返回默认的头部Header 解决: 后端在返回时,需要设置公开的响应…

【项目】C++ 基于多设计模式下的同步异步日志系统

前言 一般而言,业务的服务都是周而复始的运行,当程序出现某些问题时,程序员要能够进行快速的修复,而修复的前提是要能够先定位问题。 因此为了能够更快的定位问题,我们可以在程序运行过程中记录一些日志,通…

选股就用河北源达“财源滚滚”选股软件

在股市投资的道路上,选股无疑是至关重要的一环。然而,面对海量的个股信息和复杂的市场环境,如何科学、准确地选股,成为了投资者必须面对的难题。河北源达信息技术股份有限公司推出的“财源滚滚”选股软件,以其独特的优…