原创
谈谈DSP的绝对地址访问。
2008-7-24 20:33
4411
7
7
分类:
处理器与DSP
虽然我不喜欢在高级语言中访问绝对地址。今天有个网友问我绝对地址的访问。我决定试试。
成功了。
#define AbsAddress ((volatile Uint16 *)0x100000) //定义一个指向0x100000的指针
volatile Uint16 * ptr;//声明一个指针
对其指向单元赋值 *AbsAddress =100;
在CCS下运行,赋值正确。
虽然成功了,但我还是不推荐大家使用绝对地址访问。
由于AbsAddress是常量不可以更改,应该使用数组或再定义一个指针进行其它地址的访问。
AbsAddress[Offset] = 101;
对地址指针赋值 ptr = AbsAddress;
下面可以非常方便的这个指针了。
Uint16 i;
for( i=0;i<=0xf;i++)
{
*ptr=i; //向绝对地址里写数据。
ptr++; //绝对地址加1,
}
回头仔细想一下,还定义什么宏呀。直接用ptr = (volatile Uint16 *)0x100000;那不就完了。还搞了上面那么一大堆的东东。想要啥地址把0x100000改成你想要的地址不就完了。
^_^,自己把自己绕进去了。不过也好,又进步了一把。
文章评论(0条评论)
登录后参与讨论