컴파일 하여 나온 코드 크기가 커서 FLASH에 올라가지 않는 문제가 발생하여 최적화 옵션 -O2을 사용하여 코드 크기를 줄여 실행하였는데 시스템이 죽는 현상이 발생했다. 
디버깅하여 원인 분석 결과 최적화 옵션에 의해 watchdog 인터럽트에서 오동작이 발생 하였다.

변수을 volatile을 선언하여 실행 하였더니 정상 동작 한다.

 

GCC Optimization 은 다음 문서를 참조 한다.

http://www.linuxjournal.com/article/7269

'OldStory > WORKS' 카테고리의 다른 글

_sbrk_r  (0) 2010.06.24
printf  (0) 2010.06.09
최적화 옵션  (0) 2010.06.08
HISR  (0) 2010.06.04
Timer Test  (0) 2010.05.28
Timer  (0) 2010.05.27
by Alnilam 2010.06.08 17:02
| 1 |

티스토리 툴바