Other Parts Discussed in Thread: TMS320C5515
Hello everybody.
I am trying to implement interrupt-driven UART communication on TMS320C5515 EzDSP board and have run into some dificulties.
1) I can't set the INTM bit to 0 to enable maskable interrupts. I can't do it through code only manually.
2) I don't completely understand how interrupt vectors work. I see that a vector is chosen according to the type of interrupt, but I can't understand how they point to a corresponding ISR. When I create an interrupt by setting a corresponding bit manually, it jumps to a memory area like 0xeb0000 and it varies a bit every time I run the programm.
Changing values of IVPD and IVPH changes the memory address I jump to by a larger number, but I still haven't discovered any dependancy.
So, how do I set up IVPD and IVPH registers and the interrupt vector to make it jump to a desired address?
3) Is there a way to combine C++ and assmebler code in one project? I tried the asm("assmebler code") command, but when I use exatly the same commands as are displayed in the disassembly window, it gives a message like "target wasn't built becuse of errors" in the console and the program won't run.
4) How do I place my ISR into program memory? Do I have to define it in some special way, like 'ioport' for peripheral registres or is it the same memory area as Data? Is it possible to create ISR through C++ code?
Finally, is there anything besides the documentation where I can find a detailed description of how things work and how to get them working?
Thank you.