TC397 EB MCAL开发从0开始系列 之 [1.0]-MCAL结构及Demo介绍

article/2025/10/11 8:51:50

  • MCAL结构介绍
    • MCAL结构
    • MCAL模块
  • MCAL安装包说明
    • DemoWorkspace
    • Mclsar
  • EB 环境配置
    • EB环境安装
    • EB新建工程

->返回总目录-<

MCAL结构介绍

MCAL结构

MCAL是 Microcontroller Abstraction Layer(微控制器抽象层)的简写,是AuoSar架构中的概念,在Autosar架构中的位于BSW(基本软件层),且位于BSW的底层,如下:
在这里插入图片描述
该结构图在AuoSar官方文档中AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf,MCAL位于BSW中的底层,属于底层驱动,对上层提供API接口,AutoSar架构中划分目的是使上层软件独立于硬件之外,这个读者可单独了解AutoSar架构和其分层意义,以及汽车电子为什么使用AutoSar,这里不多阐述。

MCAL模块

MCAL细分四个大模块,Microcontroller Drivers(Gpt,Wdg,Mcu,CorTst),Memory Drivers(Fls,Eep),I/O Drivers(Ocu,Icu,Pwm,Adc,Dio,Port),Communication Driver(Spi,Lin,Can,Fr,Eth,Uart)

在这里插入图片描述

MCAL安装包说明

先安装MCAL包,在对应的安装包里,点击exe安装,目录可自定义。安装好后在目录下可查看文件,下方说明对应目录内容。
在这里插入图片描述

DemoWorkspace

DemoWorkspace为对应MCAL包模块的demo,点击进入,0_Src为MCAL工程代码,含有每个MCAL模块demo用例。1_ToolEnv为EB tresos工程,该工程为DEMO中使用到的MCAL配置。DemoAppBuild.bat和Makefile是编译脚本,脚本中指定了编译工具,但是我们不使用默认的工具,因此不关注这两个文件。
在这里插入图片描述
0_Src目录如下:
以下大概列举了文件内容,内容功能描述在每行后备注

.
|-- AppSw
|   `-- Tricore
|       |-- Cfg_Ssw
|       |   `-- TC39B                  // BMHD USB配置
|       |       |-- Ifx_Cfg_SswBmhd.c
|       |-- DemoMcal                   // MCAL模块的测试demo
|       |   |-- Demo_Adc               // MCAL模块的adc测试demo,下同
|       |   |-- Demo_Can_17_McmCan
|       |   |-- Demo_Dio
|       |   |-- Demo_Fee
|       |-- Main                       // core0_main.c位置(corex)
`-- BaseSw`-- Infra                     // MCAL模块依赖代码|-- Autosar_Srv           // MCAL模块中使用到的det,ecu及在EB中配置的回调函数|   |-- CanIf.c|   |-- CanIf.h|   |-- CanIf_Cbk.c|   |-- CanIf_Cbk.h|   |-- CanIf_Types.h|   |-- xxx.c/.h|-- Integration            // MCAL模块依赖的MMAP及SchM调度接口|   |-- Adc_MemMap.h|   |-- xxx.c/.h|-- Irq|-- Ssw              // MCU启动SSW代码,从这里开始启动,调用到corex_main|-- TC39B|-- Tricore|-- Ifx_Sswxx.c/.h

1_ToolEnv为EB tresos工程,其目录结构如下:

.
|-- 0_Build
|   |-- 1_Config       // tricore对应的编译工具链,对应的链接脚本,lsl. 
|       |-- Config_Tricore_Dcc
|       |-- Config_Tricore_Ghs
|       |-- Config_Tricore_Gnuc
|       |-- Config_Tricore_Tasking
|-- 1_Debug
|-- 2_Tresos
|   |-- DemoApp
|       |-- config           // MCAL模块配置文件,配置内容在这里体现
|           |-- Port.xdm
|           |-- xxx.xdm|   |-- output               // 配置输出文件,这里是输出的arxml文件(可以导入到Davinci cfg中),inc和src中是生成的动态代码,对应模块的配置数据,
|       |-- Port_Bswmd.arxml
|       |-- xxx.arxml
|       |-- inc
|       |   |-- Port_Cfg.h
|       |   |-- xxx.h
|       |-- src
|           |-- Port_Lcfg.c
|           |-- xxx.c|-- StartFwDos.bat
|-- Start_Eclipse.bat

这里要注意output是配置输出文件路径,这里输出的arxml文件可以导入到Davinci cfg中在cfg中配置MCAL,当然,也可以从Davinci cfg将配置导出,导入到EB tresos配置MCAL,incsrc中是生成的动态代码,对应模块的配置数据,比如上述的Port模块,Lcfg.c中定义了,端口属性,如下,gpio0.0配置成输入,上拉,输入模式,默认为低电平。通过静态代码中Port_Init(&Port_Config)初始化所有的PORT端口

static const Port_n_ConfigType Port_kConfiguration[] = 
{/*                              Port0                       */{{/* Port pins direction, characteristics and mode configuration */((uint8)PORT_PIN_IN | PORT_PIN_IN_PULL_UP | PORT_PIN_MODE_GPIO),/*Pin 0*/},{/* Port pins initial level configuration */PORT_PIN_LEVEL_LOW,/* Pin 0 */},/* Port pins drive strength1 configuration */Portx_lPdrConfig1((PORT_INPUT_LEVEL_CMOS_AUTOMOTIVE|PORT_PIN_PAD_STRENGTH_DEFAULT),/*Pin0*/),/* Port pins drive strength2 configuration */Portx_lPdrConfig2((PORT_INPUT_LEVEL_CMOS_AUTOMOTIVE|PORT_PIN_PAD_STRENGTH_DEFAULT),/*Pin8*/),{/* Port pin run time mode changeable or not configuration */PORT_PIN_EMERGENCY_STOP_DISABLE,/* Pin 0 */}},}const Port_ConfigType Port_Config = 
{/* Port Configuration set  */&Port_kConfiguration[0],/* Port 40-th Disc configuration set  */XXX
};

Mclsar

这里有两个文件,
PluginsTresos是Tresos插件,安装后需要把这里的插件Adc_Aurix2G等内容拷贝到EB安装路径下tresos/plugins/下,需要用到哪些模块就拷贝哪些插件,原则上是可以全部拷贝过去。
注意:EB没插件时无法创建对应MCU MCAL工程的。无法选择芯片型号。下方会讲解EB如何安装。

在这里插入图片描述
Src是MCAL静态代码和静态代码需要的寄存器地址及寄存器以及基本的数据类型。在工程当中,使用到哪些模块就添加哪些模块代码。

.
|-- Infra_Prod
|   |-- Platform      // 数据类型
|   |   |-- Platform_Types.h
|   |   |-- Std_Types.h
|   |-- Sfr           // 寄存器地址及寄存器类型
|       `-- TC39xB
`-- Mcal|-- Tricore     // MCAL的静态代码|-- Adc|-- Dio|-- McalLib|-- Mcu|-- Port

EB 环境配置

EB环境安装

在EB安装包EB_xx_Installer_CommandDownload中双击
setup.exe,一路默认安装即可,安装路径可自定义
在这里插入图片描述
在EB安装包EB_xx_ClientLicenseAdmin_CommandDownload中安装client,一路默认安装即可.

在应用程序中输入EB,找到EB Client License Administrator并打开client,按照图示输入license
在这里插入图片描述
安装插件,将MCAL安装包中的插件拷贝到EB安装路径下,如下图:
将MCAL安装路径下的插件全部复制
在这里插入图片描述
拷贝到EB安装目录下:
在这里插入图片描述

EB新建工程

点击tresos_gui.exe打开EB,
在这里插入图片描述
新建工程:
在这里插入图片描述
在这里插入图片描述
新工程创建后再工程名上右击选择Module Configurations,可添加MCAL模块
在这里插入图片描述
在这里插入图片描述

到这里MCAL和EB的基本工程创建介绍就介绍完啦!
下个文章将开始介绍如何使用EB创建基本的MCAL工程,并使用Aurix Development Studio(免费的TASKING工具)在开发板上调试MCAL工程~~~

->返回总目录-<


http://chatgpt.dhexx.cn/article/dBmU4i6y.shtml

相关文章

MCAL中ADC的配置

根据硬件资源分配以及各信号的应用对ADC模块进行配置,使能正确采集信号,并提供转换结果。 1. ADC模块接口配置 使能AdcHwTriggerApi:硬件触发ADC转换,根据硬件需求,部分Channel的转换是通过硬件信号触发转换,因此需要使能该API。 使能AdcEnableStartStopGroupApi:软件…

AurixDevStudio集成MCAL

这是Tricore MCAL安装路径 打开ADS新建一个AURIX Project 我手上的是龙邱的TC377最小系统, 就这样选 理解下第一个选项 新建好的基础工程是这个样子 删除掉Library文件夹, 因为我们这里要使用的MCAL而不是iLLD库(虽然它们实现的功能大体相同) 在工程里新建一个文件夹为Mca…

AUTOSAR 学习笔记(一):NXP S32K14X AUTOSAR MCAL 软件下载及安装

AUTOSAR学习笔记(一)&#xff1a;NXP S32K14X AUTOSAR MCAL 软件下载及安装 目录 AUTOSAR学习笔记(一)&#xff1a;NXP S32K14X AUTOSAR MCAL 软件下载及安装1.下载MCAL 软件2、下载 AUTOSAR EB tresos 软件3、下载AUTOSAR 4.0 OS4、安装 EB tresos5、安装 MCAL6、安装 AUTOSAR…

[ 搞一点AutoSar ]基于EB的MCAL-GPT全模块配置与解析

笔者搞了快一个星期的GPT的测试了&#xff0c;从配置到代码一遍又一遍的操作和阅读。觉得有必要把学习成功稍微总结一下了&#xff1b;学AUTOSAR最后还是得熟悉代码&#xff0c;毕竟AUTOSAR只是目的&#xff0c;而代码才是实现的手段。中间的逻辑关系看代码一目了然&#xff1b…

【MCAL_CANDriver】-1.3-FullCAN和BasicCAN的差异及配置使用

点击返回「《Autosar_MCAL高阶配置》总目录」 目录 1 什么是FullCAN和BasicCAN 1.1 FullCAN / Basic CAN HRH区别 1.2 FullCAN / Basic CAN HTH区别 1.3 FullCAN和Basic CAN存在的原因 1.4 FullCAN/Basic CAN HRH/HTH如何选择 2 如何配置FullCAN和BasicCAN 3 来自CAN Dr…

MCAL MCU Module详解和配置说明

关注“嵌入式软件实战派”回复“AUTOSAR”获得更多实战教程。 以下内容包含&#xff1a;基本概念、模块依赖、应用时序、参数配置实践讲解&#xff0c;以及ECUM对其引用等。 1. 基本概念 描述了MCU&#xff08;Microcontroller Unit&#xff09; 驱动程序的功能和 API。 MCU 驱…

搞一点AutoSar--MCAL SPI-1

整理了一点SPI的资料 目录 1、SPI模块简介2、SPI驱动模块API的使用方法3、SPI通信主要概念4、选择SPI通道缓存&#xff08;Buffer&#xff09;位置5、SPI驱动模块API调用流程 1、SPI模块简介 图1 MCAL 4个驱动组与微控制器内核和外设的映射关系SPI属于MCAL模块中的通信驱动组&…

【MCAL_CANDriver】-1.2-Can Mailbox邮箱,Hardware Object,HOH,HRH,HTH之间的关系

点击返回「《Autosar_MCAL高阶配置》总目录」 目录 1 关键字定义 2 Maibox与Hardware Object之间的关系 2.1 接收L-PDU 2.2 发送L-PDU 3 HOH&#xff0c;HRH&#xff0c;HTH&#xff0c;Hardware Object之间的关系 4 Message buffer(MB)结构 5 结尾 1 关键字定义 Mailb…

图解AUTOSAR(五)——微控制器抽象层(MCAL)

微控制器抽象层位于AUTOSAR分层模型中BSW最底层&#xff0c;包含内部驱动&#xff0c;可以直接访问微控制器和片内外设。更进一步地&#xff0c;MCAL又可以分为微控制器驱动、存储器驱动、通信驱动和I/O驱动四个部分&#xff0c;各部分又由具体的与微控制器硬件相对应的驱动模块…

MCAL架构

MCAL位于AUTOSAR软件架构中基本软件&#xff08;BSW&#xff09;的底层&#xff0c;是可以直接访问MCU寄存器和内部外设的底层驱动。这样划分的目的是使上层软件&#xff08;如ECU抽象层、系统服务层等&#xff09;独立于MCU硬件平台&#xff0c;保证上层软件的标准化和通用性。…

AutoSar之微控制器抽象层MCAL

微控制器抽象层位于AUTOSAR BSW的最底层&#xff0c;包含内部驱动&#xff0c;可直接访问微控制器和外设芯片。从具体应用来看&#xff0c;MCAL主要包括微控制器驱动、存储器驱动、通信驱动和输入输出驱动四个部分&#xff0c;各部分又由具体的与微控制器硬件相对应的驱动模块组…

MCAL介绍及Module Plugin开发流程总结

Mcal–微控制器抽象层位于AUTOSAR分层模型中BSW最底层&#xff0c;包含内部驱动&#xff0c;可以直接访问微控制器和片内外设。 MCAL又可以分为微控制器驱动、存储器驱动、通信驱动和I/O驱动四个部分&#xff0c;各部分又由具体的与微控制器硬件相对应的驱动模块组成。如图所示…

Autosar MCAL软件架构基本概念

MCAL架构介绍 Autosar整体架构图如下所示&#xff1a; MCAL是MicroController Abstraction Layer&#xff08;微控制器抽象层&#xff09;的缩写。如下图所示&#xff0c;MCAL位于AUTOSAR软件架构中基本软件&#xff08;Basic Software&#xff0c;BSW&#xff09;的底层&…

【Autosar】学习总结-MCAL

一、简介 MCAL&#xff1a;微控制器抽象层&#xff1b;位于BSW层中的最下层&#xff1b; MCAL细分&#xff0c;可将驱动分为&#xff1a;微控制器驱动、存储器驱动、通信驱动、IO驱动&#xff1a; 二、MCAL的配置&#xff08;EB-Tresos&#xff09; 1.PORT 我理解的PORT&…

Object数据转map类型

最近 因为调用接口 返回数据 原本项目中是用List<Map<String, Object>> a 接收的 等于说我只能获取到 Map m1 a.get(0); 到第一层的数据 m1.get(“HttpCode”)的数据 然后就是objcet的数据了 无法直接获取到 之前在网上找了好多 什么直接转成jsonObject因为格式的…

Javascript Object和Map之间的转换

简单的区分Map和Object Map是ES6退出的一个类型&#xff0c;特点&#xff1a;任何值都可作为属性名 Object特点&#xff1a;属性名只能是字符串(一开始我也不信&#xff0c;测试后才发现的) 代码图片 创建一个map类型 new Map([[key, value],[key1, value1] ])简单的介绍下面…

Object 转Map,Map转Object方式总结

商品业务对象定义&#xff1a;Product Product product new Product(); product.setId(1L); product.setName("爱他美") product.setProductDt("2022-03-16") 第一种&#xff1a;通过Alibaba Fastjson实现&#xff1a; pom.xml 文件依赖 <dependen…

使用PyQt打包命令pyinstall的几个问题

**问题1&#xff1a;**打包后无demo.spec文件 在windows下使用cmd界面打包时&#xff0c;可以将路径设置到目标文件目录&#xff0c;这样会生成demo.spec文件&#xff0c;方便后期改正软件。 问题2&#xff1a;打包好后提示如下错误&#xff1a; 解决办法&#xff1a;在demo.…

PyCharm打包失败及Pyinstall无法安装问题的解决

问题描述 Python的工程很多情况下需要打包成EXE文件&#xff0c;通过pyinstaller的工具进行打包&#xff0c;首先需 要安装PyInstaller的工具&#xff0c;然后再通过命令行进行打包&#xff0c;安装 PyInstaller 模块与安装其他 Python 模块一样&#xff0c;使用 pip 命令安装…

pyinstall 打包python3.7.1的exe反编译

pyinstall 打包python3.7.1的exe反编译 由于 pyinstall打包的EXE文件&#xff0c;被360认为可能有木马病毒&#xff0c;首先怀疑计算数机系统有毒。用360杀毒&#xff0c;病毒倒是查处了十几个&#xff0c;对于一个对计算机不是十分精通的人来说&#xff0c;只能按360的提示去做…