EDA365电子论坛网

标题: TMS320C6000烧写Flash过程中的中断向量表 [打印本页]

作者: mytomorrow    时间: 2019-10-15 14:25
标题: TMS320C6000烧写Flash过程中的中断向量表
TMS320C6000烧写Flash过程中的中断向量表
& E, S+ G. T9 N  J0 l; @0 S3 U7 A/ K3 Z/ F* f
. S* |* u: b, w' U
就前面的烧写方法中,请思考一个问题,程序是从何时何处跳转到main函数执行的?4 F* V/ ~, O( o0 r: @

  `, |' z  t, P5 O如果不烧写Flash,我们都应该知道是在vecs.asm中2 k3 p; v" c. i& K6 y
' w/ k$ w) x$ L( {9 b  Y- J
          5 [. _5 _: T) t3 V* E
5 @! K  c9 y; @( @
_vector为中断向量表的首地址标识符,系统复位后默认转入执行复位向量(复位向量始终保存在RAM的0地址处,这也就是为什么之前提到系统硬件复位后从0地址开始执行)。" B  U$ I+ U7 [% \+ Z  _
3 x# O1 ]3 b; u" S  N
不烧写Flash,只要在cmd文件中将.vectors段设定在0地址处,然后调用c_int00,跳转到main函数执行。
) t. q# d+ Q6 C7 f3 F  Z% h. C8 \
5 Y6 }. @& V' T: F! i使用上面的方法烧写Flash,则是在copy table完成之后调用c_int00。两者跳转到main函数的机理是一样的。
$ V5 ?+ M0 ?6 L5 B7 r1 d) F* {. t2 J* Z7 O- z$ A
但是在烧写Flash的时候,要注意的一个问题就是:中断向量表存放在哪里?4 q" {' u) M  a

! E: R7 x( h, Z  i' e, C! y前面烧写Flash的时候,其实有一点没有提到:当系统调用(比如定时器中断),如何才能找到(定时器)中断向量的入口函数?
  u, f& h+ N) J2 Y: D' t
1 g, t8 B8 M2 _/ X' O/ q因此,前面烧写Flash的方法在不做修改的情况下是无法执行中断服务程序的。
4 @0 v( E  B+ {) x: j- h, K  u- i( n  W, l8 o3 @$ x8 |9 f
修改方法有2,且听一一分解。' X+ P1 V8 G" K# B4 }

2 l* a! v& w9 `* u* v6 v
; `1 D/ M4 H# Q5 L& |6 @方法一7 b0 m; c: x6 n0 H$ Q

: B" x4 D& j6 ^5 |) N5 `2 @在进入main函数之后,重定位中断向量表的位置(关于向量表的重定位参考:DSP TMS320C6000基础学习七 —— 认识一下Bootloader与VectorTable
. b( \+ ~- c/ E* C) K- C2 S' Z9 m: D& \  t; Z7 [
中断向量表的重定位必须在使用中断之前。7 V5 Q  o; J' Y) r. |' [' t
+ G. Z. w2 n9 V5 Z1 ?4 l
% B) w2 l" U, K2 G0 {

% s5 s( f5 }# B+ F. r/ w! p  Q  N
$ N* Q4 J1 S1 {2 u8 c方法二1 y) Z- s& _0 M9 j: g  E5 B

: E& U2 d+ C% J4 C4 |修改汇编文件和cmd文件。基本思路是:把中断向量表保存在0地址处,在向量表之后存储二级Bootloader,通过复位中断跳转到二级Bootloader。
& z+ ?& Z: A, F% j: z0 u! W/ p5 ]8 h" ?% w0 _3 {9 O$ m8 S2 }4 @% w
& K" K: k% ^( d

  }: ]* Q4 Q  _
- ]$ z% V6 F- `( G  9 F% J$ J9 m- S8 h
3 p6 n3 v, Y2 \2 a& I9 h

, _& \' k% [+ n3 K7 s6 i% t    两种方法都做过测试,都是可行的!
) g3 V6 e3 o5 ~7 ^: u

. O  Y; }- u' ]) y2 r0 @5 B) q
- T$ z6 Q3 P  U" E' S; l
+ n1 u; X: J9 x0 u/ I: b! P

7 l6 ]& J! |9 d- n5 n! {! K
$ c3 r! a3 n8 b- c" O
& M5 i3 H! _+ U

( a: e; Z7 ~: j$ ]3 }! F

( z; t" P/ F% ]. ^' T: ?% [& [- q$ u/ p

作者: wu68aq    时间: 2019-10-16 23:13
TMS320C6000烧写Flash过程中的中断向量表 。




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