본문 바로가기

Embedded/Kernel Porting

[Kernel Proting] FND 점멸하기

작업 환경

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

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

-장 비 명 : Hybus-Smart4412


fnd.c

#include<stdio.h>

#include<stdlib.h>

#include<fcntl.h>

#include<string.h>


#define fnd "/dev/fnd"


int main()

{

int fnd_d;

unsigned char fnd_data[4];


fnd_d = open(fnd , O_RDWR); //해당 드라이버 열기

//0값을 넣어본다.

fnd_data[0]=~0x06;

fnd_data[1]=~0x4B;

fnd_data[2]=~0x4F;

fnd_data[3]=~0x66;

write(fnd_d , fnd_data , sizeof(fnd_data));

sleep(1);


fnd_data[0]=~0x6D;

fnd_data[1]=~0x7D;

fnd_data[2]=~0x07;

fnd_data[3]=~0x7F;

write(fnd_d , &fnd_data , sizeof(fnd_data)); //배열이름에 &를 붙이면 메모리가 충돌나는 것을 방지 시킨다.

sleep(1);

close(fnd_d);

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 fnd.c -o fnd


3. Test

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

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

- Hybus-Smart4412 장비 부팅

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

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

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

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