flash烧录器介绍
烧写器也叫烧录器、编程器。在台湾,烧写器也叫烧录器;在大陆,客户之所以叫它为“编程器”,是因为现在英文名为PROGRAMMER,这个英文名与一般编写软件程式的设计师同名,所以就叫“编程器”。
烧写器实际上是一个把可编程的集成电路写上数据的工具。烧录器主要用于单片机(含嵌入式)/存储器(含BIOS)之类的芯片的编程(或称刷写)。
烧写器在功能上可分万用型烧写器、量产型烧写器、专用型烧写器。专用型烧写器价格最低,适用芯片种类较少,适合以某一种或者某一类专用芯片编程的需要,例如仅仅需要对PIC系列编程。全功能通用型一般能够涵盖几乎(不是全部)所有当前需要编程的芯片,由于设计麻烦,成本较高,限制了销量,最终售价极高,适合需要对很多种芯片进行编程的情况。
为什么有的烧录器不需要分区信息?
一般情况下,128K的空间需要4K的空间用来存储ECC校验码等信息,也就是说32M的文件需要33M的空间,1M的空间用来存管理信息。
理论上烧录器都需要填写分区表,否则不知道该怎么写。
还有一种方式就是将OOB信息一起写入,这种只能用于flash没有任何坏块的情况。
sinlinx和V3S
芯灵思(sinlinx)是使用全志的芯片v3s制作核心板来买的。
PhoenixSuit
PhoenixSuit是一款专业的刷机工具,PhoenixSuit也叫全志固件升级工具,支持所有全志平台的固件烧写升级,支持烧写单个分区,支持各种平板电脑的刷机。如果你感觉你的安卓平板电脑系统优化不好,运行慢,经常卡顿,那么不妨利用PhoenixSuit来进行刷机换个系统。该工具功能强大、便捷实用,不仅能够刷机,而且还能提供一键备份设备中的apk文件、一键恢复之前备份的apk文件、批量安装多个apk文件、重启设备等实用功能。
也就是说phoenixSuit是和全志的芯片通信完成的USB和SD卡升级,和芯灵思没有关系。
在使用PhoenixSuit升级的时候会把flash芯片的uid读出来,然后将uid存储到flash上。
主芯片中有一段固化程序,读取系统中flash芯片的uid,和flash上存储的uid进行比较,相同则启动,不相同则不启动。
由于主芯片程序不能修改,且flash的UID也不能修改,所以只能通过USB升级工具烧录的芯片才能读出来。
在底板上加一个单片机芯片的作用是回复主芯片相同的uid,回复的uid和flash芯片上存储的相同即可。
flash烧写包需要从flash上读出全部的纯数据,不包含OOB,而我们目前的烧录器读到的数据都是包含OOB的。
从flash上读取到的数据包应该是使用flash的uid做了加密的,因为找不到明文数据包。所以我们只能拷贝所有的flash上加密后的数据,不带OOB,然后再完成flash uid校验这一步,系统就可以正常启动了。
flash芯片的Uid怎么获取?
Nandflash的UID可以通过读取Nandflash的ID号来获取,一般可以通过读取Nandflash的特定地址来获取,比如说,对于一些常见的Nandflash,可以通过读取地址0x20~0x27来获取UID,具体的读取方法可以参考Nandflash的数据手册。
sunxi_mbr.fex
该文件中保存了主引导分区信息。在uboot中可对这些信息进行修改。