Archives
-
AVR Studio + WinAVR + Procyson Libray #2
AVR Studio + WinAVR + Procyon Library #2
이전에는 아주 간단한 C 소스를 AVR Studio의 통합환경에서 컴파일하고 시뮬레이션까지 하는 예제를 보였다. 이제는 조금은 세밀한 부분을 살펴 보자. 이 내용들은 WinAVR의 Makefile 의 내용들을 어떻게 수정하는가 하는 부분과 아주 밀접한 관계가 있다.
예제 1> 링커에서 필요한 라이브러리 추가 해주기..
Windows용, DOS용의 컴파일러들은 내가 수학함수, (Square Root, sqrt())같은 함수를 쓸 때, math.h 파일만 포함을 시키더라도 자동적으로 math library를 찾아서 필요한 모듈들을 링크 시켜 준다. 다른 함수들의 경우도 라이브리들도 마찬가지이다. 하지만, WinAVR(gcc)은 이런 작업을 자동으로 해 주지 않는다.
이 과정을 살펴 보자.
위와 같은 프로젝트를 새로 만들고,
[Next] 버튼을 누르고, Debug Platform 을 AVR Simulator, Device를 ATMega128을 선택한다.
아래와 같은 프로그램을 작성하고
#include <stdio.h>
int main(void)
{
int ii;
float aa, bb;
aa = 4.4;
bb= sqrt(aa);
return 0;
}
이것을 컴파일 하면?? 몇몇 경고(warning)와 한 개의 에러가 발생한다.
“undefined reference to ‘sqrt’
이 에러는 math.h 헤더 파일을 포함시키지 않았기 때문에 발생한다. 그러면 #include<math.h> 를 추가하고 컴파일을 해 보자. 역시나 같은 에러가 발생한다..
“undefined reference to ‘sqrt’
그렇다면? 헤더를 포함시켰는데 도? 같은 에러가 발생을 하다니.. 라고 생각을 할 수 있다. 하지만, 앞서 math.h를 포함하지 않은 경우의 경고를 자세히 살펴 보면..
../sqrttest.c:9: warning: implicit declaration of function `sqrt’
라는 부분이 있다. 이 부분에서 차이가 있는 것이다. 앞서 math.h 파일을 포함하지 않았을 때에는 함수의 형태를 선언(declaration)을 하지 않았고, 이번에는 math.h 파일 안에서 함수의 형태가 저장이 되어 있으니, 이 경고는 사라진 것이고, 마지막에 링크를 할려니 sqrt() 함
수와 관련된 부분이 없다는 것이다.
이 경우, 함수가 소스 형태가 아닌 라이브러리 형태로 되어 있는데, 이것은 c:\WinAVR\avr\lib\libm.a 파일이다. 확장명이 a 인 것은 linux 쪽에서 사용하는 방식이 그러려니 하고 넘어가자. 음.. 아니다! WinAVR에서는 라이브러리의 확장명이 a 로 되어 있다고 기억해 두자.. 나중에 써먹을 일이 있을지도 모른다.
배우 송광호씨도, 반칙왕에서 배운 두발차기를 나중에 살인의 추억(맞나??)에서 잘 써먹었다고 하니, 아직은 젊고 머리가 좋을 때, 아니 늙었더라도 한번은 기억을 해 보자..
자.. 그러면 링크 과정에서 어떻게 이 라이브러리를 추가 하는가? 예전이라면 직접 Makefile을 수정을 하겠지만, 이제는 AVR Studio가 있으니 여기서 수정하는 방법을 알려 주겠다.
Makefile을 아주 잘 고칠 수 있다는 사람들은 이 글을 읽는 것을 여기서 중지 해도 된다. 이 첫번째 예제의 목표가 이것인데, 아는 사람은 이 글을 읽는 시간도 아끼는 것이 좋지 않을까?? 그리고 실수(float)를 문자열로 바꾸는 예제가 예제 2번에 있으니 그걸 보고 싶다면 아래로.. 죽~~ 넘어가기 바란다.
프로젝트 윈도우( 용어는 알 수 없다.. 정확히 배우질 못해서..알게 되면 알려 주리라..)에서 프로젝트 이름의 옆에서 마우스 우측버튼(음.. 본인은 예전 과다한 마우스 작업으로 오른쪽 어깨랑 목을 7주일 동안 거의 꼼짝을 못한 적이 있어서 현재 왼손으로 마우스를 쓰고 있기는 한데, 오른 손 잡이를 기준으로 설명하겠다.)을 눌러서 팝업 메뉴가 뜨면,
거기서 [Edit Configuration [...]Feb 23rd, 2009 | Filed under Mouse -
AVR Studio + WINAVR 사용하기
AVR Studio + WINAVR 사용하기
다운로드는 자료실에 올려져 있으므로 참고하시기 바랍니다.
상용컴파일러가 아닌 무료 컴파일러 및 통합환경 이며, 개발하는데 있어서 전혀 불편함을 감수하지 않아도 되는 훌륭한 조합으로 나타났습니다.
AVR Studio 4 를 실행하면 처음에 다음과 같은 다이얼 로그박스가 나타납니다.
만일 처음이 아니면 전에 만들어진 프로젝트들이 리스트에 나타나며 해당 프로젝트를 선택하면 됩니다.
처음이므로 New Project 버튼을 클릭합니다.
New Project 버튼을 누르면 다음과 같은 화면이 나오고 Location 을 눌러 프로젝트를 생성시킬 디렉토리를 선택한다음 프로젝트 [...]Feb 23rd, 2009 | Filed under Mouse -
AVR Studio 에서 최적화 옵션 선택하기…( C Language )
AVR Studio 에서 최적화 옵션 선택하기…( C Language )
Project -> Configuration Options 에서 Optimization 항목 입니다.
최적화 옵션 인데요…
-On => n 은 최적화 를 몇번 수행하는지에 대한 숫자 입니다.
0~3 까지 있으며, 0은 최적화 없이 컴파일이고…3은 세번 최적화 한다는 옵션 입니다.
-Os 가 있는데…이것은 코드 사이즈를 가장 작게 최적화 한다는 옵션이며, 반대급부로 프로그램 실행 속도는 다른 옵션에 비해서 떨어지게 [...]Feb 23rd, 2009 | Filed under Mouse

Recent Comments