#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#include <signal.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/mman.h>
#include "/usr/local/include/s3c2410-regs.h"
#include "uart.h"
#define FATAL do { fprintf(stderr, "Error at line %d, file %s (%d) [%s]\n", \
__LINE__, __FILE__, errno, strerror(errno)); exit(1); } while(0)
int running = 1;
void done (int sig)
{
running = 0;
}
#define REQCNT 100 //May 08, 2002 SOP
#define ADC_FREQ 2500000
#define LOOP 10000
unsigned long led;
int fd,fd1,fd2,fd3,led_no;
int main(int argc, char *argv[])
{
signal (SIGINT, done); // set up signal handler
fd = open ("/dev/mem", O_RDWR | O_SYNC);
GPIOp = mmap (0, sizeof (S3C2410_GPIO), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x56000000);
printf ("\nThe Embedded Linux \n");
GPIOp->GPBDAT=0x0000;
while(1)
{
printf ("\nSelect the LED(s) to glow :");
scanf("%d",&led_no);
printf ("\n");
switch(led_no)
{
case 1 : GPIOp->GPBDAT=0x0020;
printf ("LED 1 \n");
break;
case 2 : GPIOp->GPBDAT=0x0040;
printf ("LED 2\n");
break;
case 3 : GPIOp->GPBDAT=0x0080;
printf ("LED 3\n");
break;
case 4 : GPIOp->GPBDAT=0x0100;
printf ("LED 4\n");
break;
case 5 : GPIOp->GPBDAT=~0x01E0;
printf ("ALL LED ON\n");
break;
default : GPIOp->GPBDAT=~0x0000;
printf ("ALL LED OFF\n");
break;
}
}
close (fd);
if (munmap (GPIOp, sizeof (S3C2410_GPIO)) == -1){ }// FATAL;
return 0;
}