|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
DSP/BIOS操作系统启动过程
. H# Y$ ^% i* A4 J
3 J5 a7 X- e! u" y
7 Y! e9 s Y4 ^其实在上一篇中已经讲过DSP/BIOS的启动过程,这里不妨再唠叨一下:2 G3 [& J- K3 A( X u7 p3 M$ D
$ ?5 m$ |, F$ P2 m9 [. g& r0 U# h' |& e+ O1 R7 n
- 系统上电复位,从Flash装载完程序后,首先从C/C++环境入口_c_int00开始执行
- 利用.cinit记录初始化.bss段
- 调用BIOS_init初始化用到的各个模块
- 处理.pinit表,如C++中的全局对象的构造函数就在这个时候执行
- 进入main函数执行
- main函数返回,调用BIOS_start启动DSP/BIOS操作系统9 a" n) o; R6 \0 Y0 ~/ ^
" [2 C( L0 \. [& O, A7 K/ ^# O2 {9 j( l
, j4 m+ e9 `* O& ]. A. J- {
其实除了其中第1步对我们烧写Flash有指导意义外,其它各步骤都是无关紧要的(当然,仅就这里讨论的问题而言)。基于此,这里烧写Flash的思路就是:在系统复位后,程序跳转到_c_init00之前,写一段从Flash拷贝应用程序到内存的代码就好了!
3 J `* J1 T' V* w7 x( D
B b& b* Q; G2 n2 W6 ~0 c$ t迁移到操作系统的Flash烧写
' q7 c- F3 E# g+ Y6 k* W. {) P7 o1 G2 x8 ~7 H
8 N; G: i. j2 c- m; T3 L/ ~& p在之前“TMS320C6713烧写Flash的通用方法”一文中,已经详述了如何烧写裸机的代码,这里只需要对DSP/BIOS工程做很少的改动,就可无缝的将之前的烧写方法用在这里,下面还是按步骤来,主要描述一些不同的地方(这样清晰些):
4 X2 @2 B& k9 @! ~9 g- C+ Q( t0 E
& N4 f4 a4 d5 F7 ~ W
, L7 P; d& ^7 c* [7 W% R: h7 W
2 X7 r$ N. T2 D2 K, B+ h/ ^3 i, R" u, j) z
|
|