Autosar-Mcal配置详解(免费)-MCU

3.6.1创建、配置RAM
1)配置MCU通用配置项
MCU的通用配置项可参考以下配置:
在这里插入图片描述
在这里插入图片描述
各配置项的说明如下:
Wake Up Factor Clear Isr: 是否在唤醒的中断服务函数中清除Wakeup Factor
Wake Up Factors Clear Centralised: 是否在shutdown前集中集中清除Wakeup Factor
Sw Reset Call Api: 是否要实现Reset前的用户Callout函数(MCU_RESET_CALLOUT)
Retention RAM Source Address: 目前没有用
Perform Reset Api: 是否使能复位MCU API函数
在这里插入图片描述

Loop Cnt: MCU操作某些寄存器时,需要写下多次,这次使用默认的次数就可以
Init Clock: 在MCU初始化时需要要初始化时钟
Get Ram State Api: 目前代码不支持,不要勾选
Cvm High Voltage Detect / Cvm Low Voltage Detect:
是否使能MCU内核电压检测,如果使能,当电压过高或过低时,系统会向DEM报告错误。
Copy to Section: 目前没有功能
Clmx Operation: 是否使能时钟异常检查
Clmx Monitorring Clock Accuracy: 被采样时钟的精度,以百分比填入
Clmx Sampling Clock Accuracy: 采样时钟精度,以百分比填入
MCU有个时钟异常检测模块,它使用一个采样时钟对输入时钟的上升沿进行采样16次,然后设置一个高、低门限值,当采样的结果低于或高于门限值时,向DEM报告一个错误。
RAM Mirror: 是否使能镜像写入
当使能镜像时,程序会创建另一份寄存器的备份。当写入寄存器值时,也会同时写入镜像备份。
最终程序会调用Mcu_CheckHWConsistency去检查镜像的值与寄存器的值是否一致,不一致则报错。

  1. 创建RAM配置
    在这里插入图片描述
    2)配置RAM
    在这里插入图片描述
    以F1KM R7F7016533ABG为例,它的local RAM有512K, global RAM 192K,Retention RAM 64K.
    Local RAM: local RAM就是程序平常使用的RAM,在DeepStop模式下内容会丢失。
    Global RAM:主要用于DMA的源地址和目的地址使用,在DeepStop模式下内容会丢失。
    Retention RAM与Local RAM的差别在于,在DeepStop模式下Retention RAM内容不会丢失,其他部分与Local RAM一致。
    在这里插入图片描述
    3.6.2配置MCU模块RAM
    在这里插入图片描述
    3.6.3创建、配置MCU模块Clock
    1)创建系统的所有时钟配置项
    在这里插入图片描述
    在这里插入图片描述
    2)配置CPU时钟
    查看datasheet,我们使用PLL0通过1倍分频后作为系统的主时钟,而PLL0的时钟源来自于外部的晶振24M。根据这些信息配置MCU时钟项。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3)配置PLL0频率
根据手册,PLL0OUT = PLL0CLKIN * Nr / Mr * 1/6 = 80M, 根据这些信息配置PLL0.
CPLL0OUT = PLL0CLKIN * Nr / Mr * 1/2 = 240M.
PLL0CLKIN = MainOSC(外部晶振24M)
在这里插入图片描述
在这里插入图片描述
4)配置PLL1频率
根据手册,PLL1OUT = PLL1CLKIN * Nr / Mr * 1/6 = 80M, 根据这些信息配置PLL1.
CPLL1OUT = PLL1CLKIN * Nr / Mr * 1/2 = 240M。
PLL1CLKIN = MainOSC(外部晶振24M)
在这里插入图片描述
5)配置Awo域时钟
配置ADC0时钟
ADC时钟 = MainOSC / 2 = 24M / 2 = 12M
在这里插入图片描述
配置TAUJ时钟
TAUJ时钟 = MainOSC / 1 = 24M / 1 = 24M
在这里插入图片描述
配置Wdg时钟
Wdg时钟 = Low Speed IntOsc / 128 = 240k / 128 = 1875
在这里插入图片描述
在这里插入图片描述6)配置Iso域时钟
配置ADC1时钟
ADC1时钟 = PLLCLK2 / 1 = 40M / 1 = 40M
PLLCLK2 = PPLLOUT / 2 = 80M / 2 = 40M

更多详细信息,请查看下面的文章。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/578138.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenHarmony动效示例-如何使用animateTo实现显式动画。

介绍 利用ArkUI组件不仅可以实现局部属性变化产生的属性动画,也可以实现父组件属性变化引起子组件产生过渡效果式的全局动画即显式动画。效果如图所示: 相关概念 显式动画:提供全局animateTo显式动画接口来指定有闭包代码导致的状态变化插入…

HarmonyOS 应用开发之启动/停止本地PageAbility

启动本地PageAbility PageAbility相关的能力通过featureAbility提供,启动本地Ability通过featureAbility中的startAbility接口实现。 表1 featureAbility接口说明 接口名接口描述startAbility(parameter: StartAbilityParameter)启动Ability。startAbilityForRes…

论文笔记:TALK LIKE A GRAPH: ENCODING GRAPHS FORLARGE LANGUAGE MODELS

ICLR 2024,reviewer评分 6666 1 intro 1.1 背景 当下LLM的限制 限制1:对非结构化文本的依赖 ——>模型有时会错过明显的逻辑推理或产生错误的结论限制2:LLMs本质上受到它们训练时间的限制,将“最新”信息纳入到不断变化的世…

如何保证redis里的数据都是热点数据

MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据? 1.Redis 过期删除策略 1)惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期&#xff0c…

FMEA与智能机器人:提升机器人可靠性与安全性的关键

随着科技的飞速发展,智能机器人已经深入到我们生活的方方面面,从工业生产到家庭服务,从深海探险到太空探索,处处都有它们的身影。然而,随着应用的日益广泛,机器人系统的复杂性和不确定性也在增加&#xff0…

学习笔记——C语言基本概念函数——(9)

今天开始函数的学习 目录 1、函数的基本概念 1.1函数的意义 1.2函数的分类 2自定义函数 2.1自定义函数的整个过程 函数定义 函数声明 函数调用 实参 形参和实参的关系 2.2函数传参 地址传递 2.3static的使用 1、函数的基本概念 1.1函数的意义 概念:一…

自定义协议 ,序列化和反序列化

目录 ​编辑 一,问题引入: 二,协议 三,自定义协议 1,协议 2, 序列化和反序列化 四,网络版本的计算器 1,协议的定制 2,计算逻辑 3,服务端 4,客户端 …

基于Spring Boot 3 + Spring Security6 + JWT + Redis实现接口资源鉴权

紧接上一篇文章,基于Spring Boot 3 Spring Security6 JWT Redis实现接口资源鉴权 系列文章指路👉 系列文章-基于SpringBoot3创建项目并配置常用的工具和一些常用的类 项目源码👉 /shijizhe/boot-test 文章目录 1. 修改 UserDetailsServic…

U盘文件突然消失:原因分析与恢复策略

U盘遭遇“幽灵”之手,文件不翼而飞 你是否曾遭遇过这样的诡异情况:前一天还好好存放在U盘里的文件,第二天却突然消失得无影无踪?这简直就像是一场无声的灾难,令人措手不及。U盘作为我们日常工作和生活中不可或缺的数据…

算法系列之数组里的双指针

文章目录 算法系列之数组里的双指针快慢指针代替双重循环暴力解法快慢指针法 用双指针来排序暴力解法双指针排序 算法系列之数组里的双指针 在数组和链表的算法中双指针常出现,这篇用两道题来看一下双指针在数组算法里的用处。 快慢指针代替双重循环 https://lee…

嵌入式3-29

今日作业&#xff1a;用fwrite 和 fseek功能&#xff0c;将一张bmp格式的图片更改成 德国国旗#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> typedef unsigned char bgr[3]; int main(int argc, const char *argv[])…