본문 바로가기

Embedded/Kernel Porting

[Kernel Porting] Dot matrix A~Z 찍어보기

작업 환경

-메인 OS : Windows 8.1K(Intel Core i5-4590)

-작업 OS : Ubuntu 14.04.5 LTS 64bit(VirtualBox)

-장 비 명 : Hybus-Smart4412


dot2.c

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>

#define dot "/dev/dot"

int main()
{
int dot_d,i;
unsigned char alpha[26][8]=
{
{0x3C, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x00}, //A
{0x7C, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x7C, 0x00}, //B
{0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C, 0x00}, //C
{0x78, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0x78, 0x00}, //D
{0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x7E, 0x00}, //E
{0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x00}, //F
{0x3C, 0x66, 0x60, 0x7E, 0x66, 0x66, 0x3E, 0x00}, //G
{0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00}, //H
{0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00}, //I
{0x1E, 0x0C, 0x0C, 0x0C, 0x6C, 0x6C, 0x38, 0x00}, //J
{0x66, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x66, 0x00}, //K
{0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00}, //L
{0x66, 0xFF, 0xFF, 0xDB, 0xDB, 0xC3, 0xC3, 0x00}, //M
{0x66, 0x66, 0x76, 0x7E, 0x6E, 0x66, 0x66, 0x00}, //N
{0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00}, //O
{0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x00}, //P
{0x3C, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x3C, 0x06}, //Q
{0x7C, 0x66, 0x66, 0x7C, 0x78, 0x6C, 0x66, 0x00}, //R
{0x3C, 0x66, 0x60, 0x3C, 0x06, 0x66, 0x3C, 0x00}, //S
{0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00}, //T
{0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00}, //U
{0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00}, //V
{0xC3, 0xC3, 0xC3, 0xDB, 0xDB, 0xFF, 0x66, 0x00}, //W
{0x66, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x00}, //X
{0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00}, //Y
{0x7E, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x7E, 0x00}  //Z
};
dot_d = open(dot, O_RDWR);
if(dot_d<0)
{
printf("error\n");
return 0;
}
for(i=0; i<26; i++)
{
write(dot_d, &alpha[i], sizeof(alpha[i]));
sleep(1);
}
close(dot);
return 0;
}


1. 초기설정

sudo apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib gcc-4.4-multilib lib32z1


2. 컴파일

/opt/gnueabi/opt/ext-toolchain/bin/arm-linux-gnueabihf-gcc dot2.c -o dot2


3. Test

- 윈도우(메인 OS)로 실행파일 복사

- Tera Term에서 포트 설정 후  설정 -> 시리얼 포트 -> 속도를 115200으로 설정

- Hybus-Smart4412 장비 부팅

- 메뉴 -> 전송 -> ZMODEM -> 보내기 에서 실행파일 선택

- chmod 777 [실행파일명]  (실행파일 권한 설정)

- ./[실행파일명]  (실행 후 테스트)

(★중요 : 만약 소스파일을 수정 했다면 Tera Term 에서 먼저 rm [실행파일명] 을 한 뒤 다시 ZMODEM -> 보내기 에서 실행파일 선택 후 chmod 777 [실행파일명] 와 ./[실행파일명] 다시 실행)