Здравствуйте!
Пишу программу под omap5912.
Хочется задействовать IRQ прерывания (10, 11)
для майлбоксов.
Как их разрешить то.
Как их програмируют-то? Буду благодарен за любую
информацию и особенно за кусок кода.
Я делал так (CCS):
Естественно, что нихрена не работает при
отправке сообщения из dsp в mpu, хотя в
обратном arm > dsp как ни странно работает.
cmd:
.vector {} > INTERNAL_SRAM
vector.asm:
.global _c_int00
.global _c_intIRQ
.global _c_intFIQ
.sect ".intvecs"
B _c_int00; reset interrupt
.word 0; undefined instruction interrupt
.word 0; software interrupt
.word 0; abort (prefetch) interrupt
.word 0; abort (data) interrupt
.word 0; reserved
B _c_intIRQ ; IRQ interrupt
B _c_intFIQ ; FIQ interrupt
void interrupt c_intIRQ(void)
{
Сюда почемуто не заходит, ходя по идее должно бы
...
INT1_ITR = 0x0C00;
INT1_CONTROL = 0x1;
}
//так инитил
asm(" MRS R0, CPSR");
asm(" BIC R0, R0, #0xC0");
asm(" ORR R0, R0, #0");
asm(" MSR CPSR, R0");
INT1_MIR = 0xDFFDF3FE;
MPU_L1_ILR10 = 0x00000002;
MPU_L1_ILR11 = 0x00000002;
INT1_CONTROL = 0x1;