在无法用网线连接路由器刷机时手动组装编程器固件的方法

在无法用网线连接路由器刷机时手动组装编程器固件的方法:
breed 分配128k,不够的用0补(并不是一定要128k,有的固件是从0x50000启动的,这时候就得分配320k,breed可以自动识别)
sysupgrade.bin 从第0x20000(128k)到flash容量-64k处,不够的用0或0xff都行(我用的0xff)
art.bin 在flash的最后64k

之前刷的固件在0x20000就能启动,刷了一个其它型号的固件无法启动了,用串口救砖方法:
0x9f000000 flash的起始地址
启动地址 0x9f000000+0x20000 = 0x9f020000

在breed中用 boot mem 0x9f020000 强行启动,发现
0x000000000000-0x000000040000 : “u-boot”
0x000000040000-0x000000050000 : “u-boot-env”
0x000000050000-0x0000002d0000 : “rootfs”
0x0000002d0000-0x0000003b0000 : “uImage”
0x0000003b0000-0x0000003d0000 : “cfg”
0x0000003d0000-0x0000003e0000 : “oem”
0x0000003e0000-0x0000003f0000 : “mfg”
0x0000003f0000-0x000000400000 : “eeprom”
u-boot的结束地址应该在0x50000,因此需要将固件移动到0x50000

flash [bank ] read - Read flash contents to memory
flash [bank ] erase - Erase flash sector(s)
flash [bank ] write - Write data to flash

16M flash容量 - art分区大小 - 0x20000的uboot分区
(1024102416-65536-0x20000).toString(16) = 0xfd0000

0x80000000 可以放东西的内存地址
在breed中用命令把固件读进内存
flash read 0x20000 0x80000000 0xfd0000

擦除分区(不确定这一步是不是必需的)
flash erase 0x20000 0xfd0000

写入固件(0xfd0000-(0x50000-0x20000))=0xfa0000
flash write 0x50000 0x80000000 0xfa0000

重启路由器就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值