主题中讨论的其他部件:C2000WARE
工具/软件:Code Composer Studio
我在技术参考手册中找到了用于查找区域选择块起始地址的示例代码
无符号长LinkPointer;
unsigned long *Zone1SelBlockPtr;
Int Bitpos = 28;
Int ZeroFound = 0;
//读取DCSM模块的Z1-Linkpointer寄存器。
LinkPointer =*(unsigned long *) 0x5F000;
//位31 30和29作为最具签名的0是保留的LinkPointer选项
LinkPointer = LinkPointer << 2;
While ((ZeroFound == 0)&&(位数>-1))
{
如果(LinkPointer和0x8000万)== 0)
{
ZeroFound = 1;
Zone1SelBlockPtr =(无符号长*)(0x7.8万 +((位数+ 3)*16));
}否则
{
比特位--;
LinkPointer = LinkPointer <<1;
}
}
IF (零环绕== 0)
{
//如果没有找到零,则为默认值。
Zone1SelBlockPtr =(unsigned long *) 0x7.802万;
如果我在扫描链接指针时跳过3位((即) 31,30,29),则此片段的粗体行不应该是LinkPointer=LinkPointer<3。
