dsp2407程序中用ioport的问题
在看一个很早的dsp2407程序,程序中有声明externioportunsignedintport0000;externioportunsignedintport000...
在看一个很早的dsp2407程序,程序中有声明
extern ioport unsigned int port0000;
extern ioport unsigned int port0001;
extern ioport unsigned int port0002;
extern ioport unsigned int port0003;
extern ioport unsigned int port0004;
等等.还用了cpld扩展端口,找了很多资料,只知道这个port后面的是端口号,但是不知道这个端口号具体对应的是哪一个引脚,莫非这个端口号就是引脚号吗?还是怎么回事? 展开
extern ioport unsigned int port0000;
extern ioport unsigned int port0001;
extern ioport unsigned int port0002;
extern ioport unsigned int port0003;
extern ioport unsigned int port0004;
等等.还用了cpld扩展端口,找了很多资料,只知道这个port后面的是端口号,但是不知道这个端口号具体对应的是哪一个引脚,莫非这个端口号就是引脚号吗?还是怎么回事? 展开
2个回答
展开全部
2407将存储器空间定义成3个部分,分别是:程序空间、数据空间和I/O空间,这三部分的地址都是0000H~0FFFFH,主要是为扩展不同用处的外围设备用的,具体可以参看2407数据手册内存空间图。扩展在I/O空间的设备一般不会用大量连续寻址的方式操作,而是利用某些特殊地址进行访问,比如FIFO、AD、DA这样的设备,因为I/O空间寻址程序中比较麻烦,不像数据空间或程序空间那样可以进行成块的连续地址寻址。
如果有些设备是连接在I/O空间(比如CPLD的某个寄存器),并通过这个空间的片选进行寻址的,就要用I/O寻址方式来进行,具体就是象你例子中的port0001这样寻址,寻址的地址为0001H,比如程序中写prot0001=0x0a;那么执行时地址总线对应输出地址0001H,数据线出0aH,对应的片选和strb、写信号都有,这个你可以测量。
如果有些设备是连接在I/O空间(比如CPLD的某个寄存器),并通过这个空间的片选进行寻址的,就要用I/O寻址方式来进行,具体就是象你例子中的port0001这样寻址,寻址的地址为0001H,比如程序中写prot0001=0x0a;那么执行时地址总线对应输出地址0001H,数据线出0aH,对应的片选和strb、写信号都有,这个你可以测量。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询