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.

TMS320F28379D: EMUBOOTCTRL register and the PIE Vector Table

Part Number: TMS320F28379D


Hi everyone,

Is there anything special about the EMUBOOTCTRL register? 

  • In the TRM it is not detailed in a table like every other register, instead it is only quickly described on the emulation boot flow diagrams. 
  • Moreover its location at 0xD00 is said to be part of the PIE Vect Table area which seems odd since it doesn't seem that it is used like an interruption vector. 
  • Indeed the default linker command file allocates sections for global variables EmuBModeVar, EmuBootPinsVar at its address.
  • But these are grouped together with the PIE Vector Table in the PIE_VECT memory (origin = 0xD00, length = 0x200).
  • Also the PIE initialization functions from TI skip the first locations (which include 0xD00) when initializing the Vector Table, so that would indicate that it is not, in fact, part of the vect table.

In conclusion: why is it sometimes part of the vector table and sometimes not? If it needs to be handled so differently from the rest then why not describe it with its own memory area in the linker command files so that it doesn't interfere with the vector table?

  • Hi Pierre,

    EMUBOOTCTRL is indeed mapped at address 0xD00 and that's PIE VECTOR table location. Please note that this is only used for booting the device when emulation is connected and not for standalone boot. Also though it's part of PIE VECTOR table, these locations are not used (kind of reserved) hence used as EMUBOOTCTRL register.

    Regards,
    Vivek Singh
  • Thanks for your answer.

    Out of curiosity, if they are not used as such what makes them "part of" the PIE vector table? Why not simply say that the vector table starts three addresses later?

    Regards,
    Pierre