|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
目录( t5 T$ n$ n; r
' A& M) }/ u4 T1 P& h
1
1 {* K* ?' f2 M* N" Q; [2 ~3 V/ ~初识Bootloader
0 J6 k* z. L) m/ j2 o _; z6 Z
; d D0 m" P1 y# Z$ r1 Z5 P1.1 一次Bootloader
0 R: L" h6 B! c* [+ S+ b* a: u2 t" X3 j$ p/ H( D) Y
1.2 二次Bootloader9 |" ]/ D; O' k" g3 u4 B
$ S' _4 \8 l7 h/ q* W+ r+ [8 [( h! t
1.3 DSP上电引导过程6 ~9 [& g/ ]3 \, _! H+ y2 a
' X! E1 l0 u/ `+ A2
& S- h/ k/ J5 |' [' W8 W6 U关于c_int002 }) z+ F# N4 @/ E! M- g; T
" U! R1 t+ M: n( J! u5 i3 X
2.1 c_int00完成的工作9 f* J' [# l% ]% r+ j/ x/ s
* A6 |% ^6 Z, p6 U- m% R
2.2 系统初始化
! T9 P% u# B3 l% N4 d9 u J! A# P3 \ t
2.3 全局变量初始化+ }9 G- _1 Z+ {, I" |
, w# T& r5 i6 K0 i, I! ^4 E: D
2.4 全局对象构造& R) Q" u+ E) p7 o! [. X8 q7 W* X5 b
: n) `0 ] q }3 l. B) {# G2.5 mAIn函数与exit函数的调用( @9 f8 ]7 k$ G4 C4 T( e! Q0 E/ k
% S' W- @4 f. y+ t2 M* l; f3+ q( f/ j% j5 G& Q a" g
CMD文件与DSP存储空间
2 @4 v3 z5 i% l8 }) R! s
; W6 [9 x8 S0 M6 s- w/ m3.1 MEMORY和SECTIONS指令
- Z/ r; p. E- m2 q$ \& ^9 j+ g/ h1 y+ \1 [" k# J; \
3.2 程序与数据“段”
# l1 e: _. @/ X$ o4 N7 b
0 L1 m$ e% C8 ^1 h5 o8 H/ R, X4
; [6 z, h& C# ^* \5 R5 d7 DBootloader数据流
, B$ J4 d, G2 {; u& Y" Q8 ?
5 |: U5 u- d0 ~1 ?4.1 数据流结构3 A( a1 q q$ `2 @$ i
1 L6 C, Y) Y# T" C @8 p4.2 16-bit数据流
. u" P( e; p( Y% J7 ~
9 f# v0 v1 m; a4.3 8-bit数据流
3 P3 r. Z F- R4 i
# J* X0 [; N) H0 t- c) \5 L+ @5
3 c2 r1 O" @- t1 [FLASH擦写操作 —— FLASH API的使用
r6 R2 t& E7 j1 W/ D( N5 r. v8 O4 `3 J
5.1 FLASH操作的重要特点
4 D8 V5 ~" A1 z( R/ h' T$ _. d8 D5 {3 u/ e' l0 o& i( `
5.2 FLASH API使用步骤
. U$ q2 w3 ?7 c5 e" Q% l8 s
p8 W) H, @3 }' H8 D: P3 N1 `5.3 FLASH API常用函数使用举例4 x! K9 v; r- d* q
! _0 p2 \; R) l6 L w5 _* N6( G+ R+ h$ i: I4 _1 U5 D3 O
Bootloader设计过程中的9大关键点
8 \0 T7 P: ?/ _) u3 h e* {6 I, q/ ~. w$ r. F
6.1 Bootloader程序在升级过程中不被擦除的实现方法- A! f6 g3 b- ?
2 D. {6 P/ w4 e' E
6.2 上电后先进入Bootloader再跳转至mAIn()函数的实现方法
2 v& _# {0 c3 }/ ]+ u& F
8 s7 L. Y1 C5 e: t+ I( H6.3 Bootloader程序作为CCS应用程序工程一部分的实现方法, }0 [# y3 K" H- @: K1 L
2 ~9 _& p: J5 t" w: s8 o
6.4 Bootloader与上位机形成交互式通信
" m E" P- U& P6 s6 [6 j1 P' b+ |
6.5 Bootloader程序能够对接收数据校验的实现方法: [) e' N% o* x# e
/ T5 o: `* W6 j0 U' {0 S
6.6 在数据出错等情况下能够自动重启的实现方法
4 @$ `0 N, ~" _0 v. `9 V
% P6 z/ {5 _0 M5 q8 l/ a73 i4 v# Q1 i* K- }$ I
CCS输出文件格式 —— ASCII-Hex、Intel-Hex与Binary-Hex文件
: k" u& Z* j \1 D, j) X% T
7 L/ a% ] y3 K& Y6 e- J7.1 CCS配置生成Hex文件的方法
$ ~# |& T" k6 w3 H- H' m" W# }3 \
# w5 y8 ~3 d, R6 p# Y' x1 l% a, ^7.2 ASCII-Hex
+ B1 J- z e/ f+ g. y7 H/ } I9 {9 t6 s: @9 F5 Q7 A! P% n7 R! [7 ] v2 [
7.3 Intel-Hex
l9 O, G( O. v1 b$ P' [6 S
9 o0 z1 f C& g" g7.4 Binary-Hex
& ]% y' {6 G- p3 M+ E- X1 ^' j
8 Z3 ?' s* P9 ` A) C: d6 f5 R' G8 P5 g$ i `* Q% e- w* K9 K" g+ n
/ e- @/ U6 l" W( K d& s1 m4 K, `( h7 V' ^! D
- l. J1 s1 {: ?" M. P: H$ ^( W3 CMD文件与DSP存储空间) f7 r& w2 x% h% b4 q1 h- l
! r5 D# K7 d2 q, @, S" L7 q
CMD的全称为链接命令配置文件。以ROM/FLASH和RAM两类存储器为对象,用户通过编写CMD文件,来管理和分配系统中的所有物理存储器和地址空间。DSP芯片的片内存储器,只要没有被出厂占用,用户都可以全权支配。用户编写完的程序经过开发环境(编译器)的编译,转换为芯片可以识别的机器码,最后下载到芯片中运行。CMD文件就是在编译源程序、生成机器码的过程中挥作用的,它作为用户的命令或要求,将物理存储器和地址空间分配方式交给编译器去执行。
6 s& f4 r! E# K
. g9 Q4 A+ j: w* P# r* I+ V2 S G8 XCMD文件包括两方面的内容:5 A) s4 e/ h+ S1 W: g, Q( P
) E, r$ F, Z( q1) 用户声明系统的存储器资源。包括DSP芯片自带、外扩的存储器和空间,都要一一声明:有哪些存储器、位置和大小。( x" z4 v/ j" f' N: ]
* G) Z/ {3 G/ ]+ n
2) 用户声明资源分配情况。这是编写CMD文件的重点。- ]( g6 f8 m# a% p3 |' k6 h
2 G8 Q; o3 R/ C1 M1 O3.1 MEMORY和SECTIONS指令
% p+ G+ I; _# I7 L$ w: G
% M3 Q# q! a6 D2 F" s5 t5 ?( p& {
) a( C4 V5 D6 o; D* F+ d+ ^
' T- O- D s% U; L1 G, y% y. S" `& f' I% u# l1 N9 ^" w+ ?- J
/ E5 A. C2 L+ p
7 d* c, a1 V& D- y( F% t6 G |
|