|  | 
 
| OpenWRT 串口刷机方法 
 
 启动BOOT控制台
 不同BOOT进入控制台的方式不同,请根据BOOT启动时输出的提示进行操作。
 
 将WR703N通过TTL线(串口线)连接到PC端。
 通过SecureCRT使用该串口。
 启动路由器,会在SecureCRT中看到如下输出:
 
 在倒计时按任意键可进入BOOT的控制台模式,如果没有按键则自动加载运行系统固件代码,从BOOT输出也可以看出系统固件地址是在“0x9F020000”的位置。
 启动BOOT控制台,会看到如下输出:
 
 操作BOOT控制台
 不同BOOT的命令名称可能不同,请根据实际名称进行输入。
 
 输入“help”命令,就可以看到该BOOT支持的命令。
 
 其中“printenv”、“tftpboot”、“erase”、“cp”、“bootm”命令是后面依次会使用到的。
 输入“printenv”命令查看当前BOOT的网络配置,主要是查看TFTP的服务器IP(BOOT的TFTP程序是作为客户端,因此需要知道TFTP的服务器地址)。
 
 这里可以看出服务器IP是“192.168.1.2”。
 将PC的IP地址修改为看到的服务器IP(PC端作为TFTP服务器,BOOT是TFTP客户端)。
 
 使用网线连接路由器和PC。
 将系统固件重命名为“sys.bin”,并放在TFTP服务器软件的同级目录下(系统固件重命名的目的是缩短文件名,简化后续命令输入操作,不重命名亦可)。
 
 在PC端运行TFTP服务器软件“tftpd32.exe”(软件从这里下载),只要打开即可,不需要做任何设置。
 
 刷机流程
 这里是以4M大小的固件为例,如果是8M大小的固件,则大小需要改为“0x7c0000”。
 
 在BOOT控制台输入“tftp 0x80000000 sys.bin”,意思是调用tftp程序从TFTP服务器上将“sys.bin”这个文件传输到路由器的内存地址“0x80000000”处。
 
 固件传输过程会有进度条效果,传输完成后会显示“done”。
 在BOOT控制台输入“erase 0x9f020000 +0x3c0000“,意思是从FLSAH地址0x9f020000开始,擦除大小为0x3c0000大小的区域。
 
 擦除过程会有进度条效果。
 在BOOT控制台输入“cp.b 0x80000000 0x9f020000 0x3c0000”,意思是将内存地址“0x80000000”地址的数据复制到FLASH地址“0x9f020000”中,复制的数据的大小为“0x3c0000”。
 
 数据复制过程没有进度条效果,请不要以为是没反应,数据复制完成后会显示“done”,请耐心等待。
 在BOOT控制台输入“bootm 0x9f020000“,意思是从“0x9f020000”的位置运行系统,就是启动新写入的固件。
 
 备注说明
 “0x9f020000”代表WR703N中系统固件在FLASH中的地址。
 “0x80000000”代表WR703N中的内存地址。
 “0x3c0000”代表系统固件占用的空间大小,这里是以4M大小的固件为例,如果是8M大小的固件,则大小需要改为“0x7c0000”。
 有关AR系列芯片内部地址的更多信息,请查看AR系列芯片分区地址和常用刷机命令 。
 由于FLASH的改写需要先进行擦除操作,而且BOOT里的TFTP程序不支持直接对FLASH进行写入的功能,因此需要先将数据存放到内存里,然后通过cp命令将内存中的固件数据烧写到FLASH中。
 ————————————————
 版权声明:本文为CSDN博主「滑冰的犀鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
 原文链接:https://blog.csdn.net/xcoderone/article/details/48031279
 
 | 
 
+10 |