|
本帖最后由 zanjie1999 于 2020-8-25 21:09 编辑 发现居然有人tftp都不会用,写一个这样的教程,不需要u盘和emmc中的系统就可以刷spi,非常简单 1. ttl连接,连接绿色部分就可以了4 A# X, \: B' K1 N e7 H
' h% x1 X; Q: Z- j左边的uart就是,将他连接到ttl小板,连接方式是:0 Z+ ?3 E; K6 Q/ [* V6 W
将小板的跳线切换到3.3的位置,如果你的小板没有这种设计,忽略这一行- i0 i, T9 n6 C3 n5 g5 Q+ U7 O/ J \
tx接到小板rx
. `' p2 k b4 m5 j% c# p+ Lrx接到小板tx) d# G! h E2 A' k4 T
gnd接到小板gnd
" h; L8 M. G* X- X. Y4 y2 ~ G: R: \" f) E' |
接好后,把小板插电脑上
2 D( {' S" c( y6 s9 h2 ~' j( x- O; J" X: x- o1 ?7 p! x- ?/ Y z
4 p7 q1 ~ A3 Z* Q0 J: r0 c2. 随便找个终端程序,比如下面这个, macOS和Linux可以使用minicom或者screen,按照你的习惯来选择即可9 V7 u. g* s! o9 q; T! H
( q( |7 @2 M r/ ?6 v3 K/ T/ e
打开它% E# f2 M6 u. v- W% G9 t2 v
* Y1 L( ?2 Y4 Y* a4 I( W6 p- ^ Z新建一个串口会话,此时将载波率设置成115200,如果之前新建过那这步就免了; M2 f" @: q; m8 ~) e
9 g# Y3 Z+ v& b( r9 b* F* g
8 S, S! B( h& z5 S% ?
3. 打开那个串口会话,选择你的ttl小板,通常是com数字最大的那一个# a$ g% |8 f$ q' Z1 k- }
4 k2 U' D+ W3 g( q然后会打开一个空白的窗口
: Y0 z, H$ w7 J* {1 _+ |
4 p& }6 s, c' y6 v- e9 o4. 这时候给猫盘上电(插电)这时应该会看到窗口有输出内容,如果没有,可以试着把猫盘处的tx和rx对调一下# r; Q l* y- l6 u5 p# M
, F" ^6 p3 K8 F, a5 q8 ~' J看到输出后不停的按回车,直到你看到
# v% ]) P- N7 x+ l* ]; ~ a进入了uboot命令模式( N/ L- p; |+ K& W
$ Y. s6 C" s8 ^ [6 K5 W5. 你已经完成一小半了,把你要刷的bin文件和tftp程序放在一起,比如下面这样
, i" E( r, L4 \2 Y
) Y6 E- j# L; U* @
打开tftp服务器,macOS和Linux用户你们可以自己配置一个tftpd作为tftp服务器- A3 n v9 t- Q
" Q3 S. Q s* J" I0 B6.设置监听ip,并记下ip地址,这一步很重要
* {7 U- y. T7 g. p% ^
/ U5 D+ Y: J8 C5 b通常Realtek,Intel,Broadcom,Qualcomm,Mediatek,Killer开头的
6 F% }0 S: k' i; D, Y9 {) `1 E# Y) q4 B# S& m
% A/ f) t- D. g7. 将猫盘插上网线,和电脑连接到同一个路由下
& I6 z( u2 U4 L% a8 g9 C5 D, l猫盘的ip地址 可以是 刚刚记下的ip地址,把最一个 . 后面的数字改为2-254之间的任意数字,不和记录的ip重复就可以了. _- ~. ?+ _6 P8 Q0 x8 }# J
- setenv ipaddr 猫盘的ip地址5 ?+ @/ z9 A' G4 `/ d1 L
- setenv serverip 刚刚记下的ip地址
# s( T' f: }1 s- V$ u4 {) u ~
复制代码 地址就设置完了$ A' c# j$ i, p0 _) L7 ]: h
9 Y }/ v, A0 `& u
! G% ~, P7 D9 j5 Q; K0 ]/ ]) |8. 下载固件到猫盘
: B) ? \+ t; u' E: p9 p I- tftpboot 0x1000000 你要刷的bin文件的文件名
复制代码 像下图这样提示done那就成功了,如果没成功可以尝试重插网线再重新操作本步骤
3 {% y- I o7 l: K# E( d& h$ d- D
+ z& h: g/ ]9 N7 E l" {
+ o" u: }4 _2 i4 l7 R
9.刷spi,请确定上面那步已经成功
+ I: e4 T: \ d$ }6 [+ Y' M- sf probe: j' t7 |, I# ~8 @* M- f
- sf erase 0x0 0x8000002 d% q+ G# x1 M7 D8 `" d
- sf write 0x1000000 0x0 0x800000
复制代码 执行完之后,spi就刷好了,可以拔电重启了
9 k" |. N; t% [" ~
: R' H5 q P4 P/ _& T" n6 g* F: P$ M3 Q) k9 ^, p9 B
10. 改mac
; j! ?+ B* f8 Q2 i" d. ^; ~' B使用 4 的方法进入命令模式,把下面的mac替换成你猫盘盖子上印的mac: n( d* H& Y2 z! z( A. W
- env default -a
! z9 X* r: v1 j& b& P( h - setenv ethaddr "4c:65:a8:00:00:00"
5 e0 r; g& _8 w o) C4 R2 C - saveenv
复制代码 再断电重启即可% K, O2 ?% u* U- m! F) U7 U! R
; d* T! [) k3 v) @0 v/ R! D
-------------------------- wtp 部分 --------------------------
8 C: c) q; ^7 `5 h/ o% _% u4 o2 y5 v* M# y/ c
如果显示; e2 e6 L+ S2 y
那你就需要下面的内容了,此操作需要Linux系统,那怕是U盘启动的liveCD或者虚拟机都可以 A0 s& \( p) ]4 [
4 {% |: h; \' m8 r
1. 如果你是虚拟机,请把你的ttl小板分进去,不同的虚拟机操作不一样,一般在 设备 -> usb 菜单中4 [4 I' b9 O; X3 v( u; K# m7 I
8 A4 O# {% q* V' n8 W& S2 }
2. 执行" O+ }/ {4 ]4 d+ ?- x
应该能看到输出内容中有usb子样,这时小板已经连接成功了
* n1 u7 C+ p/ _0 } R: {- G' F4 j. Z, w* \! g
3. 在 wtp 文件夹下打开终端
% O) R, f6 r' ~
+ d* K+ z% I; m7 j: s; k4. 执行
) L3 R6 N1 ?$ M3 ~* b1 V+ K- sudo ./WtpDownload_linux -P UART -C 0 -R 115200 -B ./TIM_ATF.bin -I ./wtmi_h.bin -I ./boot-image_h.bin -E
复制代码 可能会要求你输入密码,密码是你系统用户的登陆密码
4 b0 m k" Q4 K& }! U# q' F
0 C6 x, t0 n3 G9 ?完成后回到本文的开始,刷入uboot" R7 d, m$ X0 `: P, F3 g5 @
; V7 W6 D! y8 |! o9 q# R- h) l
好了写完了,10点吃晚饭会不会有点晚# Q \$ i! I6 A' t
/ z3 I6 ?4 p! y. S/ U/ v% {8 O
) ?9 P I {5 p4 z+ r r |
评分
-
查看全部评分
|