본문 바로가기

Embedded system/AVR

AVR studio optimization problem



자! 최적화 옵션 항목을 보면

-00, -01, -02, -03, -0s 선택항목이 있다

 

-O0 최적화 과정이 없어 컴파일 시간이 감소한다. 기대되는 결과치를 받아서 디버깅 할 때 이용할 때 적합하다.

-O1 최적화를 진행해서 코드 사이즈와 수행시간을 감소 시킨다.

          -O2 최적화 옵션 중 제일 적당한 최적화이다.
-O3 O2 보다 최적화를 좀 더 한다.

 

라고 하지만 optimization을 통해 lcd 그래픽 제어시

속도 향상을 가져왔다고.. - -;

 

O0- 제어 하고 전역변수에 volatile를 선언해 주어야 한다. 외냐면 코드 최적화 컴 일러가 불필요한 코드라고 생각하는 걸 간략화 시키다가 프로그램 의도하지 않은 방향으로 결과물이 나오기 때문이다. 그러므로 volatile을 붙이면 그 변수는 고정된 메모리 번지에서 다이렉트로 불러와 C코드에 적힌 그대로 수행하게 된다. volatile사용 법은 간단히 선언 된 변수 앞에다 붙여 주면 된다.


volatile 변수 사용에 대한 자세한 설명은

뻔뻔 강사님의 강의를 읽어보는 것이 제일 정확하다. 아래 사이트 참조.

 http://blog.naver.com/PostView.nhn?blogId=sikd94&logNo=30077988310


속도향상 예제

당근이 winAVR 속도향상 - optimization을 쳐보면 되고

관련 문서는

C:\WinAVR-20081205\doc\gcc\HTML\gcc-4.3.2\gcc\

Optimize-Options.htm

으로 설치 되어 있다 참고하자