AUTOSAR MCAL讲解和EB tresos工程创建

目录

1MCAL概念:

2.特点:

3.意义

4.基础软件架构

​4.1微控制器(核心)驱动

4.2存储器方面的驱动

4.3通信相关的驱动

4.4I/O相关的驱动

5.AUTOSAR MCAL规范

5.1功能概述:

​5.2依赖关系:

​5.3功能规范:

​5.4API规范:

​5.5功能时序图:

​5.6配置规范:

6.MCAL代码

6.1静态代码

6.2动态代码

6.3代码配置工具

7.新建TC3xx EB-tresos工程

7.1 工程目录

7.2工程新建

7.3 添加驱动


1 MCAL概念:

        MCAL 全称Microcontroller Abstraction Layer 微控制器抽象层

        作为AUTOSAR分层模型中BSW最底层,它包含可以直接访问所有映射到微控制器地址空间的片内外设与核心寄存器

2.特点:

        2.1将芯片相关的初始化配置进行统一的管理,可以通过图形界面配置的方式来生成动态代码。

        2.2.二是实现并预留了符合AUTOSAR规范的接口,方便上层软件以统一的方式对MCAL进行使用

3.意义

        这两方面特点不仅能使以前需要Coding的开发工作转换为配置,提高开发速度,还可以保证上层软件的标准化和通用性。

4.基础软件架构

4.1微控制器(核心)驱动

        GPT Driver:GPT(General Purpose Timer)通用定时器驱动模块使用MCU硬件定时器通道,为操作系统或者其他基础软件模块提供计时功能,实现不同周期的任务调用以及操作时间统计等功能。
        WDG Driver:WDG(Watchdog)驱动程序可以提供不同喂狗周期的初始化配置,并提供超时不喂狗重启(软件崩溃)的功能。
        MCU Driver:MCU(Micro Controller Unit)驱动程序提供MCU设置、初始化时钟并完成配置电源模式等。

4.2存储器方面的驱动

        FLS Driver:FLS (Flash) 驱动程序初始化 FLS并读取/写入FLS。以TC397为例,FLS对DFlash0 Bank完成读取写入擦除等操作。
TC397还有FEE和FlsLoader两部分模块驱动从不同的角度来操作存储器。

4.3通信相关的驱动

        SPI Handler/Driver:SPI(Serial Peripheral Interface)SPI驱动模块是微控制器内部同步串行通信接口的驱动,可以配置数据使用SPI驱动的内部缓冲器,或者是由用户提供的外部缓冲器。可以根据硬件属性来定义SPI任务,然后组成任务序列,以优先级排序的方式来传递数据。
        LIN Driver:LIN(Local Interconnected network)是基于UART/SCI(Universal Asynchronous Receiver-Transmitter/SerialCommunication Interface通用异步收发器/串行通信接口)的低成本串行通信协议,该模块完成LIN模块初始化以及收发等操作。
        CAN Driver:CAN驱动主要完成对片内CAN控制器的初始化与使用,完成CANController,CanHardwareObject等配置。
        FlexRay Driver:FlexRay设备驱动程序初始化FlexRay并执行FlexRay输入/输出。
        Ethernet Driver:该驱动模块对所使用的以太网控制器的硬件特性进行了抽象,完成以太网初始化以及收发。


4.4I/O相关的驱动

        PORT Driver:对芯片的所有I/O口进行初始化,可以配置成通用I/O、模数转换、脉宽调制等功能。对各管脚的具体配置和使用取决于微控制器引脚功能分配。
        DIO Driver:DIO(Digital Input/Output)驱动对微控制器硬件管脚的访问进行了抽象,驱动输出通用I/O口置位或读出输入通用I/O口。
        ADC Driver:ADC(Analog Digital Converter)是片内模拟转数字驱动程序。它提供初始化,启动/停止AD转换,设置AD转换结果缓冲区并读取AD转换结果的功能。
PWM Driver:PWM驱动为片内PWM模块提供初始化和控制服务,可生成周期和占空比都可变的方波脉冲。
        ICU Driver:ICU(Input Capture Unit)是微控制器的输入捕获单元。它可以对信号边沿进行检测并通知,它还可以测量PWM波形。
每个微控制器都配备了自己的MCAL软件来访问系统 MCU 的片上外设,点击这里即可访问瑞萨芯片官网下载MCAL,英飞凌则需要在官网提交申请进行下载

5.AUTOSAR MCAL规范

AUTOSAR MCAL驱动程序软件规范包含MCAL驱动程序需要满足的所有软件要求(包括静态&动态代码)。主要包括了以下几个部分。

5.1功能概述:

        定义模块实现的具体功能,比如定义MCU驱动程序提供基本微控制器初始化、时钟初始化、电源管理模式(低功耗)以及复位等微控制器特定功能。下图说明了MCU驱动规范的范围。


5.2依赖关系:

定义了此模块与其他模块的依赖关系,下图为模块涉及包含的头文件结构图。


5.3功能规范:

        定义了包括复位、时钟管理的一般功能规范,还定义了包括错误分类,错误检测,错误通知以及调试支持等一系列功能规范。


5.4API规范:

        定义了模块包含的数据类型,模块内部的类型定义,函数定义以及预留的接口和API参数检测。下图为Mcu_Init的函数定义。


5.5功能时序图:

        定义用户代码与驱动模块完成特定功能的时序,下图为应用代码与MCU驱动模块间为完成MCU初始化功能所经历的时序图。


5.6配置规范:

        定义了提供给用户进行初始化以及驱动能力配置选项的规范说明,下图定义了驱动是否提供重启接口的配置选项。

6.MCAL代码

        MCAL代码分为静态代码以及动态代码.

6.1静态代码

        静态的代码为MCAL的核心代码,其提供符合AUTOSAR MCAL软件规范以及微控制器硬件规范的底层驱动程序,可以支持访问微控制器的片内外设。以TC3xx为例,MC-ISAR_AS422_TC3xx_BASIC_1.40.0\McIsar\Src\Mcal\Tricore目录下包含了BASIC部分的驱动静态代码,每个模块都包含对应的.c与.h文件。他们往往不需要用户进行改动。

6.2动态代码

        MCAL的动态代码是通过代码生成工具生成的,代码生成工具需要输入PDF(Parameter Definition File)文件,这种文件以XML编写,通常为.arxml或者.xdm为后缀,定义了配置参数的描述及其最小值和最大值。下面的XML代码定义了McuPerformResetApi配置项的相关参数。

 <v:var name="McuPerformResetApi" type="BOOLEAN">
   <a:a name="DESC"
    value="Pre-processor switch to enable / disable the use of the function Mcu_PerformReset()
           TRUE : The function Mcu_PerformReset() is available
           FALSE: The function Mcu_PerformReset() not is available"/>
   <a:a name="IMPLEMENTATIONCONFIGCLASS"
    type="IMPLEMENTATIONCONFIGCLASS">
     <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
   </a:a>
   <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
   <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
   <a:a name="SCOPE" value="LOCAL"/>
   <a:a name="SYMBOLICNAMEVALUE" value="false"/>
   <a:a name="UUID"
    value="ECUC:88316ee4-ac23-418d-a433-20ccecc20da2"/>
   <a:da name="DEFAULT" value="false"/>
 </v:var>

                    <v:var name="McuPerformResetApi" type="BOOLEAN">
                      <a:a name="DESC"
                       value="Pre-processor switch to enable / disable the use of the function Mcu_PerformReset()
                              TRUE : The function Mcu_PerformReset() is available
                              FALSE: The function Mcu_PerformReset() not is available"/>
                      <a:a name="IMPLEMENTATIONCONFIGCLASS"
                       type="IMPLEMENTATIONCONFIGCLASS">
                        <icc:v vclass="PreCompile">VariantPostBuild</icc:v>
                      </a:a>
                      <a:a name="POSTBUILDVARIANTVALUE" value="false"/>
                      <a:a name="ORIGIN" value="AUTOSAR_ECUC"/>
                      <a:a name="SCOPE" value="LOCAL"/>
                      <a:a name="SYMBOLICNAMEVALUE" value="false"/>
                      <a:a name="UUID"
                       value="ECUC:88316ee4-ac23-418d-a433-20ccecc20da2"/>
                      <a:da name="DEFAULT" value="false"/>
                    </v:var>

6.3代码配置工具

        我们一般使用的配置工具是EB-tresos,它导入PDF(选择具体芯片平台)之后能够提供了图形界面(GUI)来供我们进行相关配置,然后最终生成动态代码。

        它生成的动态代码包含两个部分,一个部分是与静态代码配合完成底层驱动工作,它们大部分的名称格式为*_PBCfg.c和*_PBCfg.h或者*_Cfg.h。芯片平台会基于Autosar规范,结合硬件平台的实际情况,提供MCAL User Manual以及MCAL Configuration Verification Manual,它们会进一步详细的说明针对此芯片对应的MCAL的方方面面,下图为MCU驱动模块代码文件结构,里边用红色框出的即为动态代码。

EB还会生成以.xdm为后缀的配置文档,保存了当前的配置信息。如下代码所示。

<d:var name="McuPerformResetApi" type="BOOLEAN" value="true"/>

        它还生成了以.arxml结尾的ECU描述文件,如果AUTOSAR MCAL驱动程序在不同项目团队中共享,则ECU Desc文件可以充当代码生成工具的输入。下图一份MCAL生成的文件目录。

7.新建TC3xx EB-tresos工程
7.1 工程目录

        首先,使用默认路径或者提前建立好的文件夹路径存放workspace文件。

关闭掉引导文件之后,即可以看到可以看到下图,因为我之前建立(导入)过工程,这里显示了我有两个工程

7.2工程新建

选择File-->New-->Configuration Project,建立新的工程。

起一个合法的工程名。

7.3 添加驱动

建立好之后就能在Project Explorer中见到我们刚建立好的工程,然后点击选择ECU(CSDN_TC397),右键选择Module Configurations添加驱动模块。

下图添加了MCU模块,选中左边的可选模块中的MCU,然后单击右指的绿色加号摁扭即可完成添加。 删除的的话选中中部已添加的模块,点击右指的红色减号摁扭即可完成删除,最右边可以修改生成代码的路径和使用的xdm文件,如果需要导入已有的模块xdm配置文件,在这里选择点击OK即可。

7.4生成

校验和生成摁扭如下如所示

如果没有配置项非法或者依赖错误,生成会得到下图。

点击具体的驱动模块,右键可以选择模块使能状态,Disable之后不再生成该模块对应的动态代码。
                        

原文链接:https://blog.csdn.net/geek_liyang/article/details/135025670

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AUTOSARAUTomotive Open System ARchitecture)是一种用于汽车电子系统开发的标准化架构。EB tresos是一个用于AUTOSAR的开发工具,包含多个模块用于系统配置、运行时间环境和工具链的管理。 EB tresos具有强大的配置管理功能。用户可以在该工具中定义ECU(电控单元)的软硬件组成以及它们之间的通信。用户可以定义和配置ARXML文件,其中包含了ECU的所有配置信息。此外,EB tresos还提供了可视化的界面,使用户可以直观地添加、修改和删除ECU组件以及ECU之间的连接。 EB tresos还提供了强大的运行时间环境管理功能。用户可以配置ECU的运行时间环境和调度策略。EB tresos支持多核处理器,可以根据任务的优先级和执行时间要求进行任务调度。用户可以定义任务、事件和资源,并将它们映射到不同的核心或处理器。EB tresos还支持多任务管理和任务优先级的管理。 EB tresos还提供了一套完整的工具链,用于AUTOSAR代码的生成、编译和调试。用户可以在EB tresos中定义和配置AUTOSAR构件,并通过该工具链生成可执行代码。生成的代码遵循AUTOSAR标准,可以与其他AUTOSAR平台兼容。 综上所述,EB tresos是一个功能强大的AUTOSAR开发工具,提供了全面的配置管理、运行时间环境管理和工具链支持。它能够帮助开发人员更容易地开发和管理AUTOSAR系统,并提高系统的可靠性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值