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

news2024/11/15 11:56:55

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.coloradmin.cn/o/2076771.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mp总结 mybatisPlus

一、准备 1.引入依赖&#xff08;引入后可以不再引mybatis依赖&#xff09; <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version> </dependency> 2.…

Leetcode JAVA刷刷站(95)不同的二叉搜索数 ||

一、题目概述 二、思路方向 为了生成所有由 n 个节点&#xff08;值从 1 到 n&#xff09;组成的不同二叉搜索树&#xff08;BST&#xff09;&#xff0c;我们可以采用递归的方式。核心思想在于&#xff0c;对于每个数字 i&#xff08;从 1 到 n&#xff09;&#xff0c;我们可…

【C语言报错已解决】 `Buffer Overflow`

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引言一、问题描述&#x1f469;‍&#x1f52c;报错示例&#x1f4da;报错分析&#x1f4da;解决思路 二、解决方法&a…

麒麟V10(x86_64)安装部署MySQL-5.1.70

麒麟V10(x86_64)安装部署MySQL-5.1.70 1. 主机信息 [kalamikysrv1 ~]$ uname -a Linux kysrv1 4.19.90-24.4.v2101.ky10.x86_64 #1 SMP Mon May 24 12:14:55 CST 2021 x86_64 x86_64 x86_64 GNU/Linux [kalamikysrv1 ~]$ [kalamikysrv1 ~]$ uname -m x86_64 [kalamikysrv1 ~…

深度学习模板方法设计模式

文章目录 前言一、介绍二、特点三、详细介绍1.核心组成2.代码示例3.优缺点优点缺点 4.使用场景 总结 前言 模板方法设计模式是行为型设计模式&#xff0c;主要是定义算法框架&#xff0c;并将一些步骤的实现延迟到子类&#xff0c;重新定义算法的步骤。 一、介绍 模板设计模式…

项目初始化踩坑记录

dependence not found: D:/yupiProject/yubi-bi-frontend/node_modules/umijs/plugins/node_modules/react-intl 这个没有在github上找到解决方法&#xff0c;于是我在命令行 npm install 执行这个之后&#xff0c;就可以重新运行了 思考过程&#xff1a;突然空了个文件我…

开放式耳机是什么意思?开放式耳机推荐

在探讨音频设备的广阔领域中&#xff0c;开放式耳机以其独特的设计理念和卓越的性能体验&#xff0c;逐渐成为耳机市场上一股不可忽视的力量。顾名思义&#xff0c;开放式耳机是一种采用开放式设计&#xff0c;不堵塞或覆盖耳朵&#xff0c;允许佩戴者同时听到部分外部声音的耳…

Unity滚滚车轮计划 之 新输入系统控制2D角色移动动画(俯视)

本系列的初衷是因为很多时候基础代码不得不重复又重复&#xff0c;所以为了更快更好地学习到新的知识&#xff0c;我就把已经掌握的知识造成自己的轮子吧&#xff0c;等用到的时候直接复制就行了 叠甲&#xff1a;虽然不能保证全是原创&#xff0c;有些写法可能烂大街&#xff…

arm64--内嵌汇编

内嵌汇编代码基本用法 1.作用&#xff1a;对于特定重要和时间敏感的代码进行优化&#xff0c;同时在C语言中访问某些特殊指令&#xff08;例如内存屏障指令&#xff09;来实现特殊功能 2.内嵌汇编代码主要有两种形式 基础内嵌汇编代码&#xff1a;不带任何参数 扩展内嵌汇…

【ES6新特性】介绍ES6新特性的内容,如var,Let,Const声明变量的区别,解构赋值的概念,字符串的扩展,数组的扩展,以及对象的扩展。

目录 1.var&#xff0c;let&#xff0c;const的区别 1.1 var 1.2 let 1.3 const 1.4 区别总结 2.解构赋值 2.1 基本解构化赋值 2.2 数组取值 2.3 对象解构化赋值和取值 2.4 Math对象的解构化使用 3. 字符串扩展 3.1 新增字符串遍历方式 3.2 模版字符串 3.3 字符串…

数据库学习笔记

一、数据库相关概念 主流的关系型数据库管理系统&#xff08;DBMS&#xff09; 关系型数据库以 表格 的形式存在&#xff0c;以 行和列 的形式存取数据&#xff0c;关系型数据库这一系列的行和列被称为表&#xff0c;无数张表组成了 数据库 &#xff0c;常见的关系型数据库有 …

绿色积分引领:我店平台的可持续消费革命

在当今数字化浪潮的推动下&#xff0c;“我店”凭借其创新的环保积分系统&#xff0c;在消费市场中脱颖而出&#xff0c;逐渐改变着市场的结构。本文将详细分析该平台的竞争优势、市场策略以及它如何利用创新手段塑造未来的消费趋势。 一、环保积分&#xff1a;消费体验革新的关…

在ElementUI项目中集成iconfont图标库

在前端项目开发中经常会遇到使用的组件库提供的ICON图标不够用的情况。最常见的解决方案无非就是把设计图的图标切图引入到项目中。还有就是使用svg图标&#xff0c;封装一个渲染组件在项目里面直接引入这个组件。 本文将介绍另一种方法&#xff0c;即集成iconfont图标库的图标…

redis面试(二十二)读锁释放

假设现在已经有各种锁的重入什么的&#xff0c;那如何释放锁&#xff1f; 读锁读锁 假如说&#xff0c;同一个线程多次加读锁&#xff0c;或者不同的线程加了多个读锁 当前的锁结构长这样 anyLock: { “mode”: “read”, “UUID_01:threadId_01”: 2, “UUID_02:threadId_02…

CRUD的最佳实践,联动前后端,包含微信小程序,API,HTML等(二)

CRUD老生常谈&#xff0c;但是我搜索了一圈&#xff0c;发觉几乎是着重在后端&#xff0c;也就是API部分&#xff01; 无外乎2个思路 1.归总的接口&#xff0c;比如一个接口&#xff0c;实现不同表的CRUD 2.基于各自的表&#xff0c;使用代码生成器实现CRUD 个人来说是推荐2&am…

css设置input单选radio多选checkbox样式

最近接手一个古老的项目&#xff0c;要修改里边的主题颜色&#xff0c;使用css的var方法一路轻松&#xff0c;最后在input的单选radio和多选checkbox被踩了刹车&#xff0c;也是有几年没做这种原始的项目手生了&#xff0c;最后经过几番折腾后&#xff0c;通过input的伪元素将其…

FPGA开发——使用verilog实现异步FIFO

一、FIFO 介绍 1、FIFO的分类 FIFO &#xff08; First In First Out&#xff09;先进先出存储器。根据接入的时钟信号&#xff0c;可以分为同步 FIFO 和异步 FIFO 。 FIFO 底层是基于双口 RAM &#xff0c;同步 FIFO 的读写时钟一致&#xff0c;异步 FIFO 读时钟和…

一看就会的Mysql 集群技术

目录 一、Mysql介绍 1.1什么是MySQL 1.2MySQL的优势 1.3MySQL的常用语句 二、MySQL源码安装 三、实验练习 3.1MySQL部署 实验环境 实验步骤 1.创建用户&#xff0c;数据目录&#xff0c;更改权限 2.修改文件 3.初始化&#xff0c;会生成一个密码&#xff0c;将其保…

没有人会窃取你的想法,关键在于执行

没有人会窃取你的想法&#xff0c;关键在于执行 引言 当我第一次读到 Pieter Levels 的创业故事时&#xff0c;我感到无比激动和鼓舞。那种看到未来无限可能的感觉&#xff0c;让我充满了希望与奋斗的力量。他的经历不仅让我明白了创意的价值&#xff0c;更重要的是让我深刻感…

内网穿透的几种方法

内网穿透的几种方法 随着网络技术和应用的不断发展&#xff0c;越来越多的企业和个人需要实现内外网之间的数据交互和服务访问。然而&#xff0c;由于防火墙、NAT&#xff08;网络地址转换&#xff09;等安全措施的存在&#xff0c;直接从外部访问内部网络中的服务器或设备变得…