DIY编程器网

标题: 编程器读出的备用区怎么处理 [打印本页]

作者: chang909    时间: 2024-5-25 09:26
标题: 编程器读出的备用区怎么处理
本帖最后由 chang909 于 2024-5-27 19:00 编辑

请教下高手编程器读出的备用区怎么处理?备份固件时需要把备用区读出来吗?编辑固件时需要把备用区留着吗?备用区占用偏移量吗?备用区是谁创建的(烧录时自动创建的吗?还是固件自带的)?   关键是影响了后面文件的偏移量

1.jpg (36.91 KB, 下载次数: 47)

1.jpg

2.jpg (31.58 KB, 下载次数: 41)

2.jpg

3.jpg (96.51 KB, 下载次数: 44)

3.jpg

作者: maithon    时间: 2024-5-27 15:48
flash么?什么型号的存储器?
作者: maithon    时间: 2024-5-27 15:52
空白区域吧,一般要全部读出保存,不过有的编程器软件只要有效数据就行,后端的空白区会自动补齐。前端的必须读出保存。。
作者: liyf    时间: 2024-5-28 06:41
你还是告知芯片型号吧
flash或者eeprom之类存储器一般数据存储都是连续的,要是出现otp数据区和通用存储数据地址一般都不在一起的,所以这类读出该是分开保存,但是有些编程器会把它串在一起可能出现地址跳跃,这部分地址间保存的数据往往填00或者ff
而这样保持的数据格式文件,你只能用于专用的这个编程器,换其他编程器可能出现加载数据写芯片出错
要是单片机类,这种情况就非常常见了,往往他们内部的flash可能都是数据块式保存,中间不连续的地址都会做默认数据填充,如00或ff,在写入时会自动跳过这部分数据,而这个是芯片厂家的共识,所以保存的数据大家通用
出现数据不连续时对于保存的文件,如hex,对于hex来说就简单了,可以很好的实现数据不连续段的保存,大家看到有些hex文件内容出现地址跳跃,但是编程器软件加载这类hex时都会自动补齐跳过的地址段数据(补充00或者ff),这个主要是hex文件加载到内存后都是二进制的连续数据。或者你转成bin文件也会是一样的。这样操作的结果都不会出现实际数据的地址偏移的。
作者: chang909    时间: 2024-5-28 09:34
W29N01HVSINA
作者: liyf    时间: 2024-5-28 11:23
chang909 发表于 2024-5-28 09:34
W29N01HVSINA

你知道nand的备用区干嘛用的没
正常备份固件是不会读取备用区数据的,只有正常区块坏了才会使用备用区替代,但是对于外部读出固件也不用管的,自动定位过去的,所以不会出现你说的情况的
除非你是整个芯片数据备份,但是这个是所有数据区都读取的,不管好坏,但是这个取决于芯片实际位数,他不管文件不文件的,也不会影响什么文件偏移量
所以你要明白这些
前一种就像硬盘拷贝文件一样,按文件分配表读取,后一种就像物理克隆,一比一镜像,都不存在什么偏移只说,但是你把第一种备份的数据按第二种形式写芯片,那就肯定了
你知道为什么了没

作者: liyf    时间: 2024-5-28 11:45
还有种情况就是你按一比一镜像,但是你写新芯片时选择了跳过坏块操作,那么也会出现目标芯片存的数据发生偏移,这就是为什么nand芯片复制后不一定100%能用的原因,因为nand芯片生产工艺问题导致一定概率出现坏块
要想解决这个问题,要吗用没有坏块的a级芯片
要吗按芯片的文件保存位置表读写,针对每个芯片写入时的具体保存位置修正,这个基本就是用主控芯片的刷机工具实现,现在好像还没有这种编程器
作者: zj53523094    时间: 2024-5-28 16:43
liyf 发表于 2024-5-28 06:41
你还是告知芯片型号吧
flash或者eeprom之类存储器一般数据存储都是连续的,要是出现otp数据区和通用存储数 ...

感谢大佬专业科普教学
作者: chang909    时间: 2024-5-28 19:46
liyf 发表于 2024-5-28 11:45
还有种情况就是你按一比一镜像,但是你写新芯片时选择了跳过坏块操作,那么也会出现目标芯片存的数据发生偏 ...

感谢专家的的解答,明白了。




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2