2011-05-10 4 views
1

gcc를 사용하여 내 프로젝트를 컴파일하고 main에서 sscanf() 함수를 사용합니다. 스택 크기는 4k입니다. gdb에서 프로그램을 디버깅하고 VPUSH 명령이 예외를 throw합니다.newlib sscanf() stm32에서 hardfault 예외를 던졌습니다

그리고 sprintf() 함수를 테스트 해보니 좋은 결과를 얻었습니다. 왜 sscanf() 함수가 stl32에 대한 newlib에서 작동하지 않습니까?

답변

4

STM32 F4 시리즈 이외에도 부동 소수점 명령어 인 vpush도 지원하지 않습니다.

newlib을 -mfloat-abi=soft (아니 softfp 또는 hard이 아님)으로 컴파일하여 문제를 해결해야합니다.

관련 문제