谷动谷力

 找回密码
 立即注册
查看: 1830|回复: 1
收起左侧

OpenWRT 串口刷机方法

[复制链接]
发表于 2022-2-6 23:16:38 | 显示全部楼层 |阅读模式
OpenWRT 串口刷机方法
/ t5 U0 f6 e- P. s0 D6 E
! a$ s+ X2 d& @3 G+ C/ [0 i0 c0 ^' o
启动BOOT控制台
8 ~5 \0 U4 _+ B' t- z% w6 Y' ]不同BOOT进入控制台的方式不同,请根据BOOT启动时输出的提示进行操作。
) j- T8 s) I/ p2 {
( q+ K; F( K2 a  o+ L3 ^将WR703N通过TTL线(串口线)连接到PC端。
$ K- l+ ?3 n) ^  T通过SecureCRT使用该串口。
! f7 ~  C+ b4 p4 X" |0 S启动路由器,会在SecureCRT中看到如下输出: * Z* t- t1 Z% X/ n4 ^* }5 g
5 o6 N- [# N' D+ x0 T4 a1 w% z% m
在倒计时按任意键可进入BOOT的控制台模式,如果没有按键则自动加载运行系统固件代码,从BOOT输出也可以看出系统固件地址是在“0x9F020000”的位置。. j# Q1 w1 E/ X  A7 x
启动BOOT控制台,会看到如下输出:
$ {6 {# ]; ]) o- f6 m: P5 w$ |( Z2 r
操作BOOT控制台: Z1 p. q  E  `+ ]+ @+ ?, @# p
不同BOOT的命令名称可能不同,请根据实际名称进行输入。7 z' `4 v" P4 ]5 z! P& O

; S0 d* ]% ]) k6 [) W6 e* e! s: M输入“help”命令,就可以看到该BOOT支持的命令。
! |( C3 u2 E% V8 C+ q 3 ~. K4 h3 f' z' t
其中“printenv”、“tftpboot”、“erase”、“cp”、“bootm”命令是后面依次会使用到的。
' a$ O0 i0 s% r$ ~5 ^: A" ~2 ]) T输入“printenv”命令查看当前BOOT的网络配置,主要是查看TFTP的服务器IP(BOOT的TFTP程序是作为客户端,因此需要知道TFTP的服务器地址)。
( `$ O! R' p0 B/ H, B4 T, A
- [- S4 e$ {1 D) y这里可以看出服务器IP是“192.168.1.2”。
# }* H9 f9 W4 [8 P% F$ ?将PC的IP地址修改为看到的服务器IP(PC端作为TFTP服务器,BOOT是TFTP客户端)。 $ |% [5 X" b) T, [4 a
3 C0 B$ K! U) ^1 O3 h
使用网线连接路由器和PC。
+ C4 k; G! L4 q/ \# h- a将系统固件重命名为“sys.bin”,并放在TFTP服务器软件的同级目录下(系统固件重命名的目的是缩短文件名,简化后续命令输入操作,不重命名亦可)。 1 ]4 G1 M) o4 z
5 P8 ^; j0 F- ?* S- @( U# g7 m+ H
在PC端运行TFTP服务器软件“tftpd32.exe”(软件从这里下载),只要打开即可,不需要做任何设置。 # ~. ^) I) Y: N* d/ H% R5 X
) T# V+ O- C5 x2 `$ p. v
刷机流程
2 A2 A# H/ E0 E) O! t这里是以4M大小的固件为例,如果是8M大小的固件,则大小需要改为“0x7c0000”。# |" Z. g/ v. K3 a/ Z8 t. F3 ~

# ]0 K2 B* j0 J在BOOT控制台输入“tftp 0x80000000 sys.bin”,意思是调用tftp程序从TFTP服务器上将“sys.bin”这个文件传输到路由器的内存地址“0x80000000”处。 6 Z/ L2 n* B4 r) i1 V! |9 `
! h2 |" U7 n. M' T
固件传输过程会有进度条效果,传输完成后会显示“done”。4 s1 v: ~& b' o( t. |8 m1 \
在BOOT控制台输入“erase 0x9f020000 +0x3c0000“,意思是从FLSAH地址0x9f020000开始,擦除大小为0x3c0000大小的区域。
: }3 c; i+ p: @  D+ e 8 B6 F# Y; v: m/ a% T. J: P( ~
擦除过程会有进度条效果。
5 E0 Z5 A5 r; D0 @在BOOT控制台输入“cp.b 0x80000000 0x9f020000 0x3c0000”,意思是将内存地址“0x80000000”地址的数据复制到FLASH地址“0x9f020000”中,复制的数据的大小为“0x3c0000”。 . _7 p& \( s; `) ~) m

) c$ \; d7 ~) w9 S1 m+ B数据复制过程没有进度条效果,请不要以为是没反应,数据复制完成后会显示“done”,请耐心等待。( O5 w3 [: r1 c7 ^. a
在BOOT控制台输入“bootm 0x9f020000“,意思是从“0x9f020000”的位置运行系统,就是启动新写入的固件。
/ w# ~% r1 Q1 ~0 Y8 G, `$ z+ N. Y; p; X/ U
备注说明6 Z3 F: v4 a: F7 w2 @+ _% K
“0x9f020000”代表WR703N中系统固件在FLASH中的地址。
7 q2 D6 g% V0 V( P3 `0 F“0x80000000”代表WR703N中的内存地址。; ^/ M8 Z" B- T- t+ E: ?  P% J- T
“0x3c0000”代表系统固件占用的空间大小,这里是以4M大小的固件为例,如果是8M大小的固件,则大小需要改为“0x7c0000”。9 x0 N+ r: I7 H8 m7 w# O$ L
有关AR系列芯片内部地址的更多信息,请查看AR系列芯片分区地址和常用刷机命令 。
9 Q* z( G0 l2 e7 c由于FLASH的改写需要先进行擦除操作,而且BOOT里的TFTP程序不支持直接对FLASH进行写入的功能,因此需要先将数据存放到内存里,然后通过cp命令将内存中的固件数据烧写到FLASH中。
( I2 P$ H, g0 q, B" w————————————————+ a# |: U0 M4 o& D3 D
版权声明:本文为CSDN博主「滑冰的犀鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
, X8 F1 {5 s( x' j原文链接:https://blog.csdn.net/xcoderone/article/details/48031279- o/ @8 l8 @; J# z

本帖被以下淘专辑推荐:

回复

使用道具 举报

 楼主| 发表于 2022-2-6 23:19:07 | 显示全部楼层
OpenWRT Uboot选项:
+ Y* _% S$ h2 B8 x7 ?5 Q& q' Z! k; L. ?5 ~" e8 ]
Please choose the operation: ; Q; q- K  [3 I* b% w  K
   1: Load system code to SDRAM via TFTP. & J+ y& n0 K  y& i5 R# f2 G
   2: Load system code then write to Flash via TFTP. & D0 p. T7 D2 x* R+ c7 c
   3: Boot system code via Flash (default).! V2 ]# a  J; L2 M
   4: Entr boot command line interface.
2 H$ r, f6 u, |* I; t   5: Entr ALL LED test mode./ Y! c# P4 a, v8 F1 {% r* f0 Y2 b
   6: Entr Web failsafe mode.$ T% b4 r: I" j. E6 e9 u9 N
   7: Load Boot Loader code then write to Flash via Serial.
  j9 S5 L3 [1 e   9: Load Boot Loader code then write to Flash via TFTP 0 . ]8 j! `8 _. d' p
" e7 L7 Y) s( N5 x4 t, N  Q

4 K# }0 i$ n3 z' j+ C) U" P' J) M默认:  ( _" m% l. t: A0 M
3: System Boot system code via Flash.
/ d, o( Y/ E+ a2 L
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-3-29 03:44 , Processed in 0.079450 second(s), 37 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表