arm11 에서 armgcc 4.2.0으로 컴파일시 부동소수점 오류에 대한 질문입니다.
글쓴이: bluevege / 작성시간: 월, 2009/06/29 - 9:24오후
안녕하세요.^^ 질문하나 올립니다.
ARM1136-EJ 에서 아래 코드를 실행하면 RVCT2.2 컴파일시에는 정상 출력되는데 armgcc 4.2.0으로 컴파일 하면 엉뚱한 값이 출력 됩니다.
float ff1 = 0.1F; float ff2 = 0.2F; float ff3 = 0.0F; printf("float size = %d\n", sizeof(float)); printf("ff1(%08x) = %0.1f, %08x\n", &ff1, ff1, ff1); printf("ff2(%08x) = %0.1f, %08x\n", &ff2, ff2, ff2); printf("ff3(%08x) = %0.1f, %08x\n", &ff3, ff3, ff3); ff3 = ff2 + ff1; printf("ff3(%08x) = %0.1f, %08x\n", &ff3, ff3, ff3); <결과> float size = 4 ff1(17c2762c) = -0.0, 3fb99999 ff2(17c27628) = -0.0, 3fc99999 ff3(17c27624) = 0.0, 00000000 ff3(17c27624) = 2.0, 3fd33333 어떤 컴파일 옵션을 추가해 줘야하는 것인지... 원인을 모르니 답답하네요. 혹시 비슷한 문제를 겪으신 분이 계시면 답변 부탁드립니다.
Forums:
보드는 없고 해서
보드는 없고 해서 -_-;
Cross compile해서 나온 결과를 보여드립니다.
gcc를 새로운 버전을 사용해보시면 어떨까요 ? ;;
댓글 달기