Â
UARTã¢ã¸ã¥ã¼ã«ã使ã£ã¦ã¿ãã
Â
ã¨ãããããLãã«ã®ã³ã¼ãã«ç¶ã足ãã¦ã¿ãã
Â
ä»æ§ã¯ãããªæãâã
LEDç¹ç¯æã«ASCIIã®âAï¼0x41ï¼âãéä¿¡ããLEDæ¶ç¯æã«ASCIIã®âBï¼0x42ï¼âãéä¿¡ããã
TXDã¨RXDã¯FPGAå ã§ã«ã¼ãããã¯ããããã«ãããã¢ã¸ã¥ã¼ã«ã§ã¤ãªãã ã®ã§ãéä¿¡ããä¸è¨ã®ãã¼ã¿ã¯ãã®ã¾ã¾åä¿¡ãããã¨ã«ãªãã
åä¿¡ããçµæãJTAG_UARTã§ã³ã³ã½ã¼ã«ã«è¡¨ç¤ºããã
Â
ã½ã¼ã¹ã³ã¼ãã¯ä»¥ä¸ã
Â
Â
- #include <stdio.h>
- //#include <stdint.h>
- #include "system.h"
- #include "altera_avalon_pio_regs.h"
- #include "altera_avalon_uart_regs.h"
- #include "altera_avalon_jtag_uart_regs.h"
- #include "sys/alt_sys_wrappers.h"
- Â
- int main()
- {
- Â Â printf("Hello from Nios II!\n");
- Â Â char cBuf;
- Â Â while (1) {
- Â Â Â Â IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0xFF);
- Â Â Â Â IOWR_ALTERA_AVALON_UART_TXDATA(IO_UART_BASE, 0x41);
- Â Â Â Â cBuf = IORD_ALTERA_AVALON_UART_TXDATA(IO_UART_BASE);
- Â Â Â Â IOWR_ALTERA_AVALON_JTAG_UART_DATA(JTAG_UART_BASE, cBuf);
- Â Â Â Â usleep(500000);
- Â Â Â Â IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x00);
- Â Â Â Â IOWR_ALTERA_AVALON_UART_TXDATA(IO_UART_BASE, 0x42);
- Â Â Â Â cBuf = IORD_ALTERA_AVALON_UART_TXDATA(IO_UART_BASE);
- Â Â Â Â IOWR_ALTERA_AVALON_JTAG_UART_DATA(JTAG_UART_BASE, cBuf);
- Â Â Â Â usleep(500000);
- Â Â }
- Â
- Â Â return 0;
- }
- Â
Â
PIOã¨åãè¦é ã§ãã¬ã¸ã¹ã¿ã©ã¤ãããªã¼ãã®é¢æ°ã使ã£ã¦ããã¼ã¿éä¿¡ãåä¿¡ãããã
ã¬ã¸ã¹ã¿æ¸ãè¾¼ã¿ã®é¢æ°åã¯ãaltera_avalon_uart_regs.hãã®ä¸ã«æ¸ããã¦ããã
ï¼éä¿¡ï¼#define IOWR_ALTERA_AVALON_UARTTTXDATA(base, data)ï¼
ï¼åä¿¡ï¼#define IORD_ALTERA_AVALON_UART_RXDATA(base)ï¼
Â
çµæã¯ä»¥ä¸ã
Â
æ³å®éãã«åãã¦ããï¼
Â
ããããããèããã¨ãéä¿¡åä¿¡ã¨ãã«ãããã¡ããªãã®ã§ãæååãæ±ããã¨æã£ãããå²ãè¾¼ã¿ä½¿ã£ã¦å¹çãã転éããå¿
è¦ãããããã
Â
ãªã®ã§ãä»åº¦ã¯ãã£ã¡ã試ãã¦ã¿ãã
Â