|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
目录
: }, r1 Z4 s( F, n8 M3 O; _2 H# D1 |, q9 w
1
0 |- ~' b4 _- W) k2 p8 ~6 w初识Bootloader9 o0 L# K0 }2 k
* P; Y. f1 o/ l3 ~+ x6 _5 K) e1.1 一次Bootloader" r9 F" ^$ V& w- v% [" b
% Y) v) H; d3 G; y) k; v
1.2 二次Bootloader D8 I" J* |; b( S* ?3 ]% F8 y
/ h: B* [; S% F- d6 i! A: S1.3 DSP上电引导过程
% N3 j: d9 P$ N# z' H
" P1 S( `; x9 V# I# t4 V2
) B" f: V( f/ b, r/ p7 p7 Z关于c_int00
( i" L; D( v, {8 S
8 ]( }* z# N% M2.1 c_int00完成的工作
- h2 D4 h+ t# I( Y
$ i9 _+ b7 n2 k' E0 J2.2 系统初始化' U( W: c' C% K1 z7 i
. L4 M* h6 u& J! N% g2 y! n
2.3 全局变量初始化
3 H- W2 O: R) ?' x7 u4 r9 P3 g% u2 Q. R- S, ]
2.4 全局对象构造/ e$ T4 x( K {, W N* J0 C
# Q) P8 |. N8 }+ Z. Y
2.5 mAIn函数与exit函数的调用
3 ]1 o4 Z* {9 `/ _4 m
8 I7 S- p0 Q5 L3
5 S# k5 } r9 ^1 |# aCMD文件与DSP存储空间
. N0 p" d; Q* k& a1 d' @) |2 ?/ Z, I5 u) S
3.1 MEMORY和SECTIONS指令
c8 \0 z" U! s- U4 D4 {- X0 ?& B' b. M
3.2 程序与数据“段”4 i% g. d" M; Z
! g- H. X. _7 |2 Q! F0 o" j. ]; o" [4
4 Y5 W6 q; }5 m) B z% s2 e0 QBootloader数据流
/ d* f+ J' P' g9 u+ b S' i5 ~2 b& B. a$ \" b+ b$ [$ `) S6 q7 W
4.1 数据流结构8 g0 n* J; f" E: A- |, e* l/ f$ Q
0 l+ _7 ?; D2 s' `$ Q' ]
4.2 16-bit数据流
' l3 p. K& Q1 z& {( T A1 R, u- y
4.3 8-bit数据流* b( E+ m+ q3 u- S+ k+ c
6 w) d; W; f8 k/ _6 f4 [' C7 h( z- d/ n
53 V" ~6 c! Y, l* O ~# a0 L
FLASH擦写操作 —— FLASH API的使用9 y( E% G5 }3 I# U2 o
$ k- U ~0 {. a% q5.1 FLASH操作的重要特点1 H% O5 Z, u0 z
6 e0 K; T$ V, f
5.2 FLASH API使用步骤0 g, |8 `: C0 X7 d
6 Q$ U1 ~8 {0 ~: D/ ?, a) F- U5.3 FLASH API常用函数使用举例9 t( W! {7 W. P$ ]: }- J
- f s" R' }+ h- p
6+ K2 T T/ {3 \0 y9 x1 K
Bootloader设计过程中的9大关键点) p, l# b X+ i' d8 o( I
5 a) [8 f4 X8 `; G6 Z9 l9 n6.1 Bootloader程序在升级过程中不被擦除的实现方法
" P3 L! _2 V/ |6 n4 S) F2 i$ R$ H. C9 O
6.2 上电后先进入Bootloader再跳转至mAIn()函数的实现方法
' E- b8 s% a! S1 @& a: u; V: k n) D* M
6.3 Bootloader程序作为CCS应用程序工程一部分的实现方法
& b2 R L( o" R/ g& m, k4 c2 L# { v+ A+ z
6.4 Bootloader与上位机形成交互式通信
$ G$ }9 x0 x& ~0 H6 D3 a7 V
) V! A' f% @- \! a F6.5 Bootloader程序能够对接收数据校验的实现方法
: l" W" }& z# W
' b, d* [( l" S$ a x( F1 x! t6.6 在数据出错等情况下能够自动重启的实现方法9 Z6 u5 G4 i$ @! v( a3 \+ S
1 W- [) L, p6 J4 i3 M9 Y o
70 ]9 g6 y, G8 B9 U$ K! b
CCS输出文件格式 —— ASCII-Hex、Intel-Hex与Binary-Hex文件
7 p1 C, S [% M
u4 S( u' I- b7 B2 \! J5 H5 M7.1 CCS配置生成Hex文件的方法
4 V. S* Q1 E' Y$ M: d, }# R, l) W) R% o9 Y$ T2 z9 c
7.2 ASCII-Hex
$ ?, T& I! u" I- u( Z: H' ?& `/ Y; s6 x( c! P1 {! A& t5 i
7.3 Intel-Hex: u8 c4 D1 s6 U! @, ^) a* D
) S! b5 E; D+ E3 z: F; e
7.4 Binary-Hex; r- t' N. g) \5 p6 f
3 g5 _0 d4 Q; q/ v* `, R! P" i0 G
( H% f$ m5 U3 i3 p* P" J6 v2 J
+ }# e3 S" k: K: ~' z. l- _& q& g& n! n, _
- U3 ^1 E5 y) a8 e5 H& l
3 CMD文件与DSP存储空间! ~. q) b( D& h& Y, @; ]& w. J
2 C' `1 h0 B g5 Q
CMD的全称为链接命令配置文件。以ROM/FLASH和RAM两类存储器为对象,用户通过编写CMD文件,来管理和分配系统中的所有物理存储器和地址空间。DSP芯片的片内存储器,只要没有被出厂占用,用户都可以全权支配。用户编写完的程序经过开发环境(编译器)的编译,转换为芯片可以识别的机器码,最后下载到芯片中运行。CMD文件就是在编译源程序、生成机器码的过程中挥作用的,它作为用户的命令或要求,将物理存储器和地址空间分配方式交给编译器去执行。9 R) C" D; I5 P4 b& T+ h6 Y
; U) H$ r3 e& Z, |
CMD文件包括两方面的内容:
% d4 Y- z! W: g2 T8 X. c- Y" Y; U8 W) ]% h+ {: N1 L [3 V! i9 L
1) 用户声明系统的存储器资源。包括DSP芯片自带、外扩的存储器和空间,都要一一声明:有哪些存储器、位置和大小。# ]* F1 c+ p6 |, s
4 Z/ G5 q; ~- \/ }' y- n! ^
2) 用户声明资源分配情况。这是编写CMD文件的重点。6 r9 ~; y, n/ h4 C/ l# ~
. y9 L, @$ T. T+ B2 Q7 F3.1 MEMORY和SECTIONS指令$ L; {* |* @* j+ A/ J
& U! ]0 r8 w3 W: X9 \
, V" {& n/ j% r3 u
5 I; Q/ n) ]7 k' Q2 A; s
$ I+ c0 s& { x+ G/ k1 \
C; O9 @$ K- ^8 u/ j5 T. K7 N/ G' i
m7 [( x% _- F: V |
|