EDA365电子论坛网

标题: DSP TMS320C6000基础学习七 —— 认识一下Bootloader与VectorTable [打印本页]

作者: mytomorrow    时间: 2019-10-14 15:08
标题: DSP TMS320C6000基础学习七 —— 认识一下Bootloader与VectorTable

( f) q) Z: o3 w* \. I* \本文主要简单记录C6000在启动装载过程和中断向量表的配置。
: ?- _; {# K' l% v( d$ ^* X1 F' g  z1 x9 A* n
1. Bootloader2 A5 n* y; W) V, C
+ o3 \' s7 I1 T1 E

$ H& }) V1 j  r0 D
" N2 O0 M% F* C9 E) L# J如上图,
' _$ [' A# X. b; x7 p2 ^/ {& H, J6 Z& s* J' Q+ J. L0 N
(1)在Device Reset阶段:' @( o/ `% v* c- i8 T

1 W2 d6 s1 [# A: s. }: N6 o" v7 E设备初始化为默认状态,大部分三态输出都配置为高阻态。
. H& k! p# J: r
# M8 C, V" x! T3 @) O, f2 N4 z+ u: C(2)在CPU Reset阶段:$ P. G. j; o, ?

. Y* J- K0 t& i- |* T7 P8 g. @从RS上升沿处开始(这个时候,根据HD[4:3]配置启动模式,HD8配置大小端模式,CLKMODE配置输入时钟源,根据HPI_EN配置外设功能),处理器检查启动模式HD[4:3],启动bootloader程序。
$ g: L9 z' f( T' c& _& G2 X! c, P  R* i# F9 g
EDMA自动将CE1开始位置的1KB代码拷贝到内部程序存储器的0地址。
0 W: B0 u$ K- k. Y
( Y1 c( P, ?) A, c- [9 G
, [- V+ S( q9 @$ ^" ]1 `: [+ Y
; B) I" y5 \6 u8 v9 [! p; R+ w
(3)RESET信号恢复高电平,CPU从内存0地址处开始运行程序
# ?- ~" P# d" K6 z/ k; t4 V; w! \3 v; {6 Y% ^1 S, J  [
: G" E9 z8 h- d2 ^; a
2. Interrupt Vector Table(Interrupt Service Table, IST)
, ]4 U  G% n5 Y8 r( p& r6 V5 o

) e& h4 t! j- G% f7 w9 t4 {0 i  i% C        处理器在RESET为低电平时复位,在RESET的上升沿,启动配置被锁定,开始从0地址处执行程序。一旦ROM启动完成(将外部ROM的1KB程序拷贝到内存0地址完成),寄存器初始化为默认值,程序计数器PC装载复位中断向量(复位中断向量需要在0地址处),CPU开始从0地址开始执行,这个地址称为复位向量。6 U  R2 ^  z" B  I- T4 ~
; X& j7 C3 M: x9 t
        默认的,中断服务表(IST)也在0地址处。IST是中断向量的一个集合,当CPU中断发生时,PC自动通过中断向量跳转到对应的中断服务程序。每个中断向量都是8个字(WORD)对齐。IST可以重映射到任意的以0x400-byte对齐的位置,但需要修改中断服务表指针(ISTP),在复位时,ISTP初始化为0值,IST首地址与复位向量对齐。
) |) g* D& v* @& S& d! Z3 O6 t# h0 L" \. L/ H
(1)创建中断向量表6 G7 ^; ?* O7 U1 o
& ], ~' [( ?6 \- N5 X6 h8 l  k! n  B
1 Y* g6 w: w0 B7 v

" E; @6 `; e' J0 m
3 z; e  d$ ~( B; ]6 c# h
作者: Demyar    时间: 2019-10-14 20:57
认识一下Bootloader与VectorTable。
作者: zengyu2019    时间: 2019-10-23 10:00
谢谢分享,学习
作者: tvrgt    时间: 2019-11-28 20:18
学习学习学习




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