EDA365电子论坛网

标题: DSP 远程升级 / Bootloader设计指南(三)了解一下CMD文件与DSP存储空间 [打印本页]

作者: mytomorrow    时间: 2019-9-30 09:39
标题: DSP 远程升级 / Bootloader设计指南(三)了解一下CMD文件与DSP存储空间
目录
' W& l8 D) u8 [- ^. J1 [$ F3 S3 m
1
# H" r2 Q1 A1 @3 |4 m3 t初识Bootloader
) X2 ]3 M8 x* p' X1 ?' ?& q- ~" Z, f

# d9 K0 T9 Q) H5 y- c' v: P4 J9 i1.1 一次Bootloader1 P* N! b8 o; r

3 j& D# [6 a6 z0 B" O  o1 r1.2 二次Bootloader7 B* z& Y' E  E3 y& G
& k: u( ]6 p7 \/ `7 A& Q3 ^
1.3 DSP上电引导过程8 X& _- I- K. b- _  Z/ m0 o
  A( e. p  I) P  q. y/ N2 S
2/ i) Q3 Z% }0 P4 ]
关于c_int00

9 M: S! x; A6 |. X7 V# H
* E: k: A3 H( `: Y) n2.1 c_int00完成的工作
8 ]. j5 n8 W" ^) C1 Y
% R/ x" z5 B( o2.2 系统初始化
# n) B2 ]! r. [3 B; @. N& V! k
6 T' w+ _8 }- @2.3 全局变量初始化3 c+ N; C5 O6 ], [# |
6 F" H0 b) H# j6 c9 v' L
2.4 全局对象构造( E8 J3 S4 e$ W" Z: l

6 F% m$ C+ T5 ^- f5 j: p) U' z2.5 mAIn函数与exit函数的调用
4 t$ y( P- \) {7 |
3 |) m' y& H% }/ X& [4 c' I" ^3 x' D3
+ j+ u2 W/ o$ `5 SCMD文件与DSP存储空间
* p% w4 k/ H/ Q% d8 n0 P! L; i( N

) j$ a# W8 l1 P' W. ~& ]3.1 MEMORY和SECTIONS指令7 }! R0 u6 K+ S: {5 v# y' e& b! O
" v8 k8 z( |6 h- M6 O% d0 `
3.2 程序与数据“段”
$ V0 u7 y& Q2 O; ]. Y3 j5 p  @, l0 s
4
& \# F. p. e. {Bootloader数据流
) d- z5 U  x( j6 r# k- A1 ~% B; c
' C; N3 O4 p$ q8 Y9 Z% T
4.1 数据流结构
4 K; S% s$ W* n3 z# c3 ^8 ~* J
/ D$ e' B& r  }# H6 a9 R4.2 16-bit数据流( e/ o4 j1 f% n. o' N" A
) ?4 k1 {# H# V+ f( M1 e
4.3 8-bit数据流
$ J# I: m  P! v, T
) t& j9 w# K, H" Z% V5 o& Q59 q8 _1 P5 d2 A; e+ g
FLASH擦写操作 —— FLASH API的使用

5 f0 s" a' s' ]6 S) j: G7 T( E7 R4 q1 V
5.1 FLASH操作的重要特点( l% b/ a4 w6 R, _5 d

/ |" j9 Z; Q: `8 A" ]* \" t5.2 FLASH API使用步骤
8 ^; w/ R4 G) |* [9 g6 {. r
6 s1 r4 a/ [& _* q5.3 FLASH API常用函数使用举例
" y# A  `% a" B  h, _1 |
. ]2 J3 v3 K3 O9 R4 y5 [3 l- R& g3 y7 \6
* c) W) {# o7 r: uBootloader设计过程中的9大关键点
! I5 A1 X2 P* w+ p  p+ d5 V
9 J8 J4 O+ l4 L
6.1 Bootloader程序在升级过程中不被擦除的实现方法# B0 f! F% x" G% l8 S2 F
/ h9 a/ t7 j/ a9 w4 B" U
6.2 上电后先进入Bootloader再跳转至mAIn()函数的实现方法
, x! r4 `5 P6 a6 l% r/ E6 {
  z; `& n$ X* V% k  k" F6.3 Bootloader程序作为CCS应用程序工程一部分的实现方法0 Q$ Y6 K6 r$ X' ~! m) ~/ w+ n$ h
2 e) w/ V" x# w# P1 m
6.4 Bootloader与上位机形成交互式通信
; Y# p; u8 w7 a0 J& h* W0 X' n4 \+ }, ~# `# T
6.5 Bootloader程序能够对接收数据校验的实现方法6 j$ ?( Q1 O7 L

( Q- H' T( k7 t* T; }# z" U6.6 在数据出错等情况下能够自动重启的实现方法
( i3 |% a7 E+ B0 h
' t  J. c2 M5 Y% n) r& s7
* f. X- m+ {7 r7 M- f5 |CCS输出文件格式 —— ASCII-Hex、Intel-Hex与Binary-Hex文件
+ J0 B8 m1 X, [, I8 m, p, r

7 K& x& l; Y( Z. d+ Q/ a  t7.1 CCS配置生成Hex文件的方法; e+ O+ m1 l& |/ L% J6 F# a3 _
; ~3 a3 o# H9 ]4 q" L
7.2 ASCII-Hex
" E( a! B5 [3 Y7 ]
6 T) Q8 P! S& V  e7.3 Intel-Hex
0 b# a" D2 ^6 z8 ]% p) [0 _; `" K( K* S, u1 s8 J' h& A( a
7.4 Binary-Hex3 f& ]- {/ d1 ^- p& J; V
5 P+ L8 u0 r8 ?
4 [+ u2 L5 b+ Q+ S# C5 z
4 b4 q* z( ]  W
" }/ @% y/ s4 Z$ h. C2 q# Z

0 p6 r- E9 T) |3 N1 [% v5 `3 CMD文件与DSP存储空间
% O8 \; Z, H9 M7 w4 w7 X2 ]' h7 h; |8 b; V8 y. H
CMD的全称为链接命令配置文件。以ROM/FLASH和RAM两类存储器为对象,用户通过编写CMD文件,来管理和分配系统中的所有物理存储器和地址空间。DSP芯片的片内存储器,只要没有被出厂占用,用户都可以全权支配。用户编写完的程序经过开发环境(编译器)的编译,转换为芯片可以识别的机器码,最后下载到芯片中运行。CMD文件就是在编译源程序、生成机器码的过程中挥作用的,它作为用户的命令或要求,将物理存储器和地址空间分配方式交给编译器去执行。
' {* s& O) r* O& L( I: b* o: |
& ]1 q$ t8 O* l8 V3 I+ [5 _CMD文件包括两方面的内容:/ l! A5 X9 v$ O1 [2 Z8 T4 j

' T  s9 V- e; j5 h' a+ R1) 用户声明系统的存储器资源。包括DSP芯片自带、外扩的存储器和空间,都要一一声明:有哪些存储器、位置和大小。
0 J2 v+ |- p+ {7 H+ S1 c$ d0 H- d" v3 o1 o" b, u7 t
2) 用户声明资源分配情况。这是编写CMD文件的重点。" p& E4 V, B$ ]& U  z" Y  e
5 f. z) x6 C; L8 \  k$ k
3.1 MEMORY和SECTIONS指令
* ?( w/ M( |9 ~$ c4 h
: T& b1 o& Y0 @. m! D& \' ]0 k

# o5 x* O9 J5 J+ K/ \! ^
8 \% E* @' a6 _& V1 P# f( U

8 T+ u* y! e6 u# d& h8 F( ~8 e
8 r+ d" u6 ^" Z8 ^, b6 c
0 t3 M) }# i) D, t

3 h3 o5 F" K7 P  A* p+ g6 s) n
作者: lienmalianNW    时间: 2019-10-7 21:36
cmd文件对于DSP来说太重要了,谢谢分享
作者: lienmalianNW    时间: 2019-10-7 21:55
cmd文件对于DSP来说太重要了,谢谢分享
作者: 金木    时间: 2019-10-10 09:22
谢谢楼主的分享
6 ~0 {9 D1 T( o+ K0 n1 E
作者: 依利达    时间: 2020-2-22 14:33
讲解透彻,值得研究
* A$ @( _6 h5 X; `: F, v




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2