한백전자의 EMPOS-II 를 처음 접하고 난뒤 Hello World만 찍기 뭐해서 만들었던 테스트 소스입니다.
arm-linux-gcc -v --save-temps -o main main.c 로 컴파일링 하시면 됩니다.
그뒤 minicom에서 nfs서비스 열고 ./main 하시면 실행됩니다.
소스의 내용은 숫자를 입력받고 그 숫자가 지나면 폭탄이 터지게 됩니다.
폭탄이 터지는것은 LED가 미친듯이 발광하는것으로 대체했습니다;
사실 usleep명령어를 몰라서 공루프를 돌린 dele;;; 이것은 delay인데...
왜 델레로 쓴건지는 아직도 미지수;;;;
 닫기  Code Type : C
 닫기  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);
}
 닫기
 닫기