블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

AVR, ARM등의 CPU프로그램을 작성할때,

1) 프로그램 작성

2) 다운로드

3) 테스트

4) 1번 부터, 될때까지 무한 반복.


문제는 다운로드 시간이 1초든, 10초든, 시간이 걸린다는 점입니다.

다운로드가 마우스클릭만으로 되는 경우는 드물고,

CPU 리셋을 하고, 다운로드하는 과정이 적게는 수십초~몇분까지도 걸립니다.

프로그램코드가 크다면, 다운로드 시간은 더 많이 걸립니다.


오타 하나 고치려고, 수정하고, 다운로드하고, 테스트하는 시간이 생각보다 많이 소모됩니다.


그래서, 윈도우환경에서 프로그램코드를 검증하고, 나중에 CPU에 다운로드해서, 테스트해보는 방법이 빠를 수 도 있습니다.

윈도우 환경에서는 많은 메모리와, VC++ 같은 우수한 컴파일러 환경을 사용할 수 있습니다.

문제는 윈도우 환경에서 동작하기위해, 코드를 각각 작성해야 하므로, 약 1.5배 정도의 코드를 작성해야 합니다.


C언어의 장점은 함수만 동일하게 작성하면, 어떤 환경이든, 대부분 동작이 된다는 것입니다.

물론, 하드웨어 환경도 비슷하게 꾸며주어야 합니다.

예) EEPROM_write() => WIN_EEPROM_File_Write()


보통 아래와 같이 매크로를 사용하여, 함수를 각각 만들어 줍니다.

void LCD_putch(byte c)

{

#ifdef WIN32

printf("%c",c);

#else

LCD_send_data(c);

#endif

}


UART통신, EEPROM, LCD, KEY등도 각각 함수를 만들어 줍니다.

물론, 윈도우 환경에서 사용할 함수를 만드는 작업이 쉽지않고, 시간도 많이 걸립니다.

그러나, 잘 많들어 놓으면, CPU에 다운로드하고, 테스트하는 시간이 획기적으로 줄어들어, 전체 개발속도가 향상될 수 있습니다.

Posted by 안녕1999
, |

ARM cpu에서 돌아가는 프로그램을 작성중이다.

임베디드 개발환경은 주로 

1) PC에서 컴파일해서, 

2) cpu에 다운로딩하고,

3) 결과 확인, 코드 수정

4) 1,2,3번 반복 

이다.

그런데, 2번 다운로딩은 시간이 수십초이상 걸린다.

다운로딩하려면, 리셋도 눌러줘야하고, 케이블도 연결해줘야하고,

이래저래, 몇분이상이 걸린다.


VC++6.0 에서 ARM cpu용 코드를 윈도우용으로 수정하여,

입출력데이터, 논리함수등을 미리 테스트하고,

2번 과정을 거치면, 더 빠른 진행이 가능하다.

물론, WIN32환경과 ARM환경에 따라 매크로함수를 각각 만들어주는것이 복잡하긴하다.

아래 처럼 작성하면 편하다.

물론, 핀 입출력, 통신 입출력은 안되거나, 어렵다.

하지만, 논리데이터를 대입해서 테스트해보는것이 더 빠를 수 도 있다.

#ifdef WIN32

#define DEBUG_puts(s)    my_puts(s)

#else

#define DEBUG_puts(s)

#endif


물론, 돈이 많다면, 해당 칩을 에뮬레이션 해주는 프로그래밍 개발킷(컴파일러)을 구입하면, 좀더 쉽다.

그러나, 배우려면, 쉽지 않다. 모든것을 다 시뮬레이션해 볼 수 있는것도 아니다.

그냥, 빛좋은 개살구 정도...

Posted by 안녕1999
, |

임베디드 mcu프로그램을 하기위해,

gcc arm 컴파일러를 준비하고,


compile.bat 파일을 만들어, 컴파일 할 수 있게 설정했다.


VC++6.0에서는 MakeFile 프로젝트를 만들어서, 아래와 같이

배치파일을 넣어준다.


Debug모드 : Build command line = compile.bat

Release모드 : Build command line = DownLoad_main_HEX.bat


VC++ 6.0에서

Debug모드로 컴파일하면, 컴파일이 되고,

Release모드로 컴파일하면, 다운로딩이 된다.


장점

- 프로젝트를 WIN32환경으로도 구축하여, WIN32에서 알고리즘 동작테스트 후,

  gcc로 컴파일하여 다운로딩하면, 개발 시간을 단축할 수 있다.

  gcc등으로 "컴파일 -> 다운로딩 -> 테스트 -> 수정 -> ..." 무한반복을

  "WIN32에서 알고리즘 동작테스트 -> gcc컴파일 -> 다운로드"

- 도스창(배치파일)로 컴파일하는것 보다는 훨씬 편하다.

- 도스창에 나오는 내용은 Build창에 나온다.


단점

- VC++ 6.0 사용하는 사람이 적음

- 도스창에 나오는 내용중, 진행상황을 표시하는것은, 완료가 되어야 나온다.

  예) 다운로딩



VC++ 6.0자체가 가볍지는 않고, 유료 프로그램이라서,

약간 부담은 되나,

크로스컴파일러를 설치하고, 해당 컴파일러 환경을 사용하는데, 불편한 사람들

(즉, VC++ 6.0이 익숙한 사람들)에게는 좋은 환경이된다.



VC++ 6.0의 편집툴(IDE)은 비교적 가볍고, 검은색 배경으로 설정하면,

눈도 덜아프다.(색상 조절이 잘되는편)


현재 나온 대부분의 크로스컴파일러들은 VS 2005와 비슷한 IDE를 가지고 있으며,

무겁고, 색상, 폰트 변경이 조금만 되는 것들이 많다.



WIN32, gcc 크로스컴파일 환경 구축방법

==================================

WIN32 프로젝트를 만들고, 위에서처럼, MakeFile 프로젝트를 추가하면 된다.

Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함