4、AUTOSAR MCAL入门-微控制器驱动组
欢迎关注公众号: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简介及分组
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgcffie
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01