본문 바로가기

언어/라즈베리파이

lazarus cross compile 환경 설정

출처: http://blog.naver.com/heennavi1004/10180662904


Raspberry Pi (RPi) 에서 free pascal로 GUI 프로그램을 할 때 유용하다.

그러나 RPi상에서의 코딩은 RPi의 성능상의 한계로 매우 어려운 편이다.

할 수는 있지만 많은 인내를 요구하기 때문이다.

 

lazarus로 GPIO를 직접 제어할 수 있어 pascal에 익숙한 사람은 큰 어려움 없이 RPi/리눅스 상에서 동작하는 프로그램을 윈도우 환경에서와 같은 방식과 코드로 만들 수 있다... 다만 개발환경을 동작시키기에는 너무 느린 RPI환경이 걸릴 뿐이다.

 

이에 대한 해결 방법으로, windows 상에서 프로그램을 작성하고, 컴파일 한 프로그램을 RPi로 옮겨 동작시키는 것이다.

 

방법은 Codetyphon 이용하는 것과 lazarus를 직접 설치하는 방법이 있으나, Codetyphon을 설치 하는 것이 미리 설치된 수 많은 패키지들을 추가적인 설정없이 사용 할 수 있어 편리하다.

   

     1) codetyphon = fpc(프리 파스칼) + IDE (lazarus) + 수 많은 패키지

      2) fpc + lazarus

 

방법

   

1. 윈도우즈(7) 에서 Codetyphon 설치

      : 현재 ver. 4.60

      www.pilotlogic.com 에 들어가서 다운로드 한다.

        다운받은 CodeTyphonIns.zip 의 압축을 해제하고,

     명령 프롬프트를 관리자 권한으로  실행한다. 

     CodeTyphonIns 폴더로 이동한다. 

           cd C:\Users\hskim\Downloads\CodeTyphonIns\CodeTyphonIns  (나의 예) 

 

     install.bat 를 실행하여 설치 시작  ..............

   

2. hard-fpu 대신 soft-fpu로 대치

    CodeTyphon이 설치된 하부 폴더 중 C:\codetyphon\binToolchains\win32-arm-linux 로 이동

       arm-linux-as.exe ---> arm-linux-as_.exe 로 변경 

   

3. 새로운 컴파일러 다운로드

       다운

    압축 파일 중,

      Arm-Linux-As.exe (첨부)를 C:\codetyphon\binToolchains\win32-arm-linux 에 복사 

       

4. 재 컴파일

    CodeTyphon64 실행 (현재 컴퓨터는 Win 7 x64 임): lazarus 아님 

    CodeTyphon Center 메뉴 

               CrossBuild =>  FreePascal 32bit => FPC32 Build Cross Element arm-linux 를 선택하여 빌드...

   

5. 라즈베리파이용 라이브러리 설치

    lib-arm-pi.zip을 다운로드   

    압축을 해제하여 C:\lib-arm-pi 에 풀어놓는다(나의 예)

   

이상으로 윈도우즈에서 raspberry용 크로스 빌드 환경 설치.

 

 

설정

 

1. Typhon32 for win32 실행

    CodeTuphon Center의 Typhon32 for win32 BigIDE 실행

 

2. 라이브러리 패스 지정

    메뉴:  Project => Project Opetions =>Compiler Options => Paths 선택 

      오른쪽에서 Libries (-Fl)에서 C:\lib-arm-pi 폴더를 지정: C:\lib-arm-pi

 

3. 크로스 환경 지정

     메뉴:  Project => Project Opetions =>Compiler Options => Code Genertion  선택

     우측의 Target platform에서  

        Target OS (-T) : Linux

        Target CPUfamily (-P): arm

     OK 할 때, error가 나오지만 무시

 

4. wiringPi 이용시 wiring Pi 설치

       라즈베리파이용 wiring Pi 라이브러리인 lazwiringPi.7z를 다운(첨부)

        (직다운은 여기: 그런데, 압축이 여러번 되있으니 잘찾던지.. 첨부를 받던지 하세요 )

        (라즈베리파이에서 컴파일 할 때는, 역시 이 파일의 압축을 풀고 라이브러리 폴더를 지정하면 된다.) 

 

    압축 해제하고, 적절한 폴더에 넣고,

      : 여기에서 라이이브러리 패쓰에 넣어야 되는데,....... 자꾸 에러가 난다... 그래서 프로젝트 폴더 하부에 풀어 놓으면 된다 (귀찮지만)

      프로젝트 폴더에,  

         wiringPi 폴더

         hwiringpi.pas  를 넣는다~~~~ (편법)

 


프로그램 작성

 

1. 라이브러리 지정

     hwiringpi.pas 를 uses 절에 넣는다.

         implementation

         uses

              hwiringpi.pas

         {$R *.lfm} 

 

2. 프로그램을 작성하고,

     컴파일 (Ctrl-F9)

 

3. 생성된 파일을 ftp 등을 통하여 RPi에 전송하고

 

4. 권한 설정: RPi에서

    $sudo chmod 755 실행파일

 

5. 실행: RPi에서

    $sudo ./실행파일

 

끝....

 

참고

   델마당 포렌식님의 글  

   라즈베리파이에서 lazarus로 프로그래밍 

   wiringPi : Gordon's Project