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/TMS320F28377S: Doubt regarding DCSM's Linkpointer's address

Part Number: TMS320F28377S

Tool/software: Code Composer Studio

what is the address of the linkpointer in dcsm 

  • Hi Deepak,

    It is mentioned in "Figure 2-22. Location of Zone-Select Block Based on Link-Pointer" of DCSM section in TRM.

    Regards,

    Vivek Singh

  • The figure says that the address is 0x78000 but the bolded part of the snippet below assigns the value stored in the location 0x5F000 in a variable called linkpointer why is that being done

    unsigned long LinkPointer;
    unsigned long *Zone1SelBlockPtr;
    int Bitpos = 28;
    int ZeroFound = 0;
    // Read Z1-Linkpointer register of DCSM module.
    LinkPointer = *(unsigned long *)0x5F000;
    // Bits 31 30 and 29 as most-sigificant 0 are reserved LinkPointer options
    LinkPointer = LinkPointer << 2;
    while ((ZeroFound == 0) && (bitpos > -1))
    {
    if ((LinkPointer & 0x80000000) == 0)
    {
    ZeroFound = 1;
    Zone1SelBlockPtr = (unsigned long *)(0x78000 + ((bitpos + 3)*16));
    } else
    {
    bitpos--;
    LinkPointer = LinkPointer << 1;
    }
    }
    if (ZeroFound == 0)
    { Zone1SelBlockPtr = (unsigned long *)0x78020;
    }

  • Deepak,

    Please read section "2.13.1.5 Link Pointer and Zone Select" in TRM. Three Linkpointers (with same value) are programmed by user in USER OTP and when these gets loaded by dummy read (either by BOOTROM code or Gel file), hardware calculates the final link pointer value and copies it into linkpointer register which user need to read to decode the Zone Select Block location. Address of this linkpointer register (which is also part of header file) for Zone1 is 0x5F000.

    Hope this is clear.

    Regards,
    Vivek Singh