使用HTTP进行OTA升级有时成功,有时失败,CRC校验提示是什么...

发表在 Bootloader2020-2-13 12:00 [复制链接] 6 93

本帖最后由 面码1314 于 2020-2-13 12:15 编辑
! ~  J) ^' b9 K0 h: L7 \  Y: q
6 f7 C9 K5 r8 a% L整个升级过程如下,从bootloader烧录开始
3 v! _) Q- ]5 p+ r3 c% ^% H+ U1.bootloader烧录
! z+ \2 C! W  e' o 21.png ' n" I7 j- |) x8 A& }% R$ Z
[E]Get firmware header occurCRC32(calc.crc: 7b93c5c8 != hdr.info_crc32: ffffffff) error on 'download'partition!
[E]Get OTA download partition firmwareheader failed!
[E]Getfirmware header occur CRC32(calc.crc: 7b93c5c8 != hdr.info_crc32: ffffffff)error on 'app' partition8 p! c& ]/ C6 w

+ B8 x  c: [$ w5 ?. A; f' a

- I7 d4 Q3 E  X+ n7 u# e( Z- r2.下载1.00程序- h  n1 K8 `7 ]
22.png
& b, O7 Z* i. r- z) H5 t7 ~
2 C  Q9 a6 ~2 y6 v, l1 s. b, N
( @# v6 x# W7 F( H
[I]RT-Thread OTA package(V0.2.1) initializesuccess.
[E]Get firmware header occurCRC32(calc.crc: 7b93c5c8 != hdr.info_crc32: ffffffff) error on 'download'partition!
[E]Get OTA download partition firmwareheader failed!
[E]Get firmware header occurCRC32(calc.crc: 7b93c5c8 != hdr.info_crc32: ffffffff) error on 'app' partition!
' L8 v0 W2 K  R7 }

$ \/ C! I1 ?+ ~8 h8 c3.打包2.00程序 用于HTTP升级
) k) u, r$ |8 U, V# b打包信息如下
7 {/ T& l4 r/ [$ h' \ 27.png
: U1 D( K- e8 R. c* M* Y) [$ j7 s
- N" m8 O6 {4 j9 [' S

" o! Y; C9 u$ N
挂上服务器进行下载
进行升级为2.0.0版本
) D$ s' a' S2 v8 r( ?' `
0 S* L; i, ^! h* e! D3 s* R7 {
28.png
9 I" O4 z( [) u2 q2 G- V# G: z% D
# y, @5 l5 j+ b" J  c- N- M
( F3 ^2 Y/ [, X6 E# y% [
[I]RT-Thread OTA package(V0.2.1) initializesuccess.
[E]Get firmware header occurCRC32(calc.crc: 7b93c5c8 != hdr.info_crc32: ffffffff) error on 'app' partition!
[E]Get 'app' partition firmware headerfailed! This partition will be forced to upgrade.
[I]Verify 'download' partition(fw ver:2.0.0, timestamp: 1581565642) success.
[E]Get firmware header occurCRC32(calc.crc: 7b93c5c8 != hdr.info_crc32: ffffffff) error on 'app' partition!
[I]OTA firmware(app) upgrade startup.
[I]The partition 'app' is erasing.
[I]The partition 'app' erase success.
[I]OTA Write: [>                                                                                                   ]0%
[I][2A
[I]OTAWrite: [===>  
& u9 }( e, ^% N2 ^9 W6 O; S4 N$ O
29.png 8 l) n& d$ g* a1 v

) R' q3 s5 g# A. B
5 K; o. }( l$ o2 t2 {) x8 A) _1 [
[I]OTA Write:[==============================================================================================>     ] 94%
[I][2A
[I]OTA Write:[================================================================================================>   ] 96%
[I][2A
[I]OTA Write:[===================================================================================================>]99%
[I][2A
[I]OTA Write:[====================================================================================================]100%
[I]Verify 'app' partition(fw ver: 2.0.0,timestamp: 1581565642) success.
[32;22m[I/FAL] Find user firmware at apppartition 0x08010000 successfully.[0m
[32;22m[I/FAL] Bootloader jumps to userfirmware now.[0m
\ |/
- RT -    Thread Operating System
/ |\     4.0.2 build Feb 12 2020
2006- 2019 Copyright by rt-thread team
[32m[2] I/at.clnt: AT client(V1.3.0) ondevice uart2 initialize success.
[0m[32m[10] I/sal.skt: Socket AbstractionLayer initialize success.
[0m[D/FAL] (fal_flash_init:61) Flash device|             onchip_flash | addr:0x08000000 | len: 0x00080000 | blk_size: 0x00000800 |initialized finish.
[32;22m[I/FAL] ==================== FALpartition table ====================[0m
[32;22m[I/FAL] | name     | flash_dev    |  offset   |    length |[0m
[32;22m[I/FAL]-------------------------------------------------------------[0m
[32;22m[I/FAL] | bl       | onchip_flash | 0x00000000 | 0x00010000|[0m
[32;22m[I/FAL] | app      | onchip_flash | 0x00010000 | 0x00030000|[0m
[32;22m[I/FAL] | download | onchip_flash |0x00040000 | 0x00038000 |[0m
[32;22m[I/FAL]=============================================================[0m
[32;22m[I/FAL] RT-Thread Flash AbstractionLayer (V0.4.99) initialize success.[0m

8 L: I6 {: s+ `! e
, }6 d9 a, [0 e: s6 G0 J
看到最后成功升级到2.0.0版本
0 c: w3 T% J; e9 y' D
* x: f! Z( s, [- ^8 D1 w
& a! f2 o9 R! i) Q1 ~# T4 W
4.打包3.00程序 用于HTTP升级
6 F  a7 o: [& n) R8 q1 S打包信息如下
# c$ D) o1 ]) B' H! J5 G 30.png
; N% H. C5 V6 r' G% U2 h. [, p
1 E: t8 \1 ]3 J/ t2 t
2 @5 s' E. |9 u7 K6 T9 t& x
升级失败
7 x( [8 R4 S2 `# Z0 r 31.png ) z" P* D/ B5 G/ @; Y
+ m' Z9 C9 n9 E/ }& u" r, Q
/ G9 x# n, H' e3 c* ~5 T' j
发现这里的校验和之前的不同2 }" i$ r& c: O8 M
[I]RT-Thread OTA package(V0.2.1) initialize success.
6 f, ~" c. I5 m8 g! M* y) p[E]Verify firmware CRC32(calc.crc: 45b1a272 != hdr.crc: cc630c22) failed on partition 'download'.
. K. ~. Q1 B1 A+ ~/ `[I]Verify 'app' partition(fw ver: 2.0.0, timestamp: 1581565642) success.1 _* D1 _7 t8 }1 {) [( o
[I/FAL] Find user firmware at app partition 0x08010000 successfully.
: e" t# i8 `$ _; u
) _( h" O4 i9 R6 N+ [; R' d不是!= hdr.info_crc32: ffffffff
5 e7 a! J* [) {9 u  r8 ?5 v# z" P, S, W- T
) U2 `* \2 v$ K: f& H5 X
: N. P( Q7 X, C

8 ]6 Y3 x% h% a; x% H7 ~9 P多次尝试都是这样,有时可以升级 有时不可以,但是一旦出现一次吗,没有升级成功 ,就再也升级不成功了$ v0 m. `2 [/ ?! q/ \) M8 a# m% |
2 k5 ~. ?3 w$ r$ Q, M4 T5 N8 b; c
6 G8 n; f4 y: \+ U, Z

$ U' q6 l% M0 }8 L3 b) y
1 `4 i' l' A( n- c/ S* h. E4 r9 `
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2020-2-13 12:19:04 | 显示全部楼层
对比过 每次升级下载的数据和 rtthread.rbl数据。打印出来数据一致
使用道具 举报 回复
发表于 2020-2-13 13:53:28 | 显示全部楼层
[E]Get firmware header occurCRC32(calc.crc: 7b93c5c8 != hdr.info_crc32: ffffffff) error on 'app' partition!
0 p$ }, u% ^/ I0 K; \  |1 I[E]Get 'app' partition firmware headerfailed! This partition will be forced to upgrade.9 s1 o+ T$ d  H* m' S3 w
[I]Verify 'download' partition(fw ver:2.0.0, timestamp: 1581565642) success.& M. u4 ]  s4 {* S; O+ s7 C
[E]Get firmware header occurCRC32(calc.crc: 7b93c5c8 != hdr.info_crc32: ffffffff) error on 'app' partition!& C) C8 t( \: ]; J( n  {
) g' K4 J& K) L$ J) c" `
升级成功,是在获取“app”分区固件头失败后,app分区被强制升级的。
9 L1 b4 m: p9 f- R这种获取"app"分区固件头失败,是正常情况吗
使用道具 举报 回复
发表于 2020-2-13 14:22:23 | 显示全部楼层
检查一下flash
使用道具 举报 回复
发表于 2020-2-13 14:40:06 | 显示全部楼层
shao7936626 发表于 2020-2-13 14:22
+ J9 r' C( |/ ^0 v' v6 S检查一下flash

3 X8 L, V$ H; p& [1 H0 \- R8 G请问是 检查关于FLASH的设置分区吗
使用道具 举报 回复
发表于 2020-2-13 17:26:08 | 显示全部楼层
重新回到最初的使用  Ymodem 升级固件 0 k( ]! k; g; _& a' S8 S! X
" J* v' ], r6 z  R1 m. G3 e1 s
发现虽然是成功升级 但是 依然有强制升级的提示
4 i3 p- h8 V, `% b7 k) y% e/ S7 i  [# A
32.png & O1 i5 ~1 U0 Y0 ^  U9 Q9 x4 k

: s4 i1 W3 F* `; J+ O" Z% a  D+ T 33.png
, E& r9 Z; k4 ~- L7 e* z4 t. r* \4 W( i' M  b
[E]Get firmware header occur CRC32(calc.crc: 7b93c5c8 != hdr.info_crc32: ffffffff) error on 'app' partition!5 N" n# J  R) m$ R% K# ^
[E]Get 'app' partition firmware header failed! This partition will be forced to upgrade./ L: I& ~& ^  L* U: r: Q
[I]Verify 'download' partition(fw ver: 2.0.0, timestamp: 1581583155) success.
; M. C, ]. y" l* U[E]Get firmware header occur CRC32(calc.crc: 7b93c5c8 != hdr.info_crc32: ffffffff) error on 'app' partition!
( Y6 Q$ w- J( p1 c[I]OTA firmware(app) upgrade startup.0 \/ T5 t* P- ~8 i: ^; ~/ B
. `3 u+ b7 L. T( y8 }+ z: ~

& F! [$ t! D+ B& ~0 z+ k1 O( m依然是6 M$ K$ [/ N  \' }
E] 获取固件头occurc32(calc.crc:7b93c5c8!=hdr.info_crc32:ffffffff)app分区出错!+ R1 y6 D  `4 g1 L& H7 b' s" e( ^
- d% D' J$ G* q; _, ?2 j
[E] 获取“app”分区固件头失败!此分区将被强制升级。1 m5 @# d( C; n  d8 _

4 w; O& m0 ^) g
+ \5 J7 A9 a  N. A3 Z  `+ M' H, J  g
对比了一下官网上的采用这个升级的程序的图片9 |# @" g' F' d; E) {
34.png
& e8 v' i; g* ^: t感觉虽然也是获取app头失败 但是没有进行强制升级
- j; T; S8 O% W; E8 B* X7 N3 z! c; T8 O5 N5 M" ^. v% e
使用道具 举报 回复
发表于 2020-2-13 19:39:08 | 显示全部楼层
有点怀疑是自己在做分区的时候的问题。
, m& i1 y( ^, Y; Z采用的STM32F103ZET6   512KFLASH  64KRAM   
2 |  A2 F' V' L' W9 F
% Z0 y( V! l; V( J: Eapp分区 和download分区 7 Q) g& v2 J$ k$ O
+ P3 D2 K  r" \6 F0 C2 J( N
41.png
. s$ a0 M( X: e: t% y/ O& c4 Y1 p
2 \! k. W  e# y  g5 `
  N/ a/ u- C+ Y预留64K 作为BootLoader 。  全部使用内部FLASH
. J7 z+ I. a8 C# u$ H
7 K. c6 W5 k8 M5 w9 lAPP                192K
# h) `5 V" r& ~7 `Download       224K) l6 ^- M8 v6 V" U8 x' X" R. c' r

5 I8 j% H7 j2 c
" Y$ L0 W& `4 D* b6 T( `/ e! G+ E 42.png 2 j9 T, N5 D1 H, a5 }
% Y6 F5 q- H2 |& q
   {FAL_PART_MAGIC_WORD,        "bl",     "onchip_flash",         0,   64*1024, 0}, \% V( q2 g" ^0 o; J- W! o! Q
    {FAL_PART_MAGIC_WORD,       "app",     "onchip_flash",   64*1024,  192*1024, 0}, \* J0 z! U3 Z5 t; h2 b, \8 f0 R& ^
  {FAL_PART_MAGIC_WORD,  "download",     "onchip_flash",  256*1024, 224*1024, 0}, \9 b. `2 W6 H4 X' f

- O* u# V( S& C
* C: T9 l! |" ]: u/ n, E* _不知道我这里理解对了没有 ,第一个 “bl” 分区 是保留分区 , 存放BootLoader3 I0 h, @+ p+ X; o' d- W7 I; R

- l# z+ B4 p  B' |* T后面依次递增的为 app分区   download分区! `; k4 v9 D. C7 Z/ T
+ ]/ l% D" P" I5 `
43.png + y$ Q/ L# J! k, `

: R8 U9 X( b8 u* w4 ~. T) a
3 l3 j- l: H7 f1 l3 L3 i! p) |
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

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