找回密码
 注册
关于网站域名变更的通知
查看: 1332|回复: 8
打印 上一主题 下一主题

DSP 远程升级 / Bootloader设计指南(二)介绍一下c_int00

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-29 15:24 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
目录
, f6 ~' E. Z. i) X! e3 Q6 l) ?2 D4 `
1  u3 Z4 m) s8 F! J
初识Bootloader
, C6 o; \$ x4 v: @

& h; M5 l7 V8 w& k, P9 I* Q1.1 一次Bootloader
! f) W6 x- X6 l3 }, z7 b& M# w6 A/ K1 V
1.2 二次Bootloader) A1 f4 T- S5 B$ U& }" y
/ c* N; U0 x. O* p5 b/ C
1.3 DSP上电引导过程
3 |- O, P) p4 M  l  h8 W/ E6 K$ K- d; B! Q1 _. j( u5 S+ ]' {+ X& j
28 S' ^4 i/ I) C' j8 L
关于c_int00
( y3 N6 t) T1 N+ a9 T

. y% F* s$ n' I/ k( [6 |$ I2.1 c_int00完成的工作5 N) f' Z- Y; s7 t* {

/ j6 e; X0 ~  s6 P2.2 系统初始化
8 a9 c  N2 Y6 e  e) a% e9 l
* [6 S! K9 q6 F5 K* G% E, m1 l2.3 全局变量初始化% }7 ]1 w- [2 _2 T
  d- \. L8 c4 a. ~9 c8 v
2.4 全局对象构造( h& Z- \1 q0 }2 t8 p8 g

+ ^0 r* ]  y0 ?! ~2.5 mAIn函数与exit函数的调用) L/ c: s# ~; J( V) M! G. Z  T
0 L4 @( ]% p  G
3
. w$ Y: S4 V$ x1 F3 Q; QCMD文件与DSP存储空间
- r; g. T1 z" L' X3 Z% ^
1 R+ a& W) J% f* N" |  o
3.1 MEMORY和SECTIONS指令  {' H. _4 c/ ^4 ]2 y
1 L# |# u6 F' O1 [9 K1 i5 x7 v  V
3.2 程序与数据“段”
' G0 W- i+ n, V% l
5 Y8 n9 x3 `. Q6 W6 u( q6 M. a; f4# ^6 r2 V4 E# d; j* S
Bootloader数据流

) f3 T5 s' R. T, N+ q, z2 R% B
9 U( ~: k! u  e' ^. p: v4.1 数据流结构8 d7 S# N1 Z9 ]0 J  d5 j5 B' t
, y5 Z; B: P+ M& b- z8 M
4.2 16-bit数据流4 V5 Z, d3 t; p
, s1 d: m' j2 w$ e$ K& m# M
4.3 8-bit数据流! [' J, l5 P7 g; s; b
# x8 X1 w- k) f. |
58 w+ t6 Q) S. q4 j( l- b1 y
FLASH擦写操作 —— FLASH API的使用

4 p, n' @- e. _8 w9 H% L
* F  j5 Q( U3 a9 V0 y+ v! R/ c5.1 FLASH操作的重要特点4 L, r0 c, B8 a8 b

4 d- g7 y, ]  ?: \9 t6 J5.2 FLASH API使用步骤
! N7 W( L2 x7 b6 s! U% j
# E3 o% l; j& e5.3 FLASH API常用函数使用举例' i6 f1 |& P) l& J8 J% @

5 z; J# V' D! T6: f# ~! E) v! c7 C
Bootloader设计过程中的9大关键点
5 x- p* R8 f% i; X2 _

2 c, a) o. ?4 D) T7 d/ T6.1 Bootloader程序在升级过程中不被擦除的实现方法$ c/ R  p3 w8 u, U0 h2 A7 d$ N' l6 B; f

$ A" {4 x6 ^, o: E5 b% W: j* T6.2 上电后先进入Bootloader再跳转至main()函数的实现方法
6 i; k  F# L% s# l3 v3 _5 }3 z+ ?9 A( j8 T4 @9 Z& ~/ \
6.3 Bootloader程序作为CCS应用程序工程一部分的实现方法/ @8 T& ~* O% I$ A4 h1 a
  z3 W8 v6 z0 `9 _$ O( Z
6.4 Bootloader与上位机形成交互式通信
+ S- t. ^0 _) W9 d& O0 b7 I# E3 O7 F
  w" b6 c- V" p  J; q6.5 Bootloader程序能够对接收数据校验的实现方法
9 W0 }( E7 U% \7 G' j4 s$ s. q! d% [' Z$ w
6.6 在数据出错等情况下能够自动重启的实现方法4 C: f2 A$ |# o+ H

* \) \' G7 n3 N76 {# j$ k9 ~2 u7 o
CCS输出文件格式 —— ASCII-Hex、Intel-Hex与Binary-Hex文件
8 {6 g# }9 r( j6 {
! e/ P; ~) r( Y6 T' y
7.1 CCS配置生成Hex文件的方法
% s' `! _2 S; u' Y/ J  g4 z2 s- ~9 q" t
7.2 ASCII-Hex
0 D1 p* x" _8 Q& e- D6 |! B7 J8 h! }& b4 ?6 `5 c' m1 m
7.3 Intel-Hex
$ B  k& u; `/ J# w, ?$ L2 b
4 l; N! P8 `- X8 n  t# v4 G- G7.4 Binary-Hex- T' w) q: u. X/ S( p* }4 K

9 [. i5 L& m) i) y. w
/ \* Q9 n. W, _4 y  k7 P1 j6 u
+ J" w* e' `9 h3 u3 y6 C4 X) n& R) e. S2 Y6 z/ p0 ]
2 关于c_int004 U# V* [$ Z2 x5 T/ H, t
$ Y# \- w8 g. U7 t, P& U
“c_int00在跳转至main()之前都做了些什么”
3 v8 ~4 h" G6 n" m% \1 W; Z  l/ c+ J& ]' t' E0 ^# v0 P) ~7 L# |
在设计Bootloader时,非常有必要对c_int00函数进行全面了解,因为通常会对它进行改写。2 v$ O* W. w( i& H6 s+ q
; d+ W7 g' m$ o0 }
c_int00(也作_c_int00)是C/C++程序初始化代码的入口地址,完成建立C程序的运行环境。它是运行支持库(如rts2800_ml.lib)中的一个重要函数。  A' e: o6 P" K% R

: |+ X: g/ F/ |DSP上电时,由Bootloader负责引导至c_ini00,具体引导过程见1。. @2 l# w2 j) k' G' B8 u  z
  [- W0 a* w- k2 K3 Q( f, P
2.1 c_int00完成的工作
. N1 Z: S/ [8 s& p2 [# @& ?/ o
& [. s$ c) v0 P1) 定义系统栈.stack,并初始化栈指针,配置相关寄存器
+ Q3 \$ [! |$ V
. P8 i" T1 g9 t$ k" p& }' S6 q! G( R0 T2) 初始化全局变量(.cinit)
, z# N  B. a4 _6 R; a) q. R: I4 ]& o* e& y5 l1 I( h
3) 若使用C++,还会完成全局对象构造(.pinit)- u: I, f  l1 {
! J8 Q* x, g2 Q2 X" W! Z
4) 调用main函数运行C程序
, X- o9 L$ V, f/ H: c+ b  @6 p& I& r9 E* y! j( |
5) 当main函数return时,调用exit函数
3 V/ [6 I4 X% P) V! a* X9 l
' \! ~8 _$ o6 d0 y用户可以对c_int00函数进行修改,但修改后的函数必须完成以上任务。
( J' p0 r: @' S+ R% x
7 R- C& F% `; ]+ z" C) l2.2 系统初始化/ t9 n& `0 F# H7 B

  b& {8 @: u7 g" F在TI官网找到了rts2800_ml.lib对应的boot.asm源文件,其中核心内容为c_int00函数,其中关于“定义系统栈.stack,并初始化栈指针,配置相关寄存器”等系统初始化的部分如下% g# W/ r1 ^' e' @' l( S0 L

, Z2 e% i8 v3 \; V4 L
游客,如果您要查看本帖隐藏内容请回复
, |* t) f+ E6 h- M
! Y; E' X& A' z2 ~# \
  |- o$ n4 h/ s3 R$ F2 W

该用户从未签到

9#
发表于 2020-4-29 13:24 | 只看该作者
DSP 远程升级 / Bootloader设计

该用户从未签到

7#
发表于 2020-4-23 15:14 | 只看该作者
想看看内容5 y* J* ?2 k5 j, B& R; l. g) U
  • TA的每日心情
    难过
    2024-12-8 15:00
  • 签到天数: 157 天

    [LV.7]常住居民III

    5#
    发表于 2020-2-22 14:30 | 只看该作者
    讲解透彻,值得收藏
    " E. P6 X, Y; X

    该用户从未签到

    4#
    发表于 2019-10-8 21:58 | 只看该作者
    谢谢楼主分享7 P. T! G1 }* s

    该用户从未签到

    3#
    发表于 2019-10-8 00:21 | 只看该作者
    很详细的介绍,非常感谢!
    # n7 F$ t, x2 V2 L  t# B: ^
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-26 04:45 , Processed in 0.171875 second(s), 28 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表