Spiflash使用tftp进行烧录与备份

【版权申明】转载请附上出处链接

Spiflash使用tftp进行烧录与备份

uboot下的内存操作指令:

b:	8位 
w:	16位 
l:	32位(默认值) 
mw(Memory Write),即向内存写入数据指令。
mw - memory write (fill)
Usage:
mw [.b, .w, .l] address value [count]
md(Memory Display),即从内存读出数据并显示。
md - memory display
Usage:
md [.b, .w, .l] address [# of objects]

使用sf命令操作Spiflash

# 探测并初始化Spiflash
sf probe [[bus:]cs] [hz] [mode] - init flash device on given SPI bus and chip select

# 读取flash数据到内存
sf read addr offset len              - read 'len' bytes starting at 'offset' to memory at 'addr'

# 写内存数据到flash
sf write addr offset len             - write 'len' bytes from memor at 'addr' to flash at 'offset'

# 擦除指定位置,指定长度的flash内容, 擦除后内容全1
sf erase offset [+]len                - erase 'len' bytes from 'offset' '+len' round up 'len' to block size

# erase和write操作的集合
sf update addr offset len         - erase and write 'len' bytes from memory at 'addr' to flash at 'offset'

当前flash的分区(以16M为例)

|            1M            |      3M      |     12M         |
|--------------------------|--------------|-----------------|
|          u-boot          |    kernel    |    rootfs       |

烧写部分:

# 从内存地址0x82000000开始,长度为0x100000的区域全置为1.
mw.b 0x82000000 ff 0x100000

# 使用tftp将镜像放置到0x82000000开头的内存地址处(据说需要先把该内存区域全部置为1,这是由于硬件特性所限制的,这正是我们上面所进行的操作)
tftp 0x82000000 uboot.bin/uImage.bin/rootfs.jffs2

# sf probe 0;sf erase 0 0x100000;sf write 0x82000000 0 0x100000		#它其实是三条指令的集合,拆分如下
# 探测并初始化在0号位上的Spiflash
sf probe 0
# 擦除Spiflash,从0地址处开始,长度为0x100000(长度必须是块大小的整数倍)
sf erase 0 0x100000
# 写Spiflash,将内存地址从0x82000000开始的地方,长度为0x100000的数据写入Spiflash的0地址处
sf write 0x82000000 0 0x100000

读取备份部分:

sf probe 0

# 读取Spiflash,将flash的0地址处,长度为0x100000的数据读出到内存地址0x82000000处
sf read 0x82000000 0 0x100000

# tftp上传,将内存地址0x82000000开始,长度为0x100000的区域上传至tftp服务器,名字为uboot.bin
tftp 0x82000000 uboot.bin 0x100000
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Flash_Tool(V5.1)使用方法: 1、打开升级平台Flash_Tool(V5.1)然后在Download Agent处点击选MTK_ALLnOne_DA.bin文件。 2、点击Scatter File选升级软件自带的scatMTK53_09A_GEMINI.txt文件。随后平台会自动调用BIN文件(升级文件)。 3、第三个是选串口,(具体查看设备管理器里的升级线安装在哪个COM口)。 4、注意Options选项里的Format FAT中选Do Not Format FAT,意思是不要格式化,否则会导致信号弱,改变参数。 5、数据备份设置 点击Options,点选Backup and Restore,选择Backup—Download/Format—Restore。 6、升级:点击Download后,按开机键,首先出现灰色条(备份数据)然后出现红条(初始化),出现蓝条时开始升级,升级完成后出现绿色条(格式化),格式化后出现灰色条(数据还原),最后提示OK。 7、格式化:点击Format后,按开机键,首先出现灰色条(备份数据)然后出现红条(初始化),格式化时出现绿色条,格式化后出现灰色条(数据还原),最后提示OK。 8、读取BIN文件(软件) 找一台开机正常的手机,利用这个平台可将所有MTK手机的软件读取出来,作为其他手机升级之用。 连接好升级线和手机,点击Read Back选项,双击下面的勾选项,会弹出一个窗口,意思是保存的路径。选好保存的路径后,点击Read Back键,按开机键即可读取字库中的数据。 9、Memory Test 字库测试,可查看字库的分区结构,检测字库有无坏区。 按START后,再按开机键即可测试。
外部SPIFlash烧录算法是一种用于将固件或数据写入SPIFlash存储器的算法。SPIFlash是一种常见的非易失性存储器,通常用于嵌入式系统中存储固件、配置数据或其他重要数据。 下面是一个简单的外部SPIFlash烧录算法的工作流程: 1. 初始化SPI接口:根据硬件平台的要求,初始化SPI接口以与SPIFlash进行通信。 2. 擦除SPIFlash:在写入新的固件或数据之前,需要先擦除SPIFlash的相关扇区。擦除操作是将存储区域设置为逻辑"1",以便后续可以写入新的数据。 3. 加载固件或数据:从外部源(例如计算机或其他存储设备)加载要烧录SPIFlash的固件或数据。这可能涉及将数据分割成适当的大小以适应SPIFlash存储器的特定页面大小。 4. 编程SPIFlash:将加载的固件或数据编程到SPIFlash存储器中。这通常通过按页编程的方式进行,其中每个页面的大小取决于SPIFlash芯片的规格。 5. 验证数据:在编程完成后,可以选择性地验证SPIFlash中的数据是否正确。这可以通过读取已编程页面并与原始数据进行比较来完成。 6. 完成烧录:验证通过后,烧录过程完成,SPIFlash中的数据已成功更新。 需要注意的是,外部SPIFlash烧录算法的具体实现可能会因芯片供应商、硬件平台和应用程序的要求而有所差异。因此,在实际应用中,可能需要根据特定的硬件和软件环境进行适当的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安河桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值