ARM에서 c++를 사용해서 개발경험이 있으신 분들께 질문 드립니다.
글쓴이: swunk / 작성시간: 월, 2006/09/11 - 8:45오전
초짜 임베디드 프로그래머 입니다.
arm9/linux 환경에서 수행되는 프로젝트에 참여하게 되었습니다.
c++을 사용하려고 합니다.
먼저 보드뜨고 OS 포팅되면 제가 해당 환경을 받아서 개발을 시작하게 되어 있습니다.
해당 개발환경을 받을때 어떤것들을 확인해 보면 될까요?
예를 들어서 compilier 라든가 무슨 무슨 라이브러리라 든가...
혹 arm9등에서 c++로 개발을 하시다가 문제점등을 만났던 분들이 계시다면 조언 주시면 고맙겠습니다.
arm용 c++컴파일러는 문제가 없나요 ?
답변 부탁드립니다.
Forums:
오래 전 얘기인데..
이젠 기억나는 게 거의 없지만.. 하나 생각나는건요..
for (int i = 0; i < MAX; i++) {
이렇게 해줬을 때.. Arm Compiler 에서랑 Visual C++ 에서랑 해석이 다르게 된다는 거..
하나는 블럭 안에서 i 가 선언된 것으로, 다른 하나는 블럭 밖에서 선언된 것으로..
이런 식으로 다른 부분이 종종 있었어요.. 가물가물~
잘 아시겠지만. cros
잘 아시겠지만. cros 컴파일러같은 개발환경을 잘 구성하셔야 됩니다.
라이브러리도 차근차근 본인이 직접 컴파일 하시구요.
뭘 만드시는지는 모르겠지만 GUI 선정 같은것도 중요하구요.
--
Linux강국 KOREA
http://ydongyol.tistory.com/
아래 싸이트
아래 싸이트 참고하세요.
http://dsl.ee.unsw.edu.au/dsl-cdrom/README.html
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
해당 환경이 리눅스라면
순수한 C++을 쓰시는데는 문제가 없습니다.
다른 라이브러리 특히 PC상에서 늘 써왔던 라이브러리들이 없는 경우가 많고,
라이브러리를 크로스 컴파일하는 과정또한 그리 간단하지 않습니다.
잘몰라서
잘몰라서 그럽니다만...
ARM9용 cc cross compiler가 잘 동작한다고 하면 타겟 환경에서 C++로 개발을 할때 STL을 사용하는데는 문제가 없나요 ?
STL도 다른 라이브러리 처럼 따로 컴파일을 해서 사용해야 하는지 궁금합니다. STL은 기본적으로 포함되어 있을것 같아서 여쭤봅니다.
gcc를 compile해본 지가
gcc를 compile해본 지가 오래돼서 가물가물합니다만
libstdc++ 컴파일 여부 지정이 configure option에 있었던 것 같군요.
일반적으로 Template Library를 쓰면 Code Bloating이 나서
바이너리가 엄청 커지죠. 그래서 잘 안씁니다.
STL없이도 C++의 유용한
- 클래쓰/상속/가상함수 : C처럼 핸들 끌고 다닐 필요없음.
- Operator Overloading : 이거 맛들인 사람은 C 귀찮아서 못짭니다.
- ctor/dtor
는 그대로 사용할 수 있구요.
자동 변수도 C하고 다르게 아무데나 선언해도 되니까 많이 편합니다.
namespace도 빼 놓을 수 없군요. 그 덕분에 id를 짧게 만들어도 됩니다.
(극단적인 예로, 영어 일어 섞어서 40자나 되는 enum 값을 본 적이 있읍니다.
물론 그중에 앞의 30자는 prefix였지요.)
Performance보다는 Size(Memory=비용)을 중시하는 경향이 있어서
Template이나 inline 함수는 적절하게 사용해야 합니다.
가끔 STL이 그리울 때가 있는데 그때마다 필요한 Container 하나씩 맨들어 쓰면 됩니다.
제경우 제일 많이 쓰는
vector는 realloc()으로 쉽게 구현하고
그다음 많이 쓰는
map은 red-black tree로 대충 맨들어 씁니다.
___________________________________
Less is More (Robert Browning)
___________________________________
Less is More (Robert Browning)
G++ 2.95.3을 사용해서 cpp를 컴파일할때 제가 알고 있는 문제 한가지.
vector class를 사용할 때
위 처럼 at함수로 element를 꺼내올때 문제가 생기더군요.
늦은 답글이지만 참고되셨으면 합니다. ^^
임베디드에서의 C++이라면
열정은 남자의 미래다! - suki1978 style, free style
안녕하세요
임베디드 분야는 C가 대부분이라고 알고 있습니다.
혹시 괜찮으시다면 어떤 프로젝트인지도 궁금해서요.
임베디드 분야의 C++이 관심대상입니다.
비록 현재는 C + ARM ASM 이 제 밥벌이지만요 ㅎ
열정은 남자의 미래다! - suki1978 style, free style
댓글 달기