Здравствуйте!
Пишу программу под 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;
|