|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
DSP/BIOS操作系统启动过程 K$ ~- n4 Z$ T8 N
, h) G+ A0 k, A2 J( V7 m( R; O, C+ B/ L4 ^; h4 B
其实在上一篇中已经讲过DSP/BIOS的启动过程,这里不妨再唠叨一下:
7 P+ ~- Z5 F7 T; G6 y) B; I$ J! Z; M- C4 Y( U; o
7 [1 y4 R0 `5 o3 }! ]8 W- 系统上电复位,从Flash装载完程序后,首先从C/C++环境入口_c_int00开始执行
- 利用.cinit记录初始化.bss段
- 调用BIOS_init初始化用到的各个模块
- 处理.pinit表,如C++中的全局对象的构造函数就在这个时候执行
- 进入main函数执行
- main函数返回,调用BIOS_start启动DSP/BIOS操作系统* A- |) u9 v- Z3 e1 x
" u( g* P ^3 p# g) {
2 K' i9 K/ Q Y2 C+ l
4 ]: Z) {0 Q" r' K1 q/ X+ `& p, m其实除了其中第1步对我们烧写Flash有指导意义外,其它各步骤都是无关紧要的(当然,仅就这里讨论的问题而言)。基于此,这里烧写Flash的思路就是:在系统复位后,程序跳转到_c_init00之前,写一段从Flash拷贝应用程序到内存的代码就好了!/ [3 {$ f7 M! E- |6 V" R. m5 V( m5 s
' m2 `5 \/ h8 e4 i0 v0 ]- J* L' y迁移到操作系统的Flash烧写
! z5 ]7 d& v: V9 X1 P4 o* W7 {. n3 Y O ] C
; P; |) S2 F6 X2 _1 I) U8 ~$ P
在之前“TMS320C6713烧写Flash的通用方法”一文中,已经详述了如何烧写裸机的代码,这里只需要对DSP/BIOS工程做很少的改动,就可无缝的将之前的烧写方法用在这里,下面还是按步骤来,主要描述一些不同的地方(这样清晰些):
0 k+ E1 z6 ]( f* A9 b2 J0 h
2 L1 q8 ~% R- \. ~9 g& [, p& |$ v
8 V: ]) E$ b \4 d* j9 f3 C( h- j2 N4 v
; C/ f/ e" t! J8 ^4 E9 c7 m! e" E |
|