Part Number: TMS320F28377S
Other Parts Discussed in Thread: C2000WARE
Tool/software: Code Composer Studio
I found this example code for finding the starting address of Zone select block in the technical reference manual
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)
{
//Default in case there is no zero found.
Zone1SelBlockPtr = (unsigned long *)0x78020;
Shouldn't the bolded line of this snippet be LinkPointer=LinkPointer<<3 if i am supposed to skip 3 bits ((i.e.)31,30,29) while scanning the link pointer.
