MCAL MCU Module详解和配置说明
Posted 嵌入式软件实战派
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MCAL MCU Module详解和配置说明相关的知识,希望对你有一定的参考价值。
关注“嵌入式软件实战派”回复“AUTOSAR”获得更多实战教程。
以下内容包含:基本概念、模块依赖、应用时序、参数配置实践讲解,以及ECUM对其引用等。
1. 基本概念
描述了MCU(Microcontroller Unit) 驱动程序的功能和 API。 MCU 驱动程序为其他 MCAL 软件模块所需的基本微控制器初始化、断电功能、复位和微控制器特定功能提供服务。除了启动代码(见下图)之外,初始化服务还允许灵活的和应用程序相关的 MCU 初始化。启动代码非常特定于 MCU。本文档中提供的启动代码描述用于指导在标准化 MCU 初始化能够启动之前必须考虑的功能。
MCU 驱动程序直接访问微控制器硬件,位于微控制器抽象层 (MCAL) 中。
MCU驱动的功能特点:
-
MCU 时钟、PLL、时钟预分频器和 MCU 时钟分配的初始化
-
RAM 部分的初始化
-
进入MCU低功耗模式
-
触发MCU复位
-
提供从硬件获取复位原因的服务
2. 模块依赖
MCU模块有个依赖,即start-up code
在MCU驱动程序可以初始化之前,必须执行一个基本的MCU初始化。这个MCU特定的初始化通常在start-up code中执行。
上电和任何类型的MCU复位后,都要执行MCU的启动代码。它启动初始化,并应保持简短,也应涵盖MCU特定的初始化,不包含其他MCU服务或其他MCAL驱动程序的一部分。下面的描述总结了start-up code中包含的基本功能要求:
-
初始化interrupt和 trap vector tables的基地址;
-
初始化interrupt stack pointer(如果MCU支持);
-
初始化user stack pointer;
-
初始化context save operation用的Memory(如果MCU支持context save operation);
-
在初始化MCAL watchdog之前,保证MCU内部watchdog不要被触发,这个可以通过增加watchdog时间来做;
-
初始化并使能data/code cache memory(如果MCU支持cache memory);
-
初始化MCU内部关于内部memory的特定功能,例如memory protection;
-
如果用了External Memory,也要对其做初始化,并且还要做好区域划分;
-
不同的Memory划分配置,需要以参数的形式提供给start-up code;
-
需要默认初始化时钟,并包括全局时钟分频器;
-
需要使能特殊功能寄存器(SFR's)的保护机制(如果MCU支持);
-
初始化一次写入的寄存器或者多Driver公用的一次写入寄存器,而不是多次重复写入;
-
初始化最小量的RAM以供Driver service使用。
3. 应用时序
1)初始化
对MCU模块的一系列初始化动作。
2)唤醒
在睡眠之前,先调用Mcu_SetMode,然后在睡眠状态被唤醒,可以获得Wake-up Reason。
3)复位原因
通过调用Mcu_GetResetReason或Mcu_GetResetRawValue可以获得复位原因。
4)执行复位
这个比较简单,调用Mcu_PerformReset函数可以让MCU复位
4. 参数配置
MCU模块表面上用到的功能不多,但是配置并不简单,特别是时钟配置,需要熟悉MCU内部时钟参数和要求。
(剩下的内容请关注“嵌入式软件实战派”公众号继续阅读)
关注公众号号“嵌入式软件实战派”,获得更多关于AUTOSAR相关的内容。
在公众号对话框回复“AUTOSAR”可获得整个实战教程。
>>>猜你喜欢
以上是关于MCAL MCU Module详解和配置说明的主要内容,如果未能解决你的问题,请参考以下文章
基于EB工具的TC3xx_MCAL配置开发06_PWM模块配置
webpack2的配置属性说明entry,output,state,plugins,node,module,context