在NIOS程序中可以通过两种方式访问外设:
1、通过NIOS的IO函数(IORD 和 IOWR 等)完成对外设的读写;
2、通过C语言的指针对IO地址段操作(如 *((int *)PWM_0_BASE+3)=1);
但这两种操作是有区别的:
IORD/IOWR : 直接读写,肯定不经过cache。
指针间接访问 :会读写cache,除非特定情况. (【1】 CPU没有cache,或【2】绕过cache读写)
因此如果在NIOS中选择了带数据缓存的CPU则只能选IO函数的方式,否则用指针则通过数据缓存对外设的操作肯定是不对的。
阅读(2414) | 评论(0) | 转发(0) |