한백전자의 EMPOS-II 를 처음 접하고 난뒤 Hello World만 찍기 뭐해서 만들었던 테스트 소스입니다.
arm-linux-gcc -v --save-temps -o main main.c 로 컴파일링 하시면 됩니다.
그뒤 minicom에서 nfs서비스 열고 ./main 하시면 실행됩니다.
소스의 내용은 숫자를 입력받고 그 숫자가 지나면 폭탄이 터지게 됩니다.
폭탄이 터지는것은 LED가 미친듯이 발광하는것으로 대체했습니다;
사실 usleep명령어를 몰라서 공루프를 돌린 dele;;; 이것은 delay인데...
왜 델레로 쓴건지는 아직도 미지수;;;;
닫기 Code Type : C
#include< stdio.h>
#include< time.h>
void dele()
{
int i;
for(i=0;i < 400000;i++);
}
void dele2(int xx)
{
int i;
for(i=0;i < (100000)*xx;i++);
}
void disp(int num)
{
unsigned int dd[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int *b,*c;
int d0=0,d1=0,d2=0,d3=0;
b=0xf1300000;
c=0xf1400000;
d0=num/1000;
d1=(num/100)%10;
d2=(num/10)%10;
d3=num%10;
*c=(dd[d0]<<8)|dd[d1];
*b=(dd[d2]<<8)|dd[d3];
}
void boom(int xx)
{
unsigned char *a;
a=0xf1600000;
*a=0x55;
dele2(xx);
*a=0xaa;
dele2(xx);
*a=0x1;
dele2(xx);
*a=0x2;
dele2(xx);
*a=0x4;
dele2(xx);
*a=0x8;
dele2(xx);
*a=0x10;
dele2(xx);
*a=0x20;
dele2(xx);
*a=0x40;
dele2(xx);
*a=0x80;
dele2(xx);
*a=0x55;
dele2(xx);
*a=0xaa;
dele2(xx);
*a=0x80;
dele2(xx);
*a=0x40;
dele2(xx);
*a=0x20;
dele2(xx);
*a=0x10;
dele2(xx);
*a=0x8;
dele2(xx);
*a=0x4;
dele2(xx);
*a=0x2;
dele2(xx);
*a=0x1;
dele2(xx);
*a=0xff;
}
int main()
{
int i;
puts("input num");
scanf("%d",&i);
for(i;i >= 0;i--)
{
disp(i);
//usleep(1);
dele();
}
boom(5);
}
닫기