기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

이번에 6400을가지고 하나 만들고 있는데요... 다름이 아니라 VFP를 사용하려고 합니다.

그런데 이를 GCC에서 어떻게 사용하는지 잘 모르겠습니다.

첫째로 지금 현재 잘 구분이 잘 되지 않는 것이 -mhard-float 옵션과 -mfpu=vfp의 관계 입니다.

서로 연관 관계가 있는 것인지 아님 별개의 것인지 궁금 하구요..

현재 libgcc.a를 사용하여 링킹을 하고 있는데요...  

다음과 같은 옵션을 사용하였을 떄

CFLAGS        += -mcpu=arm1176jzf-s -mfpu=vfp -fno-builtin -mapcs

이와같은 에러가 뜹니다.

error : libgcc.a uses FPA instructions. whereas s3c6400.elf does not

6300에서 제대로 VFP를 사용하려면 정확하게 어떤 옵션을 줘야 하는 건가요?

고수님들의 도움 부탁 드립니다.
  

고현철

2008.09.07 12:09:33
*.32.117.22

강좌란의 김재훈님께서 올린 글을 참조하시기 바랍니다.

target=_blank>http://222.112.227.25/bbs/view.php?id=lecture&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=7


일반적으로 툴체인 만드는 옵션이랑 컴파일 옵션은 동일합니다.
profile

김재훈

2008.09.07 19:28:10
*.162.4.197

hardware floating 연산은 ARM 프로세서에 적용되지 않는 것으로 알고 있습니다. (폭넓은 인스트럭션 셋을 지원하는 대부분의 x86 계열을 위한 옵션이라고 생각합니다.) 따라서, ARM의 경우 software floating 연산 옵션을 주어, fpu는 vfp 유닛을 사용 합니다. 이 옵션을 줄 경우 컴파일러에서는 1차 코드를 software floating point 연산 코드로 컴파일 하며, 이 코드를 바탕으로 ARMv6 아키텍쳐의 vfp 유닛에 맞도록 최적화를 진행하게 됩니다.

결론적으로 정확히 말하자면,

-msoftfp 옵션과 -mfp=vtp를 쓰셔야 겠지요. :)

참고로, ARM과 같은 RISC 계열의 프로세서의 경우 hardware floating을 지원하지 않는 것으로 알고 있습니다.

홍성관

2008.09.08 08:31:01
*.34.49.11

일단 답변 감사 드립니다. 아무래도 제 개발 환경이 맞는지 부터 확인 해야 할 것 같네요... 오늘 한참 aesop을 뒤지다가 조금 이사한 부분이 있어어요.. 저는 현재 www.gnuarm.org에서 cygwin용 바이너리로 배포 되는 것을 다운로드 받아 개발 환경을 구축 하고 있는 상태 이구요.. aesop에서는 crosstool이라는 것을 받아 gcc개발 환경을 구축하고 있는 것 같네요. crosstool은 소스를 직접 다운로드 받아 컴파일을 받고 패치도 하는 것 같은데요..정확하게 이 둘의 차이점이 무었인가요..? 강의란에 있는데로 cygwin 에서 demo-armv6.... 스크립트를 실행 하였는데요.. 컴파일 중에 에러가 나서 더이상 진행을 못 하더라구요... 윈도우즈에서 어떻게 해 볼려고 했는데 linux환겨으로 바꿔야 할 듯 하네요... 혹 다른 방법 있나요? 초보라서 기초적인 질문들만 드릴네요... 꾸벅..

고현철

2008.09.08 12:16:29
*.111.183.146

리눅스는 리눅스 환경에서 개발하는게 좋습니다.

여러가지 문제때문에요....cygwin이면 제일 편하겠지만
세팅하느라.....넘 정력(?) 낭비할 듯 합니다.....아마도...^^
profile

김재훈

2008.09.09 08:51:51
*.162.4.182

아.. cygwin.. 잘만 셋팅하면 편하긴 하지만...
개발 환경의 불확실성(?) 때문에 자꾸 꺼려지더라구요. ^^

홍성관

2008.09.10 02:27:01
*.233.242.78

재훈님께서 말씀 하신데로 Fedora를 설치하고 재공해 주신 toolchain으로 제가 가진 Sample을 컴파일 하였습니다만... 다음과 같은 error가 나오네요.. "undefined reference to raise"하면서 에러를 내는군요... 참고로 저는 지금 Linux나 uboot를 빌드하는 것이 아니라 일반 Firmware를 개발 하고 있습니다. 혹시 에러의 원인 및 해결 방법을 아시나요?

홍성관

2008.09.10 02:35:24
*.233.242.78

찾아보니 0으로 나누었을때 나는 Exception함수 인것 같은데.. div0에서 참조를 하는 것 같네요... 어찌됐든 함수가 없다고 해서 혹시나 하고 임의로 소스에 void raise() 함수를 만들어 줬더니 넘어가고 컴파일이 완료 되네요.. 음... 되긴 됬는데 어쩨 찜찜 하네요.. 뭔가 근본적인 해결 법이 없을 까요?
List of Articles
번호 제목 글쓴이 날짜 조회 수
308 LTE480WV-F01(TFT TOUCH LCD) 구할 수 있을가요? [2] 홍성관 2008-09-12 1327
307 [완료] wear leveling 영역의 크기에 대해 문의드립니다. [4] 이세종 2008-09-11 756
» S3C6400 도움좀 부탁 드릴께요.. [7] 홍성관 2008-09-07 1328
305 [완료]udev는 무엇인가요?? [4] 서종범 2008-09-04 1010
304 [질문]uda1341 음성출력에 관한 질문 [3] 문철민 2008-09-04 738
303 [완료] yaffs 이미지 압축에 대해 궁금 합니다. [1] 석헌영 2008-09-04 1090
302 [도움요청] S3C6400 [7] 이준호 2008-09-02 1525
301 [도움요청]QT로 짠 프로그램을 타겟 보드에 실행 시키려고 합니다. [4] 김기범 2008-08-26 888
300 [도움요쳥]mplayer 포팅관련 도움을 요청합니다 [2] 한주영 2008-08-19 907
299 (질문) mplayer 포팅시 문제입니다. [1] 한주영 2008-08-19 899
298 [질문] Linux에서 사용할만한 SDIO WLAN카드 문의 [2] 박종석 2008-08-18 1090
297 [질문] 밑에 질문 유현목님 댓글 토대로... ㅡ_ㅡ;; [7] 김용진 2008-08-18 801
296 [질문] 염치 없이 또 질문.. ㅡ_ㅡ; [3] 김용진 2008-08-16 918
295 [질문]sata_promise 오류 이거 어떻게 처리를 해야될지.. ㅡ.ㅡ;; [3] 김용진 2008-08-15 806
294 S3C6400 NDA 관련 Contact Point 아시나요? [3] 홍성관 2008-08-11 929
293 [완료] ECC 코드에서 Syndrome의 뜻에 대해서.. [1] 이세종 2008-08-09 1304
292 [완료] SiRFprima CPU의 ECC 알고리즘에 대해 문의드립니다. [2] 이세종 2008-08-08 851
291 [질문]ezboot 에서 au1200 Nand 플래쉬 vid, pid Read관련.. [2] 김기범 2008-08-07 921
290 리눅스 서버 관련 질문입니다. [1] 정원 2008-08-07 510
289 [질문] 이미지 효과 라이브러리 [1] 한기태 2008-08-06 917

사용자 로그인