This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ISTP (Interrupt Service Table Pointer) register on C6424

Other Parts Discussed in Thread: TMS320C6424, CCSTUDIO

Hi guys, this is my first post here.

I´m trying to configure interrupts on a C6424 but WITHOUT using DSP BIOS. As far as my understanding of the problem goes (after consulting several instances of TI´s online documentation) I need to write the address of my Interrupt Service Table (IST, created in assembly on a separate memory section) to the Interrupt Service Table Pointer (ISTP) register. The problem is: what is the address of this register?

Seriously, it looks like the kind of problem that would be answered with a simple (or blatant) "just look for the right PDF file!" or "google it!" or open the device datasheet, manual, or whatever. But it seems I can find the address of ANY register of the C6424, but not of this ISTP. Where it not for clear references to its existence (such as in "TMS320C64x-C64x+ DSP CPU and Instruction Set", spru732j.pdf) I´d think the TMS320C6424 does not have an ISTP register.

Can anyone enlighten this? I´m not that kind of guy that goes at first asking people on forums - I really made my homework and searched for the info., to no avail.

Regards,

Vitor

  • Hi Vitor,

    Welcome to the E2E forums! Hopefully I can be of help with your first question and get you moving in the right direction.

    Vitor de Paulo said:
    The problem is: what is the address of this register?
    There are a number of CPU core registers which are not actually memory-mapped in the system. Instead, they are accessible only through a special assembly instruction MVC. This is discussed in section 2.8.1 of the 64x+ CPU and Instruction Set manual you referenced (the actual registers are on p34).

    Vitor de Paulo said:
    Can anyone enlighten this? I´m not that kind of guy that goes at first asking people on forums - I really made my homework and searched for the info., to no avail.
    This is a great attitude, and I will reward you with a tip :) The c6x.h header file found in the CGTools install (e.g., C:\CCStudio_v3.3\C6000\cgtools\include) defines all of these registers with C-callable declarations. Once you include this header file you can now access these registers directly. For example, to modify the ISTP you would code out

    ISTP = 0x12345678; // But with a real address containing the vector table

    BIOS normally does this for you, but it is indeed possible to do without BIOS. Note that the other vital interrupt registers such as IER, IFR (and CSR for the GIE bit) can be accessed this way as well.

    I hope that this information helps. I am sorry you had trouble finding this, but if you are interested there is a Submit Documentation Feedback link at the bottom of most PDF files which we use to submit this sort of feedback. Feel free to submit your own suggestions to improve our documentation!

  • Thanks, it was of great help!