잠깐 일이 있어서 테스트 프로그램을 작성하던 중 간단하게
만든 프로그램이다 무한루프로 계속 LED가 점등돼게 해놨다.
==========================================================================
#include <stdio.h>
#include <system.h>
#include "system.h"
#include "sys/alt_sys_init.h"
#include "sys/alt_irq.h"
#include "sys/alt_flash.h"
#include "sys/alt_flash_dev.h"
#include "sys/alt_timestamp.h"
#include "sys/alt_dev.h"
#include "alt_types.h"
#include "sys/alt_stdio.h"
#include "sys/ioctl.h"
#include "altera_avalon_lcd_16207.h"
#include "altera_avalon_uart.h"
#include "altera_avalon_cfi_flash.h"
#include <stddef.h>
#include <string.h>
#include <io.h>
#include <fcntl.h>
int main()
{
/* DE2-70은 RED LED가 0~17까지 18개이다. 그래서 4bytes 의 Register를 쓴다.
* 그중 3바이트 째의 다른 값은 안쓰고 초기 2bit만 사용한다. */
while(1){
IOWR(PIO_RED_LED_BASE, 0 ,0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0001);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0002);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0004);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0008);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0010);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0020);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0040);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0080);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0100);
usleep(300000);
IOWR(PIO_GREEN_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0001);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0002);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0004);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0008);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0010);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0020);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0040);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0080);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0100);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0200);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0400);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x0800);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x1000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x2000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x4000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x8000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x10000);
usleep(300000);
IOWR(PIO_RED_LED_BASE, 0, 0x0000);
IOWR(PIO_RED_LED_BASE, 0, 0x20000);
usleep(300000);
};
printf("Hello from Nios II!\n");
return 0;
}
'FGPA_Verilog_VHDL' 카테고리의 다른 글
NIOS 및 FPGA 공부를 위해 구매한 DE2-70 보드 (2) | 2009.01.07 |
---|---|
Altera DE2-70 Board FPGA top Verilog->VHDL (0) | 2008.12.26 |
DE2-70 CFI Flash Block address list(xls) (0) | 2008.05.28 |
Flash Memory을 위한 Nios II HAL API (0) | 2008.05.07 |
CFI_FLASH Control functions (0) | 2008.05.07 |