• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

4、AUTOSAR MCAL入门-微控制器驱动组

武飞扬头像
Kevin的学习站
帮助1

学新通

欢迎关注公众号:Kevin的学习站,博主建立了一个车规级开发交流群,
感兴趣的朋友可以关注公众号,加个人WX:_kevin0123456789,备注:车载。

4、AUTOSAR MCAL入门-实战:微控制器驱动组

AUTOSAR MCAL专辑目录:
1、AUTOSAR EB tresos下载及安装
2、AUTOSAR-EB tresos Studio使用说明
3、MCLA简介及分组

在第三节中有介绍AUTOSARMCAL 抽象分为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简介及分组

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcffie
系列文章
更多 icon
同类精品
更多 icon
继续加载