怎樣在NIOSII中操作PIO?
其中hello_led.c是這樣寫(xiě)IO口的:
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);
首先在altera_avalon_pio_regs.h找到定義
#include
#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0)
#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data)
因此在NIOSII中可以調(diào)用#include
(詳情可參見(jiàn)D:alterakits
ios2documents n2cpu_nii51007.pdf 文檔page:7, Table 7–2:
和n2sw_nii5v2.pdf.pdf 文檔page:111, Table 7–1:)
接著在smallsoftwarehello_led_0_syslibDebugsystem_description下的system.h
中,有以下內(nèi)容:
#define LED_PIO_TYPE "altera_avalon_pio"
#define LED_PIO_BASE 0x00004000
其中LED_PIO_BASE(IO寄存器地址?)為0x00004000同SopcBuilder中設(shè)置一致!
(其實(shí)在SopcBuilder中有關(guān)NiosII的配置,就是通過(guò)system.h來(lái)傳送給IDE的!)
最后用IOWR(0x00004000, 0, led);替代IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);
編譯,下載到開(kāi)發(fā)板上,運(yùn)行成功!
初級(jí)知識(shí),就當(dāng)是拋磚引玉,這只是庫(kù)函數(shù)級(jí),應(yīng)該還有匯編級(jí)代碼,請(qǐng)各位大蝦繼續(xù)!
---