DSP中如何访问IO数据空间

发布时间:2018-12-19 22:27:08

DSP中如何访问I/O,数据空间

访问I/O空间


I/O空间地址声明

要在程序中访问io空间地址,必须首先用关键字“ioport”对要访问的地址进行定义。

语法ioport type porthex_num
ioport 声明io空间端口变量的关键字;
type 变量类型,可以为char, short, intunsigned int
porthex_num 端口号,port后面接16进制数字。

ioport unsigned int port10;

注:声明io空间地址必须在C文件起始声明,不允许在函数中使用ioport声明io空间地址。

读操作:

写操作:

I/O空间地址访问

访问用ioport关键字声明的I/O端口变量和访问一般变量没有区别。

ioport unsigned int port10;
int func ()
{
...
port10 = a;
...
b = port10;
...
}

读操作:b = port10;

写操作:port10 = a;

I/O端口变量的使用不仅仅局限于赋值,和其他变量同样也可以应用于其它的表达式。

call (port10);
a = port10 + b;
port10 += a;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
程序中访问的任何一个IO地址都必须在C语言程序起始处用ioport关键字声明!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

访问数据空间

访问数据空间不需要对要访问的单元预先声明,访问是通过指针的方法实现的。

unsigned int org,cnt,block,offset,tmp,i;
org = *(unsigned int *) 0x8000;
cnt = *(unsigned int *) 0x8001;
block = *(unsigned int *) 0x8002;
offset = *(unsigned int *) 0x8003;
for (i=0; i

tmp = *(unsigned int *) (org + i);
*(unsigned int *) (org + offset +i) = tmp;

DSP中如何访问IO数据空间

相关推荐