DSPRelated.com
Forums

problems with interrupt without DSP/BIOS

Started by Valdir Noll March 6, 2004
Hello:

I am user of DSK6711 using CCS 2.0 and I want to accomplish an interruption
INT4 using only code in C, without using DSP/BIOS to configure the
interrupt vector.

The one that I did was the following:

1) I used the word reserved interrupt

interrupt void my_int4(void) {
...... my code here
}

2) inside of the table of interrupt vector I did, in the position INT4:

  .ref _my_int4

INT4:  B _my_int4
NOP
NOP
NOP
NOP
NOP
NOP
NOP

3) I enabled the interrupt 4 in the main doing:

 CSR=0x100;
 IER=1;
 ICR=0xffff;
 IER=0x13;
 CSR=0x101;

Unhappily the interruption exists physically but it doesn't answer in the
software.

Do you have some ready example what works without using DSP/BIOS? Can they
help me?

Thankful.

Valdir Noll.




Valdir-

> I am user of DSK6711 using CCS 2.0 and I want to accomplish an interruption
> INT4 using only code in C, without using DSP/BIOS to configure the
> interrupt vector.
>
> The one that I did was the following:
>
> 1) I used the word reserved interrupt
>
> interrupt void my_int4(void) {
> ...... my code here
> }
>
> 2) inside of the table of interrupt vector I did, in the position INT4:
>
> .ref _my_int4
>
> INT4: B _my_int4
> NOP
> NOP
> NOP
> NOP
> NOP
> NOP
> NOP
>
> 3) I enabled the interrupt 4 in the main doing:
>
> CSR=0x100;
> IER=1;
> ICR=0xffff;
> IER=0x13;
> CSR=0x101;
>
> Unhappily the interruption exists physically but it doesn't answer in the
> software.

This is not a complete answer, but I would suggest a few changes:

1) Do not 'force' values in to CSR and IER. Use logical OR instead -- otherwise
u
may overwrite what BIOS has put there. For example:

CSR |= 0x100;
IER |= 0x13;

2) Move your CSR/IER code to a small task that runs *after* main. I think there
may
be some cases where BIOS is not fully done initializing until after it calls
main().

3) Also, r u modifying a DSP/BIOS generated .asm file directly to add ur code
for
INT4? Which one?

-Jeff