找回密码
 注册
关于网站域名变更的通知
查看: 502|回复: 2
打印 上一主题 下一主题

DSP 远程升级 / Bootloader设计指南(四)什么是Bootloader数据流

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-30 09:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
目录
+ V  q4 G* ~' K+ M0 d, `* l6 [7 `6 n6 G6 {
1
& F+ D/ C2 L1 M+ N初识Bootloader
( `4 h6 m, |. R0 r6 z
; @# `  K% z8 Z1 Z
1.1 一次Bootloader) f* A1 {) `8 ^
9 y1 H7 e3 z' _8 n
1.2 二次Bootloader- ?4 I0 }# @# ]" ~7 X- _3 c3 G

& y+ q5 N6 \4 ]! W& b1.3 DSP上电引导过程" |& L& T. F# g, j

6 i% r7 c  o% G. C4 w1 ]& R! d2: y) J" q# ?! @" \& Y* r
关于c_int00

+ x8 q* a' N- R1 O' P- `
$ |% j3 G& D* x  W# p2.1 c_int00完成的工作
4 r2 H& ?! s5 ?) J% [) ^0 _! I) [0 ^
2.2 系统初始化
7 T. f* `6 ]. J8 `6 d0 E! ]# C& `, _3 M- J. ~' K! E: T- k
2.3 全局变量初始化
% h" x2 P8 ?# q/ E" L9 l+ X$ G" p/ N6 d3 U( \) @
2.4 全局对象构造7 t0 I( }; K7 k5 c/ Q' ?1 ~5 k

, r! S3 k9 R2 C/ k2.5 mAIn函数与exit函数的调用1 X9 b8 E- |8 k% ?( W

+ I5 u8 X  W; W8 J5 h0 [) X3  `5 V" t! `# g& J$ C3 {
CMD文件与DSP存储空间

, x3 Q8 e! s" z7 @+ Z( [
# k1 j$ j( h# E& ^: s3.1 MEMORY和SECTIONS指令
& X- J1 M+ k6 z! @; g4 d5 w* q; Z* ^# p) G& b2 I
3.2 程序与数据“段”# n1 F1 U7 K0 J9 {. o
5 d. r% v/ _( |+ o
40 X9 `5 l: V$ E6 j' J0 j2 b
Bootloader数据流
, |( S4 |; _' o# e2 n

2 a* E0 A5 a8 G, p4 U4.1 数据流结构
. F$ x8 `+ b8 i9 n' A' I5 }4 T# }. T) x/ E3 x# F
4.2 16-bit数据流; A* d" e2 A% N
' V. C, L& S) z/ s; r6 J9 h
4.3 8-bit数据流& C' S3 ?/ ^8 N6 w- e6 m! \3 m8 }

2 f. N9 k5 e. ^; l2 {5& a3 B4 ~& F, ~1 a. n& E3 B/ V
FLASH擦写操作 —— FLASH API的使用
" v: w! |: n/ X# `6 i4 S& T6 v( f

1 ]1 }& x, [  b6 E$ |2 a5.1 FLASH操作的重要特点8 L. D- x# I2 L) S8 {

& E  o0 Y' T- u6 h) G3 W5.2 FLASH API使用步骤
4 Q  a* @2 I( ?5 S8 z& K( h# ^$ {) v% T, J5 h1 z2 |% w7 W
5.3 FLASH API常用函数使用举例
0 `# z, Y; g. y
& w( V2 z6 E, R62 l6 O0 H, s- s% S
Bootloader设计过程中的9大关键点
$ z8 T8 w, H* k+ m" S

5 z; A' ~; j2 O4 r+ ~6.1 Bootloader程序在升级过程中不被擦除的实现方法0 `% s1 j+ O) [& d" U

( ]- d, e: o7 Z8 I1 a0 }9 i8 x6.2 上电后先进入Bootloader再跳转至mAIn()函数的实现方法; o4 s* q9 I, @
$ ~! a" `0 J1 b9 t
6.3 Bootloader程序作为CCS应用程序工程一部分的实现方法
* `7 @8 U" |* H
, n( l1 O! V: |& L& M+ d* {6 k7 Y6.4 Bootloader与上位机形成交互式通信6 E" w* S9 W5 `" Z1 h

% S) P  f/ G5 Q6.5 Bootloader程序能够对接收数据校验的实现方法
( K/ A$ t) F1 d: o0 V! m$ i: N: d3 }8 v0 h/ |) a9 P1 \& o
6.6 在数据出错等情况下能够自动重启的实现方法
& t+ R8 H' L: s% A. f$ X
5 s- i3 ~" k: C  f! ^" P71 z) j# I1 P% _/ j# P! K" K
CCS输出文件格式 —— ASCII-Hex、Intel-Hex与Binary-Hex文件
8 L& d% O3 k8 S# g4 S
; \0 E3 U: S6 f1 ^; w
7.1 CCS配置生成Hex文件的方法% _9 k. r5 I2 q

3 o- f5 Q6 K6 N" M* ]7.2 ASCII-Hex
( f2 a& R2 ~: ]% n! c& Q. c" A) ~& j0 X9 i
7.3 Intel-Hex
8 |' G9 Z! z1 n+ w
6 `6 [. f9 H4 O: ?$ o+ S7.4 Binary-Hex
5 r& [( ?/ q$ ~, y7 @# n0 z  L
. v2 ]! b7 Z. v6 n1 U6 h

& g8 W6 K! P4 g& c- k3 d8 w! G) b
; E3 T9 n2 c  C9 g& H: Z# t
0 ~: ^8 H% e% @1 Q4 p

$ k7 L6 y& j) t7 @) ~; {# J: a4 Bootloader数据流4 E3 L8 ~6 I8 Z, j& j* R

. `9 @1 W; x7 W1 }# h. I, ?! A( `“在线升级程序时,程序以怎样的数据流存在”
2 t7 P9 Q1 g4 q# M9 r8 n3 S9 t" L7 y& L4 p. T9 U' a7 O0 r
当我们设计Bootloader时,在线升级程序通常使用的是.hex文件,.hex文件有多种类型,我们可以依据需求进行选择,但.hex文件中的数据是以固定“数据流格式”存在的。
% s( n# i" ~' z2 B( ]( b( m
  w# s" G- Q( n6 d! ~8 x6 k通常情况下,Bootloader数据流分为16-bit和8-bit两种,二者大同小异,只是数据存储类型不同。更多关于Bootloader数据流的内容请参考《TMS320xxxx xxxx Boot ROM Reference Guide》。
% k! h1 j$ A- I: R3 U) V+ V$ l. K: U. K( q6 \, R
4.1 数据流结构  S9 M: \3 l: Z* A. \3 J

7 J  }) d# D. {2 A! Q0 l( lBootloader数据流中的数据都采用16进制。
( G: R3 z5 i( g; s! z
2 n4 ]- s1 o# e- O2 H$ \7 c5 G3 U数据流中:* S7 I0 |: O8 T
+ a6 B# O0 s0 N2 U0 B; ]
第1个16-bit字为关键字,用以表明后续数据的宽度:8 bits或16 bits。关键字0x08AA代表8-bit数据流,0x10AA代表16-bit数据流。
1 F' w8 T- E' q+ h( b, `9 O$ s# j6 Y% R* M2 i" r' p5 S
第2~9的8个字为保留字:0x0000。) N  g* L) x- ]/ L

" \; e  }7 m# N8 }& n" W' x第10~11的2个字包含着22-bit的程序入口地址。+ r! _) }' M5 j% A

& g  {- g: m0 q- Z- i1 }) q: X第12个字代表第一个数据块的长度,无论是在8-bit或16-bit数据格式中,该长度的单位为字(16-bit),也就是说在8-bit数据格式中,需要前后两个字节拼成一个16-bit字后进行数据长度统计。  o, z5 k4 f- |. b" G" U
+ P) I/ h' F, x  L/ n0 z# D0 t
第13~14个字代表第一个数据块存放的起始地址。0 ^6 r; z. Q" q' @
9 l* U6 o/ c+ \5 l( F, a
后续的字是数据块的具体内容。
9 r" W3 v+ K" J0 y- [( `+ w
$ V+ ?# o8 W: V2 ]当一个数据块结束后,紧接着的字分别为下一个数据块的长度、存放起始地址、数据内容,如此循环,直至当数据块长度为0x0000。. ^' r" T& k. k) X0 @) G
) F: W' c& A  q. I% _& \
也就是说Bootlodaer数据流必须以0x0000结尾。4 q* _" h5 P* @  y

* R: l: C6 ^# q4.2 16-bit数据流
6 D/ }/ L- t) Z/ O/ x8 y* n
8 d) T3 Q. ?9 ~- o+ F
游客,如果您要查看本帖隐藏内容请回复

) {! {& L/ ]4 {6 L/ o* Z+ R% R& _9 t: e1 P

! ^- O% W9 n% ~+ D* V

该用户从未签到

2#
发表于 2019-10-7 22:43 | 只看该作者
学习了,谢谢分享" y- L' K( |0 T' _! ]% w7 i

该用户从未签到

3#
发表于 2019-10-10 14:53 | 只看该作者
谢谢楼主的分享
4 @1 k$ V1 q2 p4 J9 Y
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-24 05:40 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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