杰发科技AC7801——Flash模拟EEP内存(2)_备份

1. 默认配置在1000个地址存储1000个数据

配置如下

计算地址

查看地址内容,等到打印完成

计算符合,从0-999共计1000

2. 修改配置在65536地址存储65536个数据

配置还是这个

因为传进去的地址是uint16_t,因此最大值是65536,写65536个数据在65536个地址里面

写到5200左右会每7s写一个数据,读的话还是很快

按照公式计算,512*10是10页,即会写到0x14000+0x5000

然而实际上是写到0x14747就结束了,大概1863个,还不到1页

3. 问题分析

我们重启一下,看下写到哪里开始慢起来,还是5270这个地方

大概在写到3000时候暂停(直接连接atclinktool会暂停读写数据)

写到了0x17190

减去14000,共计12688个地址

一个数据占用2个字节,加一个地址位2字节。相当于写一个数据需要4个字节空间。

也就是说最多写了3172个数据。

3127个数据,写的是

确实和我们结束时候的数据一样,但是跟地址似乎对应不上

起始是因为为了区别地址和数据,在数据上加了0x99导致

我们再来一次测试,直接写4096个数据

0x99是153和数据对上了

写到了0x1098,又对上了

4. 分析,写慢的原因

因为初始化的页数过多,因此我们只初始化一页测试看看结果,初始化一页,写4097个数据

结果显示到第650左右写的数据开始变慢,大约200ms左右写一次

看到从13800开始写了数据,

2048个地址,正好是1页,并且地址是倒着写的

并且是从03e开始写,也就是从地址62开始写

测试一下正好写完一页的,512多2个数据的,发现在510写完后会变慢。

考虑到EEP在当页起始需要去掉2个数据位置,正好写完一页开始变慢。

因此,上面的分析来看,写慢的原因找到了。

5. 交换写,备份区

我们看到上面有个备份区,看下这个是什么

测试512个数据,即第二个数据应该会放在前一页

发现前一页也因为有2个字节占用,重新从14000开始写,最后一个地址蟹道乐14000当页,而14000这个地址是之前被000地址占用了

为了方便看结果,单独写了两个地址的数据。

这里把地址0也给个特定值,发现在写完之后被覆盖了

因此如果要写1024个字节地址的话,最好就多初始化一页,初始化为512*2,即使用2页

最高写到400

备份区写到402

初始化的区域写到401,地址0的6666被覆盖掉

测试一下最高能到多少不会被覆盖

我们测试2页,也就是512*2=1024个,再少一个1023应该就OK了

因为后面加了2个固定数据,因此1023-2=1021,循环写1021个,0地址没有被覆盖

实际上最后一个8888没写上

回头看上面的计算少算了一个校验位,应该是-2才对

因此改为1024-2-2=1020,参考前面的少了个8888的位置,1020肯定是对的。

看到和计算的一样,备份区没有开始写,并且数据完整。

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

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

相关文章

Nvidia主导AI推理竞赛,但新兴对手纷纷崭露头角

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

软考 -- 软件设计师 -- 二轮复习(1) -- 计算机系统基础知识错题集和重点知识(持续更新)

软考 – 软件设计师 – 二轮复习(1) – 计算机系统基础知识错题集和重点知识(持续更新) 文章目录 软考 -- 软件设计师 -- 二轮复习(1) -- 计算机系统基础知识错题集和重点知识(持续更新)前言一、CPU二、内存编址计算三、原码、反码、补码、移码计算四、浮点数 前言 考试时间&a…

给Ubuntu添加硬盘之后,该如何使用

当你给Ubuntu系统添加了新的硬盘后,你需要按照以下步骤来识别、分区、格式化和挂载新硬盘: 1. 检查新硬盘是否被系统识别 首先确认新硬盘已经被系统识别: lsblk 2. 分区新硬盘 如果硬盘没有分区或者需要重新分区,可以使用fdis…

Efficient LoFTR论文阅读(特征匹配)

Efficient LoFTR论文阅读(特征匹配) 摘要1. 引言2. 相关工作基于检测器的图像匹配无检测器图像匹配 3. 方法3.1. 局部特征提取3.2. 高效的局部特征变换3.3. 准备工作3.4. 聚合注意力机制3.5 粗级匹配模块有效推理策略子像素级细化模块有效的精细特征提取…

【vue、Electron】搭建一个Electron vue项目过程、将前端页面打包成exe 桌面应用

文章目录 前言使用 electron-vue 创建项目1. 安装 vue-cli(如果未安装)2. 使用 electron-vue 模板创建项目3. 安装和配置 electron-builder4. 运行Electron项目5. 打包应用 可能遇到的问题解决Electron vue首次启动巨慢无法加载执行npm run electron:bui…

数据结构与算法 第3天(栈和队列)

栈和队列也是线性表,限制插入和删除的位置只能在端点 栈(stack) 后进先出 LIFO 表尾进入,表尾删除 一、案例 案例一:进制转换 例子 159转换成八进制 159/819...7 19/82...3 2/80...2 结果为237 案例二:括…

Superset 连接elasticsearch

官方文档 https://superset.apache.org/docs/databases/elasticsearch/ 安装elasticsearch-dbapi库 pip install elasticsearch-dbapi 安装成功后 有账号密码填入: elasticsearchhttp://{user}:{password}{host}:9200/

SQL 注入之 sqlmap 实战

在网络安全领域,SQL 注入攻击一直是一个严重的威胁。为了检测和利用 SQL 注入漏洞,安全人员通常会使用各种工具,其中 sqlmap 是一款非常强大且广泛使用的开源 SQL 注入工具。本文将详细介绍 sqlmap 的实战用法。 一、sqlmap 简介 sqlmap 是一…

android 将新建的底部导航的demo,修改首页默认显示的字符串为helloworld。

1、先上个图,demo建好了以后,默认显示一个字符串: 2、这个demo的结构: activity_main.xml中用navGraph与其关联。 3、增加方法,给text赋值: package com.example.helloworld.ui.homeimport androidx.lifec…

Linux学习之路 -- systemV进程通信 -- 消息队列和信号量(简单介绍)

一、简介: System V进程通信(System V IPC)是一组在Unix和类Unix操作系统中用于进程间通信的机制。这些机制在System V Release 2中首次引入,并在POSIX标准中得到部分采纳。System V IPC主要包括以下几种通信方式: 消…

数据结构(三)——双向链表,循环链表,内核链表,栈和队列

双链表 产生原因:单链表只有一个指向后继的指针,如果要访问某节点的前驱结点,只能从头遍历,也就是访问后继节点的时间复杂度为1,访问前驱结点的时间复杂度为n。 而引入双链表使得在插入、删除的…

Redis_AOF持久化

AOF持久化 在AOF持久化的过程中,会以日志的方式记录每个redis“写”命令,并且redis服务器重启时重新执行AOF日志文件中的命令,从而达到“恢复数据”的效果 AOF故障恢复 当redis因发生故障而重启时,redis服务器会按照如下步骤根据…

VMware安装中标麒麟操作系统V7.0

1 说明 由于未来的工作需要,今天开始学习DM8数据库,搭建一个实验环境供学习实操使用。配置要求如下: 直接一步到位,在信创平台安装DM8数据库,这里选择了耳熟能详的中标麒麟操作系统,版本为V7.0。以前从未安…

vue手机端 搜索框调起带搜索键盘,点击确认自动关闭

效果如下图 步骤&#xff1a; 1.html,所需配置参数都在下图 <el-form :inline"true" :mode"serchFormf" class"searchForm" action"javascript:return true;"><el-form-item label"" ><el-inputsize"…

【linux002】目录操作命令篇 - ls 命令

文章目录 1、基本用法2、常见选项3、举例演示4、注意事项 ls 命令在 Linux 中用于列出目录内容。它有许多选项和参数可以用来调整显示的格式和内容。 1、基本用法 ls [选项] [文件或目录]2、常见选项 -a 或 --all&#xff1a;显示所有文件&#xff0c;包括以点.开头的隐藏文件…

java 切面日志打印出参入参

切面Controller出入参日志打印 项目结构 切面日志对controller下所有的方法生效 切面代码 Slf4j Aspect Component public class ControllerLogAspect {// 定义一个切点&#xff0c;拦截所有Controller层的public方法Before("execution(public * com.jzt.market.cont…

进程和线程(操作系统八股文part2)

一个操作系统的进程和线程部分的笔记&#xff0c;大部分来源于&#xff1a;小林coding和Javaguide&#xff0c;以及操作系统黑书。 进程和线程 什么是进程 运行中的程序叫进程**&#xff08;Process&#xff09;**。 进程是资源分配的最小单位&#xff0c;线程是执行的最小…

【QT】学习笔记:枚举桌面窗口句柄

在 Qt 中&#xff0c;虽然 Qt 本身没有直接提供枚举桌面窗口的 API&#xff0c;但可以通过调用 Windows API 来实现枚举桌面上所有窗口的句柄&#xff0c;包括子窗口以及子窗口与父窗口的关系。我们可以使用 Windows 的 EnumWindows 和 EnumChildWindows 函数来枚举所有顶层窗口…

K8S声明式的管理方式

一、K8S声明式的管理方式&#xff1a; 1、适合对资源的修改操作 2、声明式管理依赖于yaml文件&#xff0c;所有的内容都在yaml文件中声明 3、编辑好的yml文件还是要靠陈述式命令发布到K8S集群中 二、K8S中支持三种声明式的资源管理方式&#xff1a; 1、deployment格式&…

【YOLO系列】YOLO算法改进史

目录 前言YOLOv1YOLOv2YOLOv3YOLOv4YOLOv5YOLOv6YOLOv7YOLOv8YOLOv9YOLOv10对比待更新 前言 YOLO&#xff08;You Only Look Once&#xff09;是一种革命性的目标检测算法&#xff0c;以其快速和高效的性能而闻名。自2015年YOLOv1的首次推出以来&#xff0c;YOLO系列已经经历了…