MT7628指定分区备份固件

        为了避免升级过程突然断电,或者其他不良操作导致的路由器“变砖”。在MT7628使用过程中,我们可以对固件进行备份。

        MT7628原厂SDK有关于双备份的选项,选择对应选项后,可对固件进行备份。下面以SKYLAB的SKW92A模组为例进行测试说明:

1.编译时,选择Dual Image

使用过程中,由于Uboot+Firmware的大小一般超过4MByte,对应flash选用8MByte空间。要备份Firmware部分,而Flash的大小一般是倍数增加,因此选择16MByte的Flash。如下:

如上选择后,打包的uboot.bin文件运行后,对应的如下,后面8Mbyte用来备份Firmware。对应分区划分如下:

0x000000000000-0x000000030000 : "Bootloader"
0x000000030000-0x000000040000 : "Config"
0x000000040000-0x000000050000 : "Factory"
0x000000050000-0x000000800000 : "Kernel"
0x000000800000-0x000001000000 : 备份固件

这种情况适用于固件损坏恢复到原固件的场景。

Uboot源码做了一些变量的检测比较,在实际应用中,我们发现次变量并没有用处,反而造成OK的应用固件被备份固件覆盖,因此去掉了这部分的代码,如下所示:

文件:./lib_mips/board.c,在board.c文件中,我们可以修改固件备份的判断逻辑,这里主要会根据划分的地址计算对应的CRC值,若是各分区的CRC计算正确,可以判断固件没有损坏。若是想在升级后,让备份分区的内容同步为升级后的固件也可以在此文件做修改。

1.1测试

初次启动时,back分区没有数据,启动时检测失败,此时应用分区的固件会被拷贝到back分区如下:

再次启动时,不在需要备份,检测通过后,直接运行:

但是当用户应用过程中,固件大于8Mbyte又想做备份功能时,这个方法将不能使用。因此,我们需要修改Uboot源码,将备份分区划分更小的空间。下面的示例中,我们将Flash最后的4Mbyte分区划分为Back分区,用于应用固件损害时,通过备份固件使得模组可访问,达到恢复的目的。

2.修改备份分区的大小

分区划分如下:需要说明,Back分区的固件和应用固件此时是不相同的。应用固件可以超过8Mbyte,Back固件不能超过4Mbyte。

对应地址如下:

0x000000000000-0x000000030000 : "Bootloader"
0x000000030000-0x000000040000 : "Config"
0x000000040000-0x000000050000 : "Factory"
0x000000050000-0x000000C00000 : "Kernel"
0x000000c00000-0x000001000000 : 备份固件

修改内容如下:由于SKW92A对应主芯片为MT7628,因此修改时,需要注意型号。

路径:./include/configs/rt2880.h,在此文件中我们主要修改地址,后面检测时,根据地址范围计算CRC值,因为地址划分很重要。

文件:./lib_mips/board.c。此处不需要修改。

2.1.测试

我们需要先将系统升级为要备份的固件,主要Back固件不要大于4Mbyte,若是大于4Mbyte会出现如下提示:

将固件升级为back固件,再次启动,即可备份固件。如下:

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MT7628KN编程器固件是专门用于MT7628KN芯片的编程器固件MT7628KN是一种低功耗、高性能的无线局域网芯片,广泛应用于路由器智能家居和物联网设备中。 编程器固件是为了给MT7628KN芯片提供一些额外的功能和特性而开发的软件。它可以通过对MT7628KN芯片的编程控制,实现与其他设备的通信、数据传输等功能。 编程器固件的开发涉及到编程语言、硬件驱动、通信协议等方面的知识。开发者需要熟悉MT7628KN芯片的特性和功能,了解相关的编程语言和工具,以及掌握基本的电子电路知识。 编程器固件可以通过固件升级的方式进行更新,以提供更多的功能和修复可能存在的bug。开发者可以根据实际需求,定制编程器固件,以满足不同应用场景下的需求。 总之,MT7628KN编程器固件是一种专门为MT7628KN芯片开发的软件,通过对芯片进行编程控制,实现与其他设备的通信和数据传输。它可以升级和定制,以满足不同的应用需求。 ### 回答2: MT7628KN编程器固件是指用于MT7628KN芯片的编程器设备的固件软件。MT7628KN是一款高度集成的系统级芯片,常用于无线路由器智能家居和物联网设备等应用中。 编程器固件起到了控制和管理MT7628KN芯片的作用,它提供了一系列功能和特性,使编程器能够与芯片进行通信和互动。这些功能包括但不限于:固件升级管理、数据传输控制、设备状态监测和通信接口配置等。 首先,编程器固件可以实现固件升级管理功能。当MT7628KN芯片的固件有更新时,可以通过编程器固件将新的固件文件传输到芯片中,并升级芯片的固件版本,从而使芯片具备更多的功能和改进。 其次,编程器固件还负责数据传输的控制。它提供了数据传输的接口和协议,使得编程器能够与MT7628KN芯片进行数据的读写和传输。这样可以方便地对芯片中的存储数据进行管理和操作。 此外,编程器固件还能监测设备的状态。它可以检测芯片的工作状态、功耗、温度等参数,并将这些信息反馈给用户或系统,以便及时了解设备的运行情况,保障其稳定性和可靠性。 最后,编程器固件还可以配置通信接口。MT7628KN芯片具备多种通信接口,如USB、UART、SPI等,编程器固件可以通过这些接口和芯片进行通信。通过配置通信接口,可以实现编程器与外部设备的数据交互和通信。 综上所述,MT7628KN编程器固件是用于控制和管理MT7628KN芯片的固件软件,具备固件升级、数据传输控制、设备状态监测和通信接口配置等功能。它是实现编程器与芯片之间互动的重要软件组成部分。 ### 回答3: MT7628KN编程器固件是一种用于驱动MT7628KN芯片的软件程序,用于控制和管理该芯片的功能和特性。编程器固件可以通过更新芯片上的固件来改变和优化芯片的性能和功能。 MT7628KN编程器固件通常由芯片制造商或第三方开发者开发和发布。它可以为芯片添加新的功能和特性,修复已知的漏洞和问题,提高系统的稳定性和安全性。 在固件的开发过程中,开发者会对MT7628KN芯片进行深入的研究和分析,以了解芯片的工作原理和特性。然后,他们会编写与芯片适配的代码和指令,将其打包成固件文件,并通过特定的协议和方式将固件加载到芯片上。 MT7628KN编程器固件可以通过各种方式进行更新,通常有两种方法。一种是通过连接到计算机的编程器工具,将固件文件发送到MT7628KN芯片中。另一种是通过网络下载和安装固件更新,这需要使用特定的固件升级工具和流程。 通过更新MT7628KN编程器固件,用户可以享受到新的功能和特性,提高系统的性能和稳定性。然而,需要注意的是,在更新固件之前,用户应该先备份原始的固件,以防止升级出现问题或意外损坏芯片。 总而言之,MT7628KN编程器固件是一种用于控制和管理MT7628KN芯片的软件程序,它可以通过更新固件来改善和优化该芯片的性能和功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值