|
现有如下实验:
0.功能:用Switch来控制相应的LED灯的亮灭.
1.SOPC中建立pio_switch(8 bit),pio_led(8 bit), Memory为onchipmemory.
2.软件: alt_u8 uSW;
while(1){
usleep(1000);
uSW = IORD_ALTERA_AVALON_PIO_DATA(PIO_SWITCH_BASE);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE,uSW);
}
在上述实验中,配置好硬件,运行软件,成功实现Switch控制LED灯.
我们对其运行过程的思考为:
1.switch和led的状态均存在他们的寄存器中. 同时两个外设又都挂在Avalon总线上
2.软件运行在Onchipmemory中.软件先读取switch寄存器的值,并保存在onchipmemory中,再通过Avalon总线把onchipmemory中相应的值写到led寄存器中.
再次实验:
1.直接运行硬件,不运行软件,发现依然可以通过switch控制led灯的亮灭.
上述实验让我们产生了困惑. 没有通过中间软件的关联,switch与led应该不会关联到一起哈,也就是switch不应该能控制led灯的亮灭.
请大虾看看问题出在哪里?谢谢啦 |
|