|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
目录7 J4 }( ~0 i( r8 c
8 t/ G# v- ?7 y1 e4 {0 b( u
1+ \+ H4 j( N* j- }, J
初识Bootloader# l! i% y e! Z4 x& f
/ u$ l9 [& t7 j0 v L
1.1 一次Bootloader6 h( i2 y4 ]: @0 q: w3 {
# c! n% [6 c& L4 y* t" k; P1.2 二次Bootloader
$ e/ N2 |$ z6 f! A# t
& r+ V e9 M% Z/ \' l" F, j1.3 DSP上电引导过程
9 r5 x' ~3 a. F) J1 Y( T+ v& K
% h [4 G5 x7 d& |2. b: a. i( F# O0 u1 X
关于c_int00" f' P3 `' ?7 n
+ K5 D! L4 c* m, Z6 }2.1 c_int00完成的工作
$ [1 z; F5 Z% g0 e/ y& ?! [
$ a# c4 G1 P. y% ?; D1 h8 A/ L2.2 系统初始化
; t1 X$ U/ p# y1 k( m/ I, ^5 t% Y+ H4 G9 t. B7 ^
2.3 全局变量初始化% `% R3 Q$ J. j" [6 p. q# L
& u3 I1 h* N D5 P0 |! y3 Y2.4 全局对象构造, J% r e) j3 W& f
% w/ `" D" z6 W: t$ M* f2.5 mAIn函数与exit函数的调用3 B5 w. g: w' n6 a" h) s
' f1 X: s$ W0 a% v N/ j
3
7 L3 v+ A% [2 s$ p, qCMD文件与DSP存储空间
. F3 @$ O/ f- z$ c2 s5 _/ [, Y- q$ R' Z. \3 m
3.1 MEMORY和SECTIONS指令5 a! c& N" t. y% V; u) y
1 r6 e4 ?' M+ m6 @/ i) H
3.2 程序与数据“段”
) }7 E0 B# W8 H) U4 V$ ?$ e0 |; n k6 Y( ?( P
4 G4 ~5 B% H0 z# ?0 g
Bootloader数据流
# o5 r' T- x+ @8 M9 u6 e L3 b- A4 [( t8 P0 `# v
4.1 数据流结构0 D$ m& W9 X; o0 |. }1 A2 o) i
- i; O$ q J6 C4.2 16-bit数据流
8 h! m j$ H* P* o( Y$ r- v5 L$ S8 C# ]
4.3 8-bit数据流9 m# w5 L' \ I6 U
3 q$ O4 {; ?- @" X; }% j5
: a$ U/ y3 ~1 A: @ p4 e/ cFLASH擦写操作 —— FLASH API的使用
" T1 ]6 R n' W9 | r9 O
4 ?% k& F9 F9 |& j* n. A, N, b5.1 FLASH操作的重要特点' [/ F r( L8 I4 P! r6 Y4 s: V5 s
3 O; f5 p9 h. k9 J: Y' T. i/ X* l5.2 FLASH API使用步骤
4 r k$ }& l# L5 v' x) s0 m U. P4 ]: U
5.3 FLASH API常用函数使用举例
: |, R& B$ P* {1 Y$ E6 S& `+ D1 x; v
6
1 A+ c5 q' _# L H5 l* q3 @Bootloader设计过程中的9大关键点
( d% y* O- F! }; S7 H u6 r. z' ~2 y
6.1 Bootloader程序在升级过程中不被擦除的实现方法: R) a; ]9 w) Z# j7 g7 A: j. p) Y* a3 v( E
& `# ~- I; N6 \1 o& C& q6.2 上电后先进入Bootloader再跳转至mAIn()函数的实现方法
0 Y) X) e# e4 [, e# n3 S" H* Q* u, M( ]( G. U* R" l& V& z
6.3 Bootloader程序作为CCS应用程序工程一部分的实现方法
1 e, | D% b( b8 ]! t
3 `; ]. P" P: N5 {" q B6.4 Bootloader与上位机形成交互式通信
0 z1 y7 ^1 k" @5 I- f% f g# }2 X0 b% r' N1 c3 l) N, I ^+ `
6.5 Bootloader程序能够对接收数据校验的实现方法
! `' _+ e E: K+ O3 Y' ?/ ?4 r! t d( R/ e" D
6.6 在数据出错等情况下能够自动重启的实现方法
; A, S. j# ?* I
* W% } \, V, A/ n7
) N/ X. [- V! u5 W4 s$ N' |- r1 cCCS输出文件格式 —— ASCII-Hex、Intel-Hex与Binary-Hex文件, ?- a0 z0 F7 C- u3 O* C
4 C; i2 X; ]' J- ]7.1 CCS配置生成Hex文件的方法
6 m* h" W) O) E$ {) u9 A
! D- e5 O, M! C- ^# f" ~" L' o/ Q) h7.2 ASCII-Hex% r( T$ H7 e7 q% Q" c
7 n* K! l# I+ N& V/ g k9 P
7.3 Intel-Hex, Q) ^8 v' {8 P, R1 U a
5 K) b+ |) O8 K: N% G6 v7 Z7.4 Binary-Hex6 m: l5 q* F- n5 W$ s
3 u3 O" c9 A' o8 j8 u5 U6 \! U
/ z% J: Z ?) c8 R3 r& b2 g9 h
8 U. Y5 }0 `3 U0 k; z3 n$ B [4 L
# T! W* A& \* i- }6 v/ C
3 ~: R" b# Y/ i+ ~6 U3 CMD文件与DSP存储空间
/ w3 L" l1 [! n: Z" @1 C. p. b5 I4 U+ X+ P9 t$ N8 ^: W0 ]( O0 |& O
CMD的全称为链接命令配置文件。以ROM/FLASH和RAM两类存储器为对象,用户通过编写CMD文件,来管理和分配系统中的所有物理存储器和地址空间。DSP芯片的片内存储器,只要没有被出厂占用,用户都可以全权支配。用户编写完的程序经过开发环境(编译器)的编译,转换为芯片可以识别的机器码,最后下载到芯片中运行。CMD文件就是在编译源程序、生成机器码的过程中挥作用的,它作为用户的命令或要求,将物理存储器和地址空间分配方式交给编译器去执行。) r8 x: U7 Y# R0 c3 F
7 [( Y1 z k s: J# b3 f
CMD文件包括两方面的内容:
" p* Z: |" i$ |" _! Y- o' t; ?1 ?) i$ Z( Q3 v7 S' X
1) 用户声明系统的存储器资源。包括DSP芯片自带、外扩的存储器和空间,都要一一声明:有哪些存储器、位置和大小。
% `; N2 M) p3 j$ ?; D( x! }' s- ]% [
2) 用户声明资源分配情况。这是编写CMD文件的重点。
( c$ u( H% S/ Q, t& {$ n& K
* z+ F! T6 V4 a3 W6 B/ T' b3.1 MEMORY和SECTIONS指令
1 y; L1 t. d2 H/ L. v: L
1 d6 @7 _; v# Q4 {
' U" \- F0 s9 u8 V7 p9 Q
$ u4 i! M; @ f5 J- `5 A- i1 Z8 }2 X3 h) \
4 h. P; X2 Z+ T) L" |# D. Y/ s- K7 }+ ~3 X5 c$ `
+ a# i: e# x% O' E% [1 i8 r |
|