其实是因为DATA CATCHE 的缘故。我对外设的访问是直接通过指针,直接去访问指定地址处的外设,但是这部分可以被优化为对DATA CATCHE的访问,根据NIOS II的HAND BOOK,可以采取两种方式进行屏蔽对CATCHE的操作
1.将地址的最高位置一,因为NIOS中地址的最高位并没有映射实际的物理地址,最高位置一,便强制在访问该地址时是从总线上读写数据而不会进行CATCHE操作;
2.采用IO操作来读些数据,stio,ldio。对应的NIOS IDE系统生成C语言io.h头文件中有build函数的宏操作IOWR和IORD,用这两个宏来直接根据地址访问会收到与方法一同样的效果
|