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.

CCS/TMS320C6746: Setting reset vector for HPI boot

Part Number: TMS320C6746

Tool/software: Code Composer Studio

I am booting a C6746 DSP via HPI interface (with data from an Intel format hex file). According to app note SPRAAT2F I need to get the boot address into address 0x11800000 to make this work. The application note does not contain any instructions on how to do this under SYS/BIOS. Can someone please provide guidance?

I assume I need to put the reset address given by symbol _c_int00 into the first element of the vector table in section .vecs,, then put this at the beginning of internal RAM (0x 11800000). The last part I can figure out, but not the first. HWI module does not seem to be able to do this. What is the canonical way (or any other way) to do this in SYS/BIOS? I use CCS 8 but BIOS 6.35.4.50 because of bindings to other libraries.

This used to be dead simple in CCS 3.3 where I am porting code form, so it is quite frustrating. Please help!

  • The team is notified. They will post their feedback directly here.

    BR
    Tsvetolin Shulev
  • _c_int00 is the entry point for most of the DSP applications so that is the address that you need to use as the reset address. I believe this address occurs in the .text section of your code. the steps to access c_int00 in BIOS has been described in the wiki here:
    processors.wiki.ti.com/.../Accessing_c_int00

    there is not much experience around here with HPI boot as it is not a very widely used boot media but you may also find good information from the discussion here:
    e2e.ti.com/.../295030
    e2e.ti.com/.../285509

    Regards,
    Rahul
  • Thank you. I found a workable solution based on the input you provided:
    1) Allocate an empty section at the beginning of internal RAM for the address of the boot code.
    2) Allocate another section for the boot code at a defined address.
    3) Have my Linux driver write this address at the beginning of internal RAM after writing all code to RAM as described in spraat2f.

    I had some problems because it seems that the HPI setup is lost when my code starts, so the code was running but the HPI interface did not work - I use the HPI interface not only for boot, but for communication while the program is running. After restoring a sensible HPI setup, the interface works again. This was a little surprising as I did nothing in my code to change the HPI setup, and it obviously must have worked when the code was loaded. Does the bootloader do something here?