
欢迎关注公众号:Kevin的学习站,博主建立了一个车规级开发交流群,
感兴趣的朋友可以关注公众号,加个人WX:_kevin0123456789,备注:车载。
目录
4、AUTOSAR MCAL入门-实战:微控制器驱动组
AUTOSAR MCAL专辑目录:
1、AUTOSAR EB tresos下载及安装
2、AUTOSAR-EB tresos Studio使用说明
3、MCLA简介及分组
在第三节中有介绍AUTOSAR 把MCAL 抽象分为4个驱动组,分别为:微控制器驱动组,存储器驱动组,通信驱动组、输入/输出驱动组。这一节将具体介绍MCAL微控制器驱动组的内容。

4.1、微控制器驱动组
微控制器驱动组主要功能是:完成MCU内核及外设的配置,包括:MCU驱动(MCU)、看门狗驱动(WDG)、通用定时器驱动(GPT)。
4.1.1、MCU驱动
MCU驱动提供微控制器初始化、断电、重启等功能,及MCAL其他驱动模块所需的特殊函数。
4.1.1.1、MCU驱动特性:
①、初始化
MCU时钟、PLL、分频器、时钟树分配;②、初始化
RAM;③、设置
MCU低功耗模块;④、设置
MCU重启模式;⑤、提供硬件复位源查询。
4.1.1.2、MCU驱动模块API使用方法
如下表,MCU驱动模块提供了如下API给上层软件组件调用:
①、Mcu_Init();
void Mcu_Init(const Mcu_ConfigType *ConfigPtr);
功能:初始化
MCU驱动模块(如 掉电配置、时钟配置、RAM配置等);参数:
const Mcu_ConfigType *;返回值:
void。
②、Mcu_InitClock()
Std_ReturnType Mcu_InitClock(Mcu_ClockType ClockSetting);
功能:初始化
PLL时钟和其他相关时钟;参数:
Mcu_ClockType;返回值:
Std_ReturnType。成功:E_OK。不成功:E_NOT_OK。
③、Mcu_GetPllStatus()
Mcu_PllStatusType Mcu_GetPllStatus(void)
功能:查询
PLL锁相状态;参数:
void;返回值:
Mcu_PllStatusType。有如下3种情况:MCU_PLL_STATUS_UNDEFINED表示PLL状态未知;MCU_PLL_LOCKED表示锁相环配置已经成功;MCU_PLL_UNLOCKED`表示锁相环配置还未成功。
④、Mcu_DistributePllClock()
void Mcu_DistributePllClock(void)
功能:使能
PLL时钟;参数:
void;返回值:
void。
⑤、Mcu_InitRamSection()
Std_ReturnType Mcu_InitRamSection(Mcu_RamSectionType RamSection)
功能:初始化
RAM,将RAM填充预设值;参数:
Mcu_RamSectionType;返回值:
Std_ReturnType。成功:E_OK。不成功:E_NOT_OK。
注:
在
MCU 驱动模块初始化过程中,API调用顺序依赖于实际应用,但Mcu_Iint函数必须在上电后首先执行,调用Mcu_GetPllStatus查询PLL锁相状态。
上电后 MCU 驱动模块初始化 API调用流程如下:

4.1.2、WDG 驱动
WDG驱动控制MCU内部看门狗定时器,提供触发功能和模式选择服务。AUTOSAR 定义了3种模式: Fast Mode(快速模式)、Slow Mode(慢速模式)、OFF Mode(关闭模式)。
4.1.3、GPT 驱动
GPT驱动初始化、控制MCU内部的通用定时器,用来产生一次性或者连续性的定时通知。GPT 驱动通常常为操作系统提供定时服务,或者 OS Alarm负担过重时为 BSW其他模块提供定时服务。
4.1.3.1、GPT 具有如下功能:
①、启动、停止硬件计时器;
②、获取硬件计时器的值;
③、控制实践触发的中断通知;
④、控制时间触发的唤醒中断(须硬件支持)。
GPT通道可以设置为连续模式(CONTINUOUS)或单次模式(ONESHOT)。
连续模式:定时器到达目标时间会自动清零并继续运行。
单次模式:定时器到达目标时间,即计数值达到设定值时,定时器会自动停止,保持计数值不变,且通道状态从“运行”变为“超时”。
4.1.3.2、GPT模块常用接口函数
①、Gpt_Init()
void Gpt_Init(const Gpt_ConfigType *configPtr)
功能:初始化
GPT驱动模块;参数:
const Gpt_ConfigType *;返回值:
void。
②、Gpt_EnableNotification()
void Gpt_EnableNotification(Gpt_ChannelType channel)
功能:使能事件通知;
参数:
Gpt_ChannelType;返回值:
void。
③、Gpt_StartTimer()
void Gpt_StartTimer(Gpt_ChannelType channel, Gpt_ValueType value)
功能:打开
GPT通道;参数:
Gpt_ChannelType、Gpt_ValueType,后者需要填入计数值,即GptChannelTickValue;返回值:
void。
欢迎关注公众号:Kevin的学习站,博主建立了一个车规级开发交流群,
感兴趣的朋友可以关注公众号,加个人WX:_kevin0123456789,备注:车载。
AUTOSAR MCAL专辑目录:
1、AUTOSAR EB tresos下载及安装
2、AUTOSAR-EB tresos Studio使用说明
3、MCLA简介及分组
3577

被折叠的 条评论
为什么被折叠?



