|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
5 z: E5 F7 ~1 {4 e
本文主要简单记录C6000在启动装载过程和中断向量表的配置。0 @. Z% Q' S2 P d) k: g! |& w/ M
# u* [: j, h' d* U- o. U5 w1. Bootloader
* y2 r( H0 D1 u
- W, L/ C7 f0 w- e( q
, p; v: o( g, z1 w7 q( x
! V) t1 c, p- ?1 V+ ?! M如上图,6 \6 R' N# N! ?; [$ I& V+ A
6 {& U; g/ k- |( }- o, d+ X, n(1)在Device Reset阶段:
% K0 l4 Y8 T& j. a) A( R; S1 W1 ]' C% u5 b7 C' Q1 ^% j* K
设备初始化为默认状态,大部分三态输出都配置为高阻态。; J9 s, ]/ n9 e8 S, @; F9 F
% Q- Q3 f' ~8 r8 N$ z5 n/ @8 Z& L
(2)在CPU Reset阶段:, P! Y! g# @3 c' J7 O
6 H, p$ g3 M* I5 K9 r( Z( P: `从RS上升沿处开始(这个时候,根据HD[4:3]配置启动模式,HD8配置大小端模式,CLKMODE配置输入时钟源,根据HPI_EN配置外设功能),处理器检查启动模式HD[4:3],启动bootloader程序。& Y: Y" i* c) |8 d( @
0 @( ]' }3 p7 M: H8 C' ]2 a; D; aEDMA自动将CE1开始位置的1KB代码拷贝到内部程序存储器的0地址。& C1 H9 @4 ~9 W1 }. y2 q
- H$ c; Y/ K% M; Y
: A) A" i. a' J3 W
" V9 ^6 q5 K8 G! J, g5 N& A
(3)RESET信号恢复高电平,CPU从内存0地址处开始运行程序9 A/ U1 g. Z# d1 C: a \: c7 A
. B" N! m' P+ D. ^' c. k4 h- s0 Y, [* E/ Q' [
2. Interrupt Vector Table(Interrupt Service Table, IST)( N1 q( M% I# x. S; F) h/ _' S
( L$ f" y5 [ f' v
处理器在RESET为低电平时复位,在RESET的上升沿,启动配置被锁定,开始从0地址处执行程序。一旦ROM启动完成(将外部ROM的1KB程序拷贝到内存0地址完成),寄存器初始化为默认值,程序计数器PC装载复位中断向量(复位中断向量需要在0地址处),CPU开始从0地址开始执行,这个地址称为复位向量。% F$ g* M, u0 D6 X- U, s4 ?
# k, I7 t: ]$ B3 B$ R
默认的,中断服务表(IST)也在0地址处。IST是中断向量的一个集合,当CPU中断发生时,PC自动通过中断向量跳转到对应的中断服务程序。每个中断向量都是8个字(WORD)对齐。IST可以重映射到任意的以0x400-byte对齐的位置,但需要修改中断服务表指针(ISTP),在复位时,ISTP初始化为0值,IST首地址与复位向量对齐。
9 |( g) E9 L/ \9 _7 h, [6 p% U. ^* x' T+ w6 A2 Z7 C
(1)创建中断向量表+ ]( V: \7 a3 h( U2 t
% M3 \$ t7 ]7 J1 n6 M
: k3 h8 J4 Z; [: O) c4 N# R& P- Q( `2 ?+ V; r- ~
" @3 V) m% j4 C0 {" G! k! P$ v |
|