Помогите разобраться пожалуйста. Есть процессор TMS320C6416 - основная задача по прерываниям NMI и EXT_INT[7] считывать данные по EMIFA, считать и передавать по EMIFB. Весь счёт идёт в обработчиках прерываний. Достались мне файлы
vectors.asm
VEC_ENTRY .macro addr
STW B0,*--B15
MVKL addr,B0
MVKH addr,B0
B B0
LDW *B15++,B0
NOP 2
NOP
NOP
.endm
.global _vectors
.global _c_int_
.global _c_int00
.global _vector1
.global _vector2
.global _vector3
.global _c_int04
.global _c_int05
.global _c_int06
.global _c_int07
.global _c_int08
.global _c_int13
.global _c_int14
.global _vector8
.global _vector9
.global _vector10
.global _vector11
.global _vector12
.global _vector13
.global _vector14
.global _vector15
.ref _c_int00 ; C entry point
.sect ".vectors"
.align 32*8*4 ; must be aligned on 256 word boundary
;----------------------------------------
RESET: ; reset vector
mvkl _c_int00,b0 ; load destination function address to b0
mvkh _c_int00,b0
b b0 ; start branch to destination function
mvc PCE1,b0 ; address of interrupt vectors
mvc b0,ISTP ; set table to point here
nop 3 ; fill delay slot
nop
nop
_vector1: VEC_ENTRY _c_int_ ;NMI
_vector2: VEC_ENTRY _c_int_ ;RSVD
_vector3: VEC_ENTRY _c_int_
_vector4: VEC_ENTRY _c_int04
_vector5: VEC_ENTRY _c_int05
_vector6: VEC_ENTRY _c_int06
_vector7: VEC_ENTRY _c_int07
_vector8: VEC_ENTRY _c_int08 ; EDMA_INT
_vector9: VEC_ENTRY _c_int_
_vector10: VEC_ENTRY _c_int_
_vector11: VEC_ENTRY _c_int_
и файлик int.cmd
MEMORY
{
VEC : origin = 0x0000000, len = 0x00000200
TEXT : origin = 0x0000200, len = 0x000FFE00
}
SECTIONS
{
.vectors > VEC
.text > TEXT
.bss > TEXT
.cinit > TEXT
.const > TEXT
.far > TEXT
.stack > TEXT
.cio > TEXT
.sysmem > TEXT
/* .bss > ISRAM
.cinit > ISRAM
.const > ISRAM
.far > ISRAM
.stack > ISRAM
.cio > ISRAM
.sysmem > ISRAM
*/
}
С DSP/BIOS никогда не сталкивался, моя задача - обработка данных.
Будет ли всё это работать? можно ли уже переходить к содержимому обработчиков прерываний?
Спасибо.