|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
目录' r) Z9 p2 m2 m
& m R# b1 Y+ G4 N5 F
12 R @3 _$ p6 f. {. y" O& T
初识Bootloader8 H5 w* ~& [+ }$ @! ^: g9 o9 [! [
. F: H0 J9 ^& n! s. ?2 |& t. `1.1 一次Bootloader
' n8 q7 `/ R. U+ M
: V/ n) W2 w+ a) @# |; C0 x* E6 h1.2 二次Bootloader- e! W" }% f' e2 n
& y3 U+ S+ W9 ^1 Z% e( P9 R5 R
1.3 DSP上电引导过程
8 N6 p% w& e1 ~( U( O( Z& \+ o7 O' o6 P. ^# b+ W: s, G' z# L0 j
2( z/ @3 E) j% Q$ U
关于c_int00, t+ n6 U9 Y0 o
% E( Z& X- B! u) |1 C0 L+ n) J2.1 c_int00完成的工作
/ f4 {# c5 o. x0 a7 b! N
% [' |. a/ q$ G8 G. p0 x8 M2.2 系统初始化
1 \3 b5 D {! ?' G U3 n$ @- G- ^0 o9 o5 c- m
2.3 全局变量初始化; w4 e9 b, H% Z) n
+ T/ F) D, \# d
2.4 全局对象构造: p1 g/ q) Y+ O$ M
+ q. n+ _, B+ A/ K+ [4 T s2.5 mAIn函数与exit函数的调用
0 L+ o* R% T! B- B, L$ V: x A0 B. U& K9 w/ [3 c& o4 k+ s
3/ e5 m" F) Z3 h1 e8 i
CMD文件与DSP存储空间( X+ X+ a1 h g0 k# B7 C! ^% I1 X
0 V; S! j+ l' l& m3.1 MEMORY和SECTIONS指令( [1 w: K- m7 A8 o6 ]
2 d* Z3 \0 F. E2 b% L! K
3.2 程序与数据“段”
4 p* h0 p2 Q$ m7 Z f
6 Y' q) j9 C, q& j% N8 x4! R# f5 z6 x" w; |/ O
Bootloader数据流, `0 r5 _( O4 {4 u# T
+ W# m: u3 v& y z$ l4.1 数据流结构, O$ \' f7 i/ U! Y" I/ w+ o" ]
, f& v& d! i# W& h2 G5 y4.2 16-bit数据流
! `* j: J& K% K! J* \" v( s# r+ d |7 R- k8 }4 c
4.3 8-bit数据流 c+ V2 }* z9 g8 ?$ `8 }3 h4 ^
i" |9 q0 T7 R h. A2 L/ `
5
& A" I3 ]7 J8 k! [( b. C) \FLASH擦写操作 —— FLASH API的使用
+ E, U/ j8 d/ Z3 u. f5 b$ z, b0 h* t5 s7 J1 G
5.1 FLASH操作的重要特点
( |9 m7 r% W5 T: k/ O
5 R( p# q2 c6 V+ I% j5.2 FLASH API使用步骤
! T3 x" w6 B$ ~' f( ?5 W% }! T& i5 G
5.3 FLASH API常用函数使用举例5 o' o' S; _9 X7 j
. s" b8 a$ V/ K( ^69 h7 I- Q; J7 @+ a* i
Bootloader设计过程中的9大关键点2 F9 q3 h, G3 T' h) w# u) Z
, [5 x( v* L& _2 E/ v
6.1 Bootloader程序在升级过程中不被擦除的实现方法" ^ q$ q# g x. [8 f" v
6 d* x1 d; I+ q7 x) N6.2 上电后先进入Bootloader再跳转至mAIn()函数的实现方法
% ~% r- L) R# W! O' |1 X( z
* J0 {( R* N5 Z) f6.3 Bootloader程序作为CCS应用程序工程一部分的实现方法
% V. c$ B3 A- N/ E6 I3 G& H# z! G, g" V6 \- \
6.4 Bootloader与上位机形成交互式通信
; x1 M8 O5 ]' I9 M$ U6 @: ~; ^3 _5 n
6.5 Bootloader程序能够对接收数据校验的实现方法* R4 r2 I! u1 b
, l3 O8 J/ P5 ^6.6 在数据出错等情况下能够自动重启的实现方法
0 n1 g) a( k; H6 E& Y+ p' ]& _" A3 V$ h& x0 S9 _) b
7. Z# c, s; y4 s+ V' ?2 Q
CCS输出文件格式 —— ASCII-Hex、Intel-Hex与Binary-Hex文件
7 \4 u2 e6 U4 l3 ^1 ?7 J$ ~0 o) k& `
7.1 CCS配置生成Hex文件的方法+ r. d- _0 K6 W2 P7 ?' L+ G" } o
2 ~, Z# V) B n/ O: d
7.2 ASCII-Hex
. z7 {& h! v2 E; Z N$ Y ]3 ?$ f, k$ {
7.3 Intel-Hex( M; g4 R$ ~7 B. D8 z. r
) n4 d' ~2 ~9 v
7.4 Binary-Hex; v/ }$ h) Z. d( S4 h3 _; Q
1 _9 ], r; Z, n% h3 S2 L I
1 Q& n; T. N8 o+ K8 ~) O
% y5 Z0 B( h3 d9 R5 F: U8 D5 G( ]7 u9 O* V% Y9 |5 V
& h6 T' }6 ?: C8 @# \# P
3 CMD文件与DSP存储空间
' W7 {# u( F2 m+ D9 P* }3 |( [: ]" x5 i7 Z/ `
CMD的全称为链接命令配置文件。以ROM/FLASH和RAM两类存储器为对象,用户通过编写CMD文件,来管理和分配系统中的所有物理存储器和地址空间。DSP芯片的片内存储器,只要没有被出厂占用,用户都可以全权支配。用户编写完的程序经过开发环境(编译器)的编译,转换为芯片可以识别的机器码,最后下载到芯片中运行。CMD文件就是在编译源程序、生成机器码的过程中挥作用的,它作为用户的命令或要求,将物理存储器和地址空间分配方式交给编译器去执行。" w7 f0 f8 \% j0 E# e
& K+ u! Y1 ]1 K9 k9 t( ?
CMD文件包括两方面的内容:# ^9 t6 \2 s3 T0 b& O Y
1 {* ^4 V& R) R+ k4 A' }1) 用户声明系统的存储器资源。包括DSP芯片自带、外扩的存储器和空间,都要一一声明:有哪些存储器、位置和大小。
6 ^( I) U# m- t9 d8 x" l
& _ h. F3 L. a* r. D3 p2) 用户声明资源分配情况。这是编写CMD文件的重点。
, y/ ?: P1 ^# j0 W2 ]4 V: J# P0 U
0 @4 s N; m0 f8 i. R3.1 MEMORY和SECTIONS指令' j3 k# z5 n) g3 c- E
$ z( B( I: j' c9 D. J/ m: z9 Y
$ b$ }1 p- k1 s- c+ f
/ c! g& n+ N% l+ ?
& W, _. |. A% J1 m9 A- t
# }* k' X& R/ {2 G# i9 E7 P3 z' O
. h* B, I, W1 L w, l
1 u# `1 } J, x* ~+ J' i |
|