Autosar模块介绍:Memory_6(FLS-闪存驱动)

上一篇 | 返回主目录 | 下一篇

Autosar模块介绍:Memory_6(FLS-闪存驱动

  • 1 基本术语解释
  • 2 Fls组成结构图
  • 3 Fls基本操作
    • 3.1 通用规则说明
    • 3.2 加载、执行和删除flash访问代码
  • 4 Fls常用操作时序
    • 4.1 初始化
    • 4.2 同步操作函数
    • 4.3 异步操作函数
    • 4.4 取消正在执行的操作

1 基本术语解释

编号缩写原文解释
1Flash sectorEEPROM Abstraction闪存扇区是一次就可以擦除的最小的闪存量。闪存扇区的大小取决于闪存技术,因此也取决于硬件
2Flash page——闪存页面是一次可以编程的最小数量的闪存。闪存页面的大小取决于闪存技术,因此也取决于硬件
3Flash access code——闪存页面是一次可以编程的最小数量的闪存。闪存页面的大小取决于闪存技术,因此也取决于硬件

2 Fls组成结构图

3 Fls基本操作

3.1 通用规则说明

  • FLS模块应为闪存操作提供异步服务(读/擦写)
  • FLS模块不缓冲数据,FLS模块应使用通过API传递的指针所引用的应用程序数据缓冲区
  • FLS模块不能保证给定应用程序缓冲区的数据一致性 4、FLS模块应静态检查静态配置参数(最迟在编译时)是否正确
  • FLS模块应验证FLS模块头和源文件中的版本信息,以确保其一致性(例如,通过将模块头和源文件中的版本信息与预处理器宏进行比较
  • FLS模块应将所有可用的闪存区域组合成一个线性地址空间(由参数基本地址和总大小表示)
  • FLS模块应根据闪存区域的物理结构,将读、写、擦除和比较功能的地址和长度参数作为“虚拟”地址与物理地址进行比较

3.2 加载、执行和删除flash访问代码

技术背景信息: Flash技术或闪存分割可能要求访问Flash硬件的例程(内部擦除和写例程)从RAM执行,因为在编程Flash时不允许读取Flash——为代码执行所需的指令获取

  • FLS模块的实现者应将闪存访问例程的代码放入一个单独的c模块Fls_ac.c中
  • FLS模块的闪存访问例程只能禁用中断,并在必要时等待擦除/写命令的完成(也就是说,如果必须确保同时没有执行其他代码
  • FLS模块的实现者应尽可能短地保持闪存访问代码的执行时间
  • FLS模块的擦除例程应将闪存访问代码加载到FLS模块配置为加载启动时的闪存功能指针指向的闪存到RAM中的位置
  • FLS模块的写入例程应将闪存写入代码加载到FLS模块配置为闪存配置中包含的写入功能指针指向的RAM的位置
  • FLS模块的主要处理程序应执行闪存访问代码程序
  • FLS模块的主要处理例程应通过FLS模块的配置集(编译后参数)来访问闪存访问代码例程,无论闪存访问代码例程是否已加载到RAM中,或者是否可以直接从(flash)ROM执行
  • 在擦除或写作业完成或取消后,FLS模块的主处理程序应从RAM卸载(即覆盖)闪存访问代码(内部擦除/写程序),如果它们已被flash驱动程序加载到RAM
  • 只有当FLS模块无法在闪存ROM中执行访问代码时,FLS模块才能将访问代码加载到RAM

4 Fls常用操作时序

4.1 初始化

4.2 同步操作函数

4.3 异步操作函数

4.4 取消正在执行的操作

上一篇 | 返回主目录 | 下一篇

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter 性能 —— 负载阶梯场景!

1、安装阶梯测试的第三方插件->搜jpgc 选项-JMeter Plugins Manager -搜jpgc 空格,然后安装 2、脚本-线程组选jpgc Stepping Thread Group 最终并发数为100,并发数从0开始,5秒内增加10个并发数,增加10个后持续30s,…

第二章:main 方法

系列文章目录 文章目录 系列文章目录前言一、main 方法总结 前言 main方法详解。 一、main 方法 //main方法的形式 public static void main(String[] args){}解释main方法main方法被虚拟机调用Java虚拟机需要调用类的main()方法,所以该方法的访问权限必须是publi…

HRNet关键点检测

HRNet是一种用于关键点检测的网络架构,它具有一些优点和缺点。 优点: 可以保持高分辨率:HRNet将高分辨率到低分辨率的子网并联连接,而不是像大多数现有解决方案那样串联连接。因此,HRNet能够保持高分辨率&#xff0c…

EEG重参考原理及python代码实现

这里主要想记录和分享的是:如果采集EEG时,使用的是部分导联,并且采集的时候使用右侧乳突作为参考电极,那么在预处理阶段,我们该如何对EEG信号进行重参考呢?使用不同重参考方法,结果是否一致&…

Vue3 + Three.js + gltf-pipeline大型园区场景渲染与3D业务

在非使用unity作为3D渲染方案的前提下,对与目前web开发者比较友好的除了canvas场景需要的2D babylon.js,fabric.js, Three.js是目前针对于jsWeb用户最直接且比较友好的3D引擎方案了。 准备工作: 1.明确需要用的场景方案都有那些,模…

mindspore mindyolo目标检测华为昇腾上推理使用

参考: https://github.com/mindspore-lab/mindyolo 使用案例: https://github.com/mindspore-lab/mindyolo/blob/master/GETTING_STARTED.md 安装: pip install mindyolo特别注意opencv-python、opencv-python-headless版本问题&#xff0…

Redis安装、配置

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

算法的复杂性

通常情况下,一个问题可能对应有多种解决方案,每种解决方案都是一种算法。因此,我们可能经常需要做一件事:从众多算法中挑选出一个最好的算法。所谓“最好”的算法,即最适合当前场景使用的算法。 不同的应用场景&#x…

springboot整合SSE技术开发经验总结及心得

springboot整合SSE技术开发经验总结及心得 一、开发背景二、快速了解SSE1、概念2、特性 三、开发思路四、代码演示1、引入依赖2、服务端代码3、后端定时任务代码 4、解决乱码的实体类4、前端代码 五、核心代码分析 一、开发背景 公司需要开发一个大屏界面,大屏页面…

使用内网穿透实现U8用友ERP本地部署与异地访问

文章目录 前言1. 服务器本机安装U8并调试设置2. 用友U8借助cpolar实现企业远程办公2.1 在被控端电脑上,点击开始菜单栏,打开设置——系统2.2 找到远程桌面2.3 启用远程桌面 3. 安装cpolar内网穿透3.1 注册cpolar账号3.2 下载cpolar客户端 4. 获取远程桌面…

【C++笔记】AVL树的模拟实现

【C笔记】AVL树的模拟实现 一、AVL树的概念二、AVL树的模拟实现2.1、定义节点2.2、插入2.3、旋转2.3.1、左单旋2.3.2、右单旋2.3.3、左右双旋2.3.4、右左双旋2.3.5、插入接口的整体代码实现 三、验证AVL树3.1、验证 一、AVL树的概念 二叉搜索树虽然在一般情况下可以提高查找的…

生成式AI以及当前趋势

ChatGPT 激发了人们的想象力和好奇心。自 2022 年 11 月推出后,短短两个月内其月活用户便达到 1 亿,成为有史以来增长速度最快的消费类应用和第一个杀手级的生成式 AI 应用。随着创新节奏的加快,想要紧跟生成式 AI 的发展速度,难度…

web前端-Gulp入门

web前端-Gulp入门 gulp的概述使用gulp准备工作gulp的常用APIgulp的常用插件gulpfile.js的初体验打包css文件打包scss文件打包js打包html打包images创建一个默认任务创建一个删除任务gulp启动服务创建一个监控任务 gulp的概述 gulp: 前端自动化打包固件工具&#xf…

Ansible playbook详解

playbook是ansible用于配置,部署,和被管理被控节点的剧本 playbook常用的YMAL格式:(文件名称以 .yml结尾) 1、文件的第一行应该以 "---" (三个连字符)开始,表明YMAL文件的开始。    2、在同一…

IIC子系统测温湿度

采用stm32MP157AAA芯片,温度传感器 si7006 0x40 1、在内核空间不支持浮点数进行打印,所以需要将读取到的数据拷贝到用户空间,执行用户程序打印 2、在probe函数中 分步注册字符设备驱动自动创建设备节点 3、在i2c驱动代码中,需要自…

通用的链栈实现(C++)

template<class T> class MyStack//链栈 { private:struct StackNode{T data;StackNode* next;StackNode(const T& val T(), StackNode* p nullptr) :data(val), next(p) {}//};StackNode* top;int cursize;void clone(const MyStack& s){Clear();cursize s.c…

cgo与调用c的回调函数指针

cgo直接调用函数&#xff0c;使用基本数据类型非常简单&#xff0c;包括一些结构体也比较简单&#xff0c;嵌套的稍微复杂些&#xff0c;但也可以&#xff0c;但有的时候&#xff0c;cgo调用c函数&#xff0c;会需要传递一个回调函数的指针&#xff0c;这时候就比较复杂了&…

office365 outlook邮件无法删除

是否遇到过&#xff0c;office365邮件存储满了&#xff0c;删除邮件无法删除&#xff0c;即便用web方式登录到outlook&#xff0c;删除邮件当时是成功的&#xff0c;但一会儿就回滚回来了&#xff0c;已删除的邮件&#xff0c;你想清空&#xff0c;最后清理后还是回到原样。 请…

YTM32的循环冗余校验CRC外设模块详解

YTM32的循环冗余校验CRC外设模块详解 文章目录 YTM32的循环冗余校验CRC外设模块详解引言原理与机制CRC算法简介从CRC算法到CRC硬件外设 应用要点&#xff08;软件&#xff09;CRC16 用例CRC32 用例 总结参考文献 引言 在串行通信帧中&#xff0c;为了保证数据在传输过程中的完…

基于Python优化图片亮度与噪点

支持添加噪点类型包括&#xff1a;添加高斯噪点、添加椒盐噪点、添加波动噪点、添加泊松噪点、添加周期性噪点、添加斑点噪点、添加相位噪点&#xff0c;还提供清除噪点的功能。 我们先看一下实测效果&#xff1a;&#xff08;test.jpg为原图&#xff0c;new.jpg为添加后的图片…