본문 바로가기
코스웨어/15년 스마트컨트롤러

20151020-21번-여지윤 GPIO6/모니터프로그램

by 알 수 없는 사용자 2015. 10. 21.
728x90
반응형

5~8교시

★S/W☆


● Assembly


□ Raspberry Pi


# 스크래치를 이용한 라즈베리 파이제어


- 스크래치를 이용해 라즈베리 파이를 제어하려면 ScratchGPIO를 설치해야한다. 설치할때 원격을 이용하여 설치하여야 한다.


- 원격 사용 방법은 다음과 같이 실행하면 된다.


- 시작프로그램에 원격을 이용하여 사용할 수가 있다.


- 이렇게 설치를 하게 되면 설치가 완료가 된 것이다.


- 설치는 자동적으로 진행이 되기 때문에 명령어만 쳐두면 된다.


- Desktop에 저장을 하기 위해서는 자기 계정으로 접속하여서 (Pi계정이 아닌..) 다음과 같은 명령어를 사용하면 된다.


cp /home/pi/Desktop/scratchgpio6* ~/Desktop/


을 사용하게 되면 Desktop에 설치가 된다. 물론 pi 계정으로 해도 상관없지만 자기자신의 계정으로 하는것이 조금더 편하게 사용 할 수 있다.



- 이렇게 설치가 완료 되면 준비가 완료 된 상태이다. GPIO를 설치함으로서 LED제어라든지 모터제어등 여러가지 제어등을 할 수가 있다.


- 간단한 예제로 GPIO를 이용하여 LED를 켜 볼 수 있다. 다음 예제를 이용하여 나타 낼 수 있다.



- 결과는 인식을 못해서 나중에 올리도록 하겠습니다..... :(


□ 모니터 프로그램


- 모니터 프로그램에서 파일을 여는 바꿔야한다. 바꾸기 위해서는 Load 함수를 건들여야한다.


- Load 함수내에서도 해당 파일을 읽기 위한 우선작업이 필요하다. 파일을 열기전에 사전작업을 해야하는데 그 사전작업은 다음과 같은 코드로 만들 수 있다.



- 사전 작업이 끝났기 때문에 이제는 파일을 가져오는 역할을 해야한다.


- 파일을 가져오는 역할이 가장 중요하기 때문에 우선은 PE Header 구조가 어떻게 생겼는지를 파악해야한다.

- 파일의 구조가 있는만큼 PE의 구조체도 있다. 구조체는 windows.h에 모두 포함이 되어 있으며 해당 windows.h 를 include 하기 위해서는 환경변수를 설정해야한다.


C : Program Files\Microsoft SDKs\Windows\v7.1A\include


- 해당 구조체에대해서 알아보기위해서는 간편하게 PE 구조체를 확인해보면 알 수가 있으며 PE viewer 를 이용하면 알 수가 있다.



- 마찬가지로 PE 구조를 보면 층계별로 나와 있는것을 알 수가 있다.


- IMAGE_SECTION_HEADER에서는 텍스트영역과 Data 영역이 따로 따로 나뉘어져 있는데, 해당 구조가 그렇게 나와 있는것을 알 수가 있다.


- 헤더의 데이터도 마찬가지로 Raw Data가 어디서부터 시작하고 있는지를 알 수가 있다.



- PE 주소를 찾아내면서 해야하는데 일단 DOS_HEADER 부분에서 확인을 해보게 되면 다음과 같은 코드를 짤 수가 있다.


- DOS헤더에서 찾은 내용을 확인 해보면 NT 헤더부분도 알수가 있다.



- 여기에 대한 섹션이 늘어나게 되면 그만큼 섹션의 데이터와 텍스트의 값도 늘어나게 된다.


- 그렇기 때문에 점점 복잡해지게 되는 것이다...

728x90