AUTOSAR系列教程合集
策略
整体将采用自底向上的方式进行讲解,开发路线可能会做略微调整。
开发路线
工程搭建--->BSW(MCAL--->通信协议栈(CAN/LIN))--->SWC--->代码集成--->测试。
开发风格
追求:干扰最小化,极简且正确。
目标
建成一套高质量的开发参考文档。
1、基于EB的MCAL---MCU驱动开发手册
版本记录
AUTOSAR系列教程合集项目 | |||||
---|---|---|---|---|---|
版本 | 编写日期 | 发布日期 | 作者 | 批准 | 描述 |
V0.1 | 2023.11.01 | 2023.11.12 | 心迹难寻 | 心迹难寻 | 初稿 |
V0.2 | 2023.11.15 | - | 心迹难寻 | 心迹难寻 | 修正错误单词 |
前置条件
-
声明
本教程仅供学习参考使用,请勿用于商业用途或二次创作,内容创作使用的软件,皆为试用版本或免费版本,如还有内容可能涉及侵权的,请告知,很抱歉、我会第一时间删除,谢谢理解!
未经本人书面允许,禁止使用本模板及内容!
-
必备知识点/技能
一问三连:
①、MCU驱动的功能有哪些?
②、具备独立申请账号,寻求技术支持的能力?
③?
-
开发工具
工具名称 版本 用途/描述 EB Troses Studio 24.0.1 配置MCAL S32K14X_MCAL_4.2_RTM_1.0.3 1.0.3 MCAL驱动包 NXP S32K146 - 硬件载体
外部晶振:20Mhz
-
参考文档
序号 文件名称 路径 1 AUTOSAR_MCAL_MCU_IM.pdf C:\NXP\AUTOSAR\S32K14X_MCAL4_2_RTM_1_0_3\
eclipse\plugins\Mcu_TS_T40D2M10I3R0\doc
2 AUTOSAR_MCAL_MCU_UM.pdf C:\NXP\AUTOSAR\S32K14X_MCAL4_2_RTM_1_0_3\
eclipse\plugins\Mcu_TS_T40D2M10I3R0\doc
-
缩写与全称
缩写 全称 AUTOSAR Automotive Open System Architecture PLL Phase Locked Loop PMC Power Management Controller 前言
此文档简述了,基于EB Tresos软件配置MCAL--- MCU驱动模块的方法。
受众:主要面向,从事嵌入式汽车电子开发方向的工程师,和有基础的嵌入式开发人员。
目的:让用户快速上手开发MCU驱动。
一、MCU介绍与配置使用方法
层级关系
主要功能
初始化时钟,提供时钟参考。
主要接口函数
序号 函数名称 描述 1 Mcu_Init() - 2 Mcu_InitClock() - 3 Mcu_GetPllStatus() 获取锁相环PLL状态 4 Mcu_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搭建基本工程文件。
最近很忙,后面会不定时更新。
-
-
-
-
还没有评论,来说两句吧...