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.

StarterWare startup.c vector table in OCMC RAM

Hi,

I Probably need a TI expert. I use the StarterWare startup.c file. As the vector table is not really at the end of OCMC0 RAM I have tried to place it right to the boarder (at 0x4030FFC8 to 0x4030FFFF). After this change my application does not run as before. I just changed the AM335X_VECTOR_BASE from 0x4030FC00 to 0x4030FFC8. What I can see ist that the table is correctly copied to the new location. Are there any limitations for the use of code space close to a memory boarder? Anything special for OCMC0 RAM?

Thanks and best regards,
Patrick

  • Hi Patrick,

                 The vector table will start from the address you mention. So if you are pointing to end of OCMC RAM, it wont have space to keep the actual vector table.

                So you need to give 1k space before the end of ocmc ram which is what is configured as default in StarterWare package.

    Regards

    Baskaran

  • Hi Baskaran,

    The size of the table is 56 bytes (14 times unsigned int). Why do I need 1kB of space for it?

    Why can't I just push the table right to the boarder?

    As I wrote, the table copy woks fine and the complete table is where it should be.

    Could it be that the CPU tries to pre-fetch new commands from the next space and therefore the fetch ends-up in no man's land?

    Regards,
    Patrick

  • Typically 56 bytes are enough. I mentioned 1kb with assumption that you will have the handlers after the table, which need not be the case.

    It is not working with 56bytes space from end of ocmc ram ?

  • No, the firmware did not work as if the table is placed like in StarterWare. I think that the jump into the IRQ handler did not work. As this jump uses the second last entry in the table I presume that there is a problem at the OCMC0 RAM boarder. Leaving 8 Bytes between the end of the table and the last OCMC0 RAM address the firmware does work.

    Would be good to know if one can place code right to the end of a memory or not. Just to prevent some ugly surprises. Can you please check this with the AM335x experts at TI. Thanks.

    Regards,
    Patrick