DSP中如何访问IO数据空间
发布时间:2018-12-19 22:27:08
发布时间:2018-12-19 22:27:08
DSP中如何访问I/O,数据空间
访问I/O空间
I/O空间地址声明
要在程序中访问io空间地址,必须首先用关键字“ioport”对要访问的地址进行定义。
语法:ioport type porthex_numioport 声明io空间端口变量的关键字;type 变量类型,可以为char, short, int或unsigned 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