AUTOSAR系列教程合集

策略

整体将采用自底向上的方式进行讲解,开发路线可能会做略微调整。

开发路线

工程搭建--->BSW(MCAL--->通信协议栈(CAN/LIN))--->SWC--->代码集成--->测试。

开发风格

追求:干扰最小化,极简且正确。

目标

建成一套高质量的开发参考文档。

1、基于EB的MCAL---MCU驱动开发手册

版本记录

AUTOSAR系列教程合集项目版本编写日期发布日期作者批准描述V0.12023.11.012023.11.12心迹难寻心迹难寻初稿V0.22023.11.15-心迹难寻心迹难寻              修正错误单词

前置条件

声明

本教程仅供学习参考使用,请勿用于商业用途或二次创作,内容创作使用的软件,皆为试用版本或免费版本,如还有内容可能涉及侵权的,请告知,很抱歉、我会第一时间删除,谢谢理解!

未经本人书面允许,禁止使用本模板及内容!

必备知识点/技能

一问三连:

①、MCU驱动的功能有哪些?

②、具备独立申请账号,寻求技术支持的能力?

③?

开发工具

工具名称版本用途/描述EB Troses Studio24.0.1配置MCALS32K14X_MCAL_4.2_RTM_1.0.31.0.3MCAL驱动包NXP S32K146- 硬件载体 外部晶振:20Mhz

参考文档

序号文件名称路径1AUTOSAR_MCAL_MCU_IM.pdf C:\NXP\AUTOSAR\S32K14X_MCAL4_2_RTM_1_0_3\ eclipse\plugins\Mcu_TS_T40D2M10I3R0\doc 2AUTOSAR_MCAL_MCU_UM.pdf C:\NXP\AUTOSAR\S32K14X_MCAL4_2_RTM_1_0_3\ eclipse\plugins\Mcu_TS_T40D2M10I3R0\doc

缩写与全称

缩写全称AUTOSARAutomotive Open System ArchitecturePLLPhase Locked LoopPMCPower Management Controller

前言

此文档简述了,基于EB Tresos软件配置MCAL--- MCU驱动模块的方法。

受众:主要面向,从事嵌入式汽车电子开发方向的工程师,和有基础的嵌入式开发人员。

目的:让用户快速上手开发MCU驱动。

一、MCU介绍与配置使用方法

层级关系

主要功能

初始化时钟,提供时钟参考。

主要接口函数

序号函数名称描述1Mcu_Init()-2Mcu_InitClock()-3Mcu_GetPllStatus()获取锁相环PLL状态4Mcu_DistributePllClock()使能PLL

//初始化伪代码

1 Mcu_Init();

2 Mcu_InitClock();

3 while(未锁定 == Mcu_GetPllStatus()){

}

4 Mcu_DistributePllClock();

配置方法说明

Default Error Detect                                                   Version Info API 

开启或关闭默认错误跟踪器(Det)                           启用/禁用 API 以读取模块版本信息

Mcu Get Ram State API                                             Mcu Init Clock API  

启用/禁用Mcu_GetRamState函数                              启用/禁用 Mcu Init Clock API 函数

Mcu No PLL                                                                Mcu Enter Low-Power Mode 

如果硬件无PLL,且无需软件操作,启用此函数         启用/禁用低功耗模式函数

否则禁用此函数

Mcu Loops TimeOut (0 -> 4294967295)                Mcu Perform Reset API  

McuCalloutBeforePerformReset

McuPerformResetCallout 

McuCmuNotification

McuErrorIsrNotification   

Mcu Disable System Integration Module Initialization  

Mcu Disable Power Management Controller Initialization 

Mcu Disable Reset Control Module Initialization 

Mcu Disable System Mode Controller Initialization 

方法:以上参数具体功能及含义,见参考手册2。暂时不想写了,需自行去查看。

后面有时间再补充进去。

二、示例/实践

1、配置思路

EB作为MCAL配置实现的载体,其配置过程可简化为:

① 选择要使用的API功能函数;

② 时钟源配置、后级时钟配置(过程可简单理解为:开关数字和乘除法的组合使用);

③ 配置CAN、LIN、ADC、SPI、PWM等等外设的参考时钟;

④ 生成MCAL MCU驱动的配置.c和.h文件。

2、时钟树

从上图可以看出,S32K14x 共有四个时钟源:

① 快速时钟FastlRC;

② 慢速时钟SlowRC;

③ 外部时钟OSC;

④ PMC时钟(LPO128Khz)。

可供后级时钟:CORE_CLK、SYS_CLK、BUS_CLK、FLASH_CLK等总线时钟使用。

3、EB 新建工程

4、MCU配置

1、MCU->General

在通用界面中选择要使用的API函数,其他参数默认即可。

2、进入MCU->General->McuGeneralConfiguration选项下

① 配置外部时钟SOSC   McuSOSCClockConfig:

注:可自行根据使用的,评估板外部晶振频率进行配置。

② 配置慢速时钟SIRC   McuSIRCClockConfig:

不做配置,默认即可。

③ 配置快速时钟FIRC   McuFIRCClockConfig:

不做配置,默认即可。

④ 配置PLL时钟  McuSystemPll:

将PLL时钟配置为最大160MHz

计算公式:

PLL f =  ( SOSC x (PLL Reference Clock Divider) x (PLL Multiplier) ) / 2

PLL Div2 f =  (PLL f ) / (PLL Divider 2)

PLL Div1 f =(PLL f ) / (PLL Divider 1)

⑤ 配置MCU->General->McuGeneralConfiguration->General

对正常RUN、低速VLPR和高速HSRUN,这三种模式下的:CORE_CLK、SYS_CLK、BUS_CLK、FLASH_CLK等时钟进行配置,配置方法可参考④ 配置PLL时钟。

RUN

VLPR

HSRUN

⑥ 配置MCU->General->McuGeneralConfiguration->McuClockReferencePoint

扩展配置1  MCU->McuModeSettingConf

MCU默认为RUN模式,代码中也可通过Mcu_SetMode()改变MCU的运行模式,配置时需勾选Allow High Speed Run Mode和Allow Very-Low-Power Modes,可根据自身需求进行配置。

扩展配置2  MCU->McuRamSectorSettingConf

MCU调用Mcu_InitRamSection()函数,初始化RAM区域,可通过如下自行配置

3、MCU其他配置参数默认即可,有兴趣的朋友可自行去学习

4、MCU驱动配置代码生成

5、MCU测试

后续补充,时间待定。

总结

整体讲述了,基于EB软件,配置MCAL MCU驱动的学习方法和实践路线。

下节预示(工程搭建和验证测试):

1、AUTOSAR---基于EB的MCAL PORT驱动开发;

2、AUTOSAR---基于EB的MCAL DIO驱动开发;

3、基于Green hills 搭建基本工程文件;

4、基于S32 Design Studio for ARM Version 2.2搭建基本工程文件。

最近很忙,后面会不定时更新。

精彩内容

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。