Infineon+EB构建MCAL驱动包Demo实现片内外设使用

本篇文章以实际MCAL示例程序的实现与使用,帮助读者理解MCAL层在BSW中具体担任的功能与角色。文章首先介绍了为了构建MCAL示例程序所需要的相关应用程序的安装;然后介绍了个软件相互集成配置的过程,达到可以编译生成可执行文件;最后讲解了可执行文件的烧录过程以及通过串口与程序实时交互来实现不同片内外设的Demo运行使用。

目录

程序安装

BIFACES

EB Tresos Studio 

TC3xx MCAL Driver

构建编译环境 

Demo配置集成

源码准备

导入工程

使用Tresos生成MCAL动态代码

构建编译

Demo烧录运行 

烧录

通过Terminal配置程序运行


MCAL(Microcontroller Abstraction Layer)位于AUTOSAR软件架构中基本软件(BSW)的底层,是可以直接访问MCU寄存器和内部外设的底层驱动。它能够使UTOSAR软件架构中的上层软件(如ECU抽象层、系统服务层等)独立于MCU硬件平台,从而保证上层软件的标准化和通用性。

MCAL针对不同芯片内的外设按功能提供了相应的Demo,帮助我们能够更好地的集成MCAL到我们的项目中实现微控制器的驱动,下面我们按照使用流程分三个步骤来介绍MCAL中Demo的使用。

  1. 软件安装:为了使用MCAL中Demo,我们需要安装安装BIFACES,TRESOS,MCAL Packages以及编译工具等。
  2. Demo配置集成:我们根据实际使用情况,对Tresos等进行配置,最终构建工程。
  3. 程序执行:将可执行文件下载到英飞凌评估板,运行Demo。


程序安装

BIFACES

BIFACES(Build and Integration Framework for Automotive Controller Embedded Software)是基于Eclipse的工程组织框架,用于AURIX™ 软件开发。它可以将各个Autosar工具链中的软件组织为一个工程并进行统一构建生成可执行文件。

它的主要特点如下:

  • 轻松集成项目工程
  • 自动的MakeFile生成
  • 通用的构建环境
  • 支持不同的工具链
  • 可以通过命令行构建环境

在英飞凌官网上根据电脑系统位数下载“BIFACES Framework Package Win64”或者“BIFACES
Framework Package Win32” 。解压并运行安装程序可执行文件,以便BIFACES完整安装。


EB Tresos Studio 

EB Tresos Studio可以根据需要对芯片内外设进行配置,并生成各个模块的动态配置代码,配合MCAL提供的静态代码,提供相应接口供符合基于AUTOSAR的软件工程使用。

下载安装包按说明进行安装。

 安装“EB_Client_License_Administrator”,运行添加激活码,激活成功则工具安装完。


TC3xx MCAL Driver

安装MCAL静态驱动代码,代码分为三个部分:

  1. MCISAR Basic package:芯片基本模块,包括MCU,Port,DIO等。
  2. MCISAR COM Enhanced package:芯片通信外设增强模块,包括FlexRay与Ethernet。
  3. MCISAR MCD MCAL Complex Drivers:芯片复杂驱动部分,包括FLSloader,SMU以及DEMOCD。

每个 MCAL软件包都包括MCAL驱动程序安装程序和 MCAL 相关文档,例如: 

  • User manual:提供有关 MCAL软件包集成、安全、配置和功能以及重要功能的使用示例说明。
  • Release Notes:提供有关包内容和已知问题的信息,与上一版本相比的变化,以及有关工具、编译器的详细信息选件和支持包。
  • MCAL Configuration Verification Manual :描述结构、宏、从配置参数生成的声明和数据。这允许根据输入配置验证生成的代码的集成器参数。
  • TC3xx_SW_MCAL_HWErrataAnalysis.xlsx:包含对硬件的分析勘误表。
  • Demo Application note:提供有关构建和运行演示的详细信息。

下图是安装MCAL驱动之后生成的文件夹结构:


构建编译环境 

构建工程需要一个编译器,有三种编译器可以选择:

  • TASKING
  • HighTec
  • WindRiver

需要刷写工具或调试器才能将代码刷写到 triboard:

  • Infineon Memtool
  • The AURIX™ Free Entry Toolchain includes Universal Debug Engine
    (UDE) debugger 
  • Lauterbach, iSystem, PLS, etc…

安装DAS以驱动仿真下载器。


Demo配置集成

源码准备

MCAL提供了一个名为“TC3xx MCAL DEMO GUI.exe”的GUI,用于创建BIFACES使用的项目结构。运行 “TC3xx MCAL DEMO GUI.exe”,根据需要进行配置:

  1. 选择使用的MCAL版本和软件包(始终需要Basic)。
  2. 从下拉列表中选择设备和使用的编译器。
  3. 输入已安装的 MCAL包的路径。
  4. 输入Bifaces项目所在的输出文件夹创建(例如C:\MyFolder\MCAL_demo)。
  5. 指定编译器所在的文件夹。
  6. 如果您想复制 Tresos 插件文件(从MCAL包到 tresos安装文件夹),选中该框并启动
    tresos 安装路径(例如 C:\EB\tresos)

如果没有做第六步,手动拷贝MCAL包中的插件文件到Tresos中。

生成完成之后,在预设的文件夹中,下面的文件被创建。


导入工程

双击“StartBifaces.bat”执行脚本,使用BIFACES的默认路径workspace 文件夹,然后单击确定 (你可以如果需要,还可以选择其他文件夹),点击右上角的“Workbench”。

将刚刚生成的工程导入到BIFACES,导入的工程目录结构如下。


使用Tresos生成MCAL动态代码

打开Tresos,导入工程中已经存在的Tresos工程文件。

在项目资源管理器中,展开“DemoApp”,双击 Aurix2g 项目以加载配置,展开了所有的相关模块。 

这里的示例工程已经将各个模块配置完成,我们可以根据自己项目的实际使用需求来进行修改进行功能验证,下图是MCU的EB配置界面。

修改生成代码目录到对应工程目录: "<MCALProject_Directory>\0_SrcAppSw\Tricore\CfgMcal"。

右键“DemoApp”,然后选择“Verify project” 用以验证配置的依赖。

右键“DemoApp”,然后选择“Generate project”生成动态代码,生成的代码可以在"<MCALProject_Directory>\0_Src AppSw\Tricore\CfgMcal"目录下看到。


构建编译

如果需要更改编译器的路径,右键单击“< MCALProject_Directory>\1_ToolEnv\0_Build 1_Config
Config.xml“并选择”打开方式“,然后选择”文本编辑器”。在 Config.xml 中,将“primaryToolchain”设置为为您提供的编译器。默认值设置为 Tasking (使用HighTec的话需要将 Tasking 替换为 “gnuc”)。

然后在BIFACES构建程序,最后就可以生成可执行文件。


Demo烧录运行 

烧录

正确连接电脑与开发板。

打开“IMTMemtool.exe” ,点击“Default button”,选择“Select “Use a default target configuration”,展开“TriCore™ Aurix2G”然后选择“Triboard with TC39x B Step(DAS)” 然后点击完成。

点击“Connect”摁扭,显示正常连接之后打开之前生成的.hex文件。

摁下“Select All” ,然后摁下“Add Sel. >>”,然后点击“Program”,就会开始刷写,最后成功之后会显示“success”。


通过Terminal配置程序运行

启动 BiFaces 终端并选择串行连接,选择英飞凌DAS COM端口,然后单击“确定”。单击“设置”,然后进行串口配置。

单击板卡上的重启摁扭启动程序运行。

然后您可以看到串口输出了Demo的选择菜单,如果您想运行DIO Demo,则摁下“c”即可,每个Demo还有自己独立的菜单,摁下“x”回退上一级菜单。


十六宿舍 原创作品,转载必须标注原文链接。

©2023 Yang Li. All rights reserved.

欢迎关注 『十六宿舍』,大家喜欢的话,给个👍,更多关于嵌入式相关技术的内容持续更新中。

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

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

相关文章

055-第三代软件开发-控制台输出彩虹日志

第三代软件开发-控制台输出彩虹日志 文章目录 第三代软件开发-控制台输出彩虹日志项目介绍控制台输出彩虹日志实现原理真实代码 总结 关键字&#xff1a; Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QM…

054-第三代软件开发-信号槽

第三代软件开发-信号槽 文章目录 第三代软件开发-信号槽项目介绍信号槽实现原理与MFC消息映射机制区别Qt信号槽机制的优缺点 关键字&#xff1a; Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#x…

网络层——IP协议

文章目录 一.IP协议二.基本概念三.IP协议格式四.分片与组装五.网段划分六.特殊的IP地址七.IP地址的数量限制八.私网IP地址和公网IP地址九.路由十.路由表生成算法 一.IP协议 IP协议全称为“网际互连协议&#xff08;Internet Protocol&#xff09;”&#xff0c;IP协议是TCP/IP…

视频合并:掌握视频嵌套合并技巧,剪辑高手的必备秘籍

在视频剪辑的过程中&#xff0c;掌握视频合并的技巧是每个剪辑高手必备的技能之一。通过合理的合并视频&#xff0c;可以增强视频的视觉效果&#xff0c;提高观看体验。 一、视频合并的准备工作 收集素材&#xff1a;在进行视频合并之前&#xff0c;首先需要收集足够的素材&a…

C语言 深入理解指针

目录 前言 指针的重要概念 剖析 题目一 题目二 题目三 题目四 题目五 题目六 题目七 题目八 **cpp *--*cpp 3 *cpp[-2] 3 cpp[-1][-1] 1 前言 简单来说&#xff0c;指针是一个变量&#xff0c;其值为另一个变量的地址。通过指针&#xff0c;我们可以直…

交易机器人-规则部分

微信公众号&#xff1a;大数据高性能计算 背景 背景是基于人工去做交易本身无法做到24小时无时无刻的交易&#xff0c;主要是虚拟币本身它是24小时交易&#xff0c;人无法做到24小时盯盘&#xff0c;其次就是如果你希望通过配置更加复杂的规则甚至需要爬取最新的信息走模型进行…

二阶低通滤波器(二阶巴特沃斯滤波器)

连续传递函数G(s) 离散传递函数G(z) 差分方程形式 二阶巴特沃斯滤波器参数设计 设计采样频率100Hz&#xff0c;截止频率33Hz。 注意&#xff1a;设计参数使用在离散系统中&#xff01; 同理&#xff0c;其他不同阶数不同类型的滤波器设计&#xff0c;如二阶高通滤波器、二阶…

OFDM通信系统仿真之交织技术

文章目录 前言一、交织1、概念2、图形举例3、交织的位置 二、MATLAB仿真1、MATLAB 程序2、仿真结果 前言 之前的博客&#xff1a;OFDM深入学习及MATLAB仿真 中有对交织的概念进行讲解&#xff0c;但讲解还是比较浅显&#xff0c;且仿真实现时并没有加入交织及解交织流程&#…

系列十二、强引用、软引用、弱引用、虚引用分别是什么?

一、整体架构 二、强引用&#xff08;默认支持模式&#xff09; 2.1、概述 当内存不足时&#xff0c;JVM开始垃圾回收&#xff0c;对于强引用的对象&#xff0c;就算是出现了OOM也不会对该对象进行回收&#xff0c;死都不收。 强引用是我们最常见的普通对象引用&#xff0c;只…

特效!视频里的特效在哪制作——Adobe After Effects

今天&#xff0c;我们来谈谈一款在Adobe系列中推出的一款图形视频处理软件&#xff0c;适用于从事设计和视频特技的机构&#xff0c;包括电视台、动画制作公司、个人后期制作工作室以及多媒体工作室的属于层类型后期软件——Adobe After Effects。 Adobe After Effects&#xf…

苍穹外卖项目笔记(3)——员工管理

前言 这些功能都没有展示对应的测试结果&#xff0c;可自行通过接口文档进行测试&#xff0c;也可以进行前后端联调测试&#xff0c;附代码链接&#xff1a;take-out 1新增员工 1.1 需求分析和设计 产品原型 接口设计 【注】code&#xff1a;操作成功返回1&#xff0c;否则…

Azure Machine Learning - Azure AI 搜索中的集成数据分块和嵌入

在基于索引器的索引编制中&#xff0c;Azure AI _集成矢量化_将数据分块和文本到矢量嵌入添加到技能中&#xff0c;它还为查询添加文本到矢量的转换。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本…

我叫:选择排序【JAVA】

1.我是个啥子&#xff1f;&#xff1f; 选择式排序&#xff1a;属于内部排序法,从欲排序的数据中,按指定的规则选出某一元素&#xff0c;再依规定交换位置后达到排序的目的。 2.我的思想 基本思想:第一次从arr[0]~arr[n-1]中选取最小值&#xff0c;与arr[0]交换&#xff0c;第…

io多路复用:select、poll和epoll

1、为什么使用多路复用&#xff1a; 1.1单线程BIO监听socket 多路复用一般用于网络io当中&#xff0c;提到网络io我们肯定能想到socket。如果我们想要一个线程单纯的用向下文的方式监听很多个socket看他是否有事件发生&#xff0c;那这样是不可行。 但上一个socket1没有可读事…

哪个电脑录屏软件好用又免费?十大好用的免费录屏软件排行

屏幕录制软件是一个非常有用的辅助工具&#xff0c;可以帮助您录制屏幕上的所有内容&#xff0c;并根据需要将其转换为视频。 此外&#xff0c;免费的屏幕录像机可以为您节省大量不必要的费用。在这篇文章中&#xff0c;我将列出我在工作和学习中最有效使用的 10 个软件。 每…

OSG加载模型时显示读取进度

目录 1. 前言 2. 开发环境说明 3. 功能实现 3.1. 方法1 3.2. 方法2 3.3. 方法3 4. 附加说明 1. 前言 OSG中加载模型文件到视景器&#xff0c;一般通过osgDB::readXXXX系列开头的函数来加载模型&#xff0c;如&#xff1a;osgDB::readNodeFile、osgDB::readImageFile、os…

Pytest自动化测试框架:mark用法---测试用例分组执行

pytest中的mark&#xff1a; mark主要用于在测试用例/测试类中给用例打标记(只能使用已注册的标记名)&#xff0c;实现测试分组功能&#xff0c;并能和其它插件配合设置测试方法执行顺序等。 如下图&#xff0c;现在需要只执行红色部分的测试方法&#xff0c;其它方法不执行&am…

【精选】项目管理工具——Maven详解

Maven简介 Maven是一个项目管理工具。它可以帮助程序员构建工程&#xff0c;管理jar包&#xff0c;编译代码&#xff0c;完成测试&#xff0c;项目打包等等。 Maven工具是基于POM&#xff08;Project Object Model&#xff0c;项目对象模型&#xff09;实现的。在Maven的管理下…

【React】React 基础

1. 搭建环境 npx create-react-app react-basic-demo2. 基本使用 JSX 中使用 {} 识别 JavaScript 中的表达式&#xff0c;比如变量、函数调用、方法调用等。 if、switch、变量声明等属于语句&#xff0c;不是表达式。 列表渲染使用 map 。 事件绑定用&#xff1b;on 事件名称…

公寓水电管理系统

springbootmybatisthymeleaf 这次练习是尝试将layer与系统结合起来&#xff0c;将新增、修改、删除都和弹窗结合起来。 一、需求分析 二、数据库 三、模块 1、登录页面 哈哈哈&#xff0c;之前做的登录页面都好丑&#xff0c;这是目前做的最好看的一次了。 超级管理员&…