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

->返回总目录-<

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 UCB配置
|       |       |-- 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工程~~~

->返回总目录-<

  • 15
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yy九歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值