반응형

아주오래전

jin's lab에 남긴거네요 ~_~
잊혀질까봐 무서워서 빼옵니다..

======================================================================================================================

자!!! 이제 AVR-GCC를 설치 해봅시다!!! (두둥)

처음에 인터버드 홈페이지에 AVR-GCC설치법을 보고 시작했습니다..
글이 순서가 약간 이상해서 혼자 어젯 밤 상당히 삽질을 했드랩니다..
결국은 성공을 했지만....

물론 윈도우에선 AVR-EDIT라는 강력한 툴이 있긴 하지만..
저같은 사용자는 때로는 리눅스 켜놓고 남에게 방해 받지 않고 코딩을 할 수 있어서 좋습니다...(이상하게 리눅 켜놓고 있으면 아무도 터치를 안하는 분위기가 +_ +)

자~ 이제 본격적으로 설치법을 기술 하기 전에 준비물~~~
1. OS Linux 여야겠죠?
(저는 GNU/Linux Debian Linux사용자라 데비안 3.0 우디 배포본에 필요한 개발 헤더라던지 패키지들을 설치 해서 사용합니다.)

2. 기본적인 개발툴들이 설치 되어있어야 합니다....gcc나 Glibc등등..
(Redhat 사용자께서는 gcc버전이 낮으네 어쩌네 하면 http://rpmfind.net에서 의존성 있는 패키지들 검색하셔서 설치해 주세요...
Debian 사용자라면 apt-get upgrade update한방이면 왠간한건 다 되겠죠?)

3. 땜질과 마찬가지로 리눅스 프로그램 소스컴파일도 상당한 인내와 고뇌 그리고 삽질이 필요합니다(물론 고수분들 제외). Jin님의 말씀을 빌리자면 집에 놔두고 온 떡 생각하면 안되옵나이다 (_ _

[[ 설치에 앞서 필요한 패키지들 ]]
tar, gzip, gunzip : 이건 배포본에 대부분 깔려 있습니다. 파일 묶음/압축 유틸
gcc : 제가 2.95를 사용하는데 괜찮더군요.....
glibc : gcc에 의존관계는 크게 없지만 이거 없으면 일반 C 소스도 컴파일안됩니다...
shell : 음 대부분 bash를 사용하실껍니다...bash를 적극 추천합니다...
make : 없으면 리눅스가 아닐지도...


[[ 설치에 필요한 계정 ]]
root 계정으로 프로그램을 설치 합니다....
그래야 나머지 계정에 ftp로 올려버린 압축 이미지도 풀어 헤칠수 있으니까요... <-- 농담반 진담반
.........원래 프로그램 설치는 root에서 하는 거심.........


[[ 설치에 필요한 소스를 받아봅시다 ]]
힘들게 찾았습니다...
http://multi.ks.ac.kr/~reserve/avr-gcc
필요한것이 binutils와 gcc-core, avr-libc입니다...

binutils-2.14.tar.bz2  
gcc-core-3.3.tar.gz  
avr-libc_20030512cvs-1.tar.gz
를 받으세요

binutil만 왜 tar.gz의 확장자가 아니라 tar.bz2의 확장자냐라고 생각하시는 분은...ftp://ftp.informatik.rwth-aachen.de/pub/gnu/binutils/ 가셔서 tar.gz로 된 걸 받으시면 됩니다 ^-^ 그냥 혹시나 하는 마음에 원래 인터보드 강좌의 파일로 쓴거죠...

이전 버전은 tar.gz로 깔았었는데 잘되었습니다...


[[ 본격적인 설치에 앞서 ]]
리눅스에선 configure  - > make - > make install 의 과정으로 소스 컴파일을 합니다..
configure로 설치할 환경을 세팅하구요(데뱐이면 데뱐, 수세면 수세, 레뎃이면 레뎃, 젠투면 젠투...등등)
make로 실제 바이너리 이미지를 현 디렉토리에 맹글어 둔후..
make install을 하면 해당 설치 경로로 파일을 옮기게 됩니다....
make한 데이터를 싸그리 지우고 싶다...라면 make clean하시면 됩니다....만...그냥 사용한 디렉토리는 rm -rf 디렉토리명 으로 삭제 하시면 되기 때문에 그럴 필요가 거의 없을껍니다...

[[ 설치 과정 ]]

gcc가 설치되어있으므로 그것과 구분 지을수 있도록 /usr/local/atmel이란 디렉토리를 생성하여 거기에 avr-gcc를 설치하도록합니다..

$> mkdir /usr/local/atmel

/usr/local/atmel이라는 디렉토리를 맹글었으면

(1)
어셈블러나 링커등이 있는 binutil을 설치 합니다...
(주 : avr-gcc말고 ARM(XScale)용 gcc또한 binutil 을 사용합니다....이와 유사한 방식으로 설치를 하지요..)

$>  bunzip2 -c binutils-2.14.tar.bz2 | tar xvf -
(주 : tar.gz파일이라면 $> tar xvfz binutils-2.14.tar.gz 로 압축을 해제 한다)
$>  cd binutils-2.14
$>  ./configure --target=avr --prefix=/usr/local/atmel
$>  make
$>  make install  

이렇게 설치가 되었으면 avr-gcc(cc이지만 이녀석은 크로스 컴파일러이죠..)의 라이브러리가 어디에 있는지 정의해 주어야 하는데요..

$> vi /etc/ld.so.conf

로 파일을 여신 후 에디터를 insert 모드로 전환(키보드 i키) 후 원래 있는 라이브러리 패스 밑에 /usr/local/atmel/lib 라인을 추가 시킵니다..
그리고 esc키 를 누르면 insert모드에서 해제되는데요 여기서 :wq (파일에 쓰고 종료)를 눌러 파일에 쓰고 종료를 합니다

*.conf파일은 config파일입니다...바뀐 데이터를 반영하기 위해선

$> /sbin/ldconfig

명령을 수행 하게 되면 됩니다...

but, 여기서 저 명령이 안듣는 모양이더군요..제 리눅스가 문제인건지...커널버전이 너무 많이 올라와 버려서 인건지....
대안입니다...
실행을 시켜보고...리붓해주시길...(꼭입니다..)

리붓 후 다시 root로 로긴합니다

(2)
avr-gcc를 설치 합니다...
gcc-core만 깔면 되더군요..+_ +)

인터보드랑 약간 차이나는 게 여기서 부터라 볼수 있군요..

$>  tar zxvf gcc-core-3.3.tar.gz
$>  cd gcc-3.3
$>  ./configure --target=avr --prefix=/usr/local/atmel --disable-nls --enable-language=c

위와 같이 gcc-core를 configure한 다음 make, make install전에

$>  export CC=avr-gcc  
$>  export AS=avr-as
$>  export AR=avr-ar
$>  export RANLIB=avr-ranlib
$>  export PATH=/usr/local/atmel/bin:${PATH}

위와 같이 환경 변수를 등록합니다...

그 다음

$>  make
$>  make install

로 마무리!!


(3)
여기까지 아무문제 없이 잘 왔다면..대략 성공이 눈앞에 보이는 것입니다.... 나머지는 이제 avr-gcc가 사용할 avr 헤더파일과 라이브러리 파일을 등록시켜주는(파일을 생성후 /usr/local/atmel/ 디렉토리 하부에 집어 넣는) 작업만 남았습니다..

그 것이 avr-libc이죠....
(주: 역시 ARM용 또한 이렇게 존재하는 것이지요 [_ _]*)

$>  tar xvfz  avr-libc_20030512cvs-1.tar.gz
$>  cd avr-libc-200030512cvs
$>  ./configure --prefix=/usr/local/atmel --target=avr --enable-languages=c --host=avr
$>  make
$>  make install

하면 이제 avr-gcc가 동작할 것입니다...ㅠ_-
고난과 역경을 ㅠ_ㅠ 격게 되실 것이므로;;
avr-gcc의 패스가 재로긴 후 사라지기 때문이죠..

Tip하나를....

로그인 후 자신의 홈 디렉토리가
/home/자신의 아이디 일껍니다..
거기에서

$>  vi .bash_profile

을 하시면 Bash쉘의 개인 프로필이 뜨게 되는데요..

export CC=avr-gcc  
export AS=avr-as
export AR=avr-ar
export RANLIB=avr-ranlib
export PATH=/usr/local/atmel/bin:${PATH}

제일 밑에 써 넣으시고 난 뒤 저장 후 종료 하신후

$>  source .bash_profile

하시면....

avr-gcc가 그 사용자에게는 실행이 될 것입니다...^-^ 물론 path에 추가해줘도 괜찮지만...

역시 unix, linux라는 운영체제는...특별 권한에 특별한 아이디를 사용하는 매력이 +_ +)/





인터버드에 있는 AVR-GCC 설치 사용법..
http://www.interboard.co.kr/devel/avr/avr_install.html


======================================================================================================================
avr-libc-1.0.3.tar.tar 가 업데이트 되었습니다 .tar.tar는 .tar.bz입니다... 압축 푸시는건 bunzip2 -c 파일명 | tar xvf - 입니다... atmega32 됩니다 두둥~~~


http://www.avrfreaks.net/AVRGCC/index.php
http://www.lancos.com/ppwin95.html
반응형

'Tip & Tech > Linux | Unix' 카테고리의 다른 글

PHP 확장모듈 만들기  (0) 2010.10.21
shell scripting - date 사용하기  (0) 2010.10.21
Solaris 에서의 pkgadd 사용 예  (0) 2010.10.21
MySQL 리플리케이션 로그 핸들링  (0) 2010.10.20
php full compile options  (0) 2010.10.20
반응형

함수 프로토 타입 정의와 사용에 인자를 명시적으로 기입해 주어야 한다

ex) void ClrLCD(); //정의
     void ClrLCD()
     {...}            
위와 같이 선언 정의시 에러...
sol) void ClrLCD(void); //정의
      void ClrLCD(void)
      {...}            

이렇게 하면 에러 안뜨므로..이렇게 사용하세요..

특히 vc사용자들 조심할것
반응형
반응형

inp(PINC) 에서 각 포트별로 입력받기 당연히 가능합니다. 예로 포트C의 1번 포트(PC0) 만 5V 이면 00000001 이고 2번포트(PC1)만 5V이면 00000010 이되고 1번포트(PC0)와 2번 포트(PC1)가 모두 5V 이면 00000011 이 됩니다. 그리고 AVR에서는 각 비트별로도 입력 및 제어가 가능합니다. "avrsfr_defs.h" 에 보면 아래와 같은 매크로가 정의 되어있습니다.

bit_is_set(sfr, bit); bit_is_clear(sfr, bit); loop_until_bit_is_set(sfr, bit); loop_until_bit_is_clear(sfr, bit);

bit_is_set(sfr, bit); 은 해당 래지스터의 해당비트가 현재 로직 '1'인지를 검사하는 함수로써 간단한 사용 예를 들면


#include <avrsfr_defs.h>
if(bit_is_set(PINC, 0)) {
   loop_until_bit_is_clear(PINC, 0);
}
else {
   loop_until_bit_is_set(PINC, 0);
}

WinAVR이 설치된 폴더에서 "docavr-libc" 폴더에 보면 라이브러리 설명서가 있습니다. 참고하세요.
반응형
반응형


Microsoft Visual SourceSafe 2005 사용법 프리젠테이션 (대충함)
반응형
반응형


멀티미디어 서비스 프리젠테이션 자료
2004년 디지털 통신 발표자료

반응형
반응형

enews# pkgadd -d libiconv-1.8-sol9-sparc-local

All
Y
반응형

'Tip & Tech > Linux | Unix' 카테고리의 다른 글

shell scripting - date 사용하기  (0) 2010.10.21
AVR-GCC 설치법...  (0) 2010.10.21
MySQL 리플리케이션 로그 핸들링  (0) 2010.10.20
php full compile options  (0) 2010.10.20
Linux Shell tail -f 하이라이트 먹히는 법  (0) 2010.10.20
반응형

철학자 하이데거는 “언어는 존재의 집”이라고 했다. 그 사람의 언어를 보면 사람 됨됨이를 알게 된다.
용혜원은 “행복한 사람은 ‘행복하다’는 표현을 자주 쓰고, 불행한 사람은 ‘불행하다’는 표현을 자주 쓴다. 기쁨이 넘치는 사람은 ‘기쁘다’는 표현을 자주 쓰고, 슬픈 사람은 ‘슬프다’는 표현을 자주 쓴다’고 했다.

반응형
반응형
http://blog.naver.com/orion_203?Redirect=Log&logNo=130038762874


일반 도메인에 www를 붙이는 방법.



1.VirtualHost 설정시 두가지를 다 해준다.

   ServerName 을 두가지로 해서 해준다.

   문제점: 에러로그나 액세스로그가 각각 작성되어 진다.(물론 둘다 같은파일을 지정하면 되긴 한다.)



2.VitualHost  에서 RedirectMatch를 이용한다.

아래와 같이


<VirtualHost 000.000.000.000>
    DocumentRoot /home/orion/tc
    ServerName memolog.pe.kr
    RedirectMatch /(.*)$ http://www.memolog.pe.kr/$1
</VirtualHost>

<VirtualHost 000.000.000.000>
    ServerAdmin webmaster@memolog.pe.kr
    DocumentRoot /home/orion/tc
    ServerName www.memolog.pe.kr
    ErrorLog /home/orion/orionerror_log
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common

        <Directory "/home/orion/tc">
                Options FollowSymLinks
                AllowOverride FileInfo
        </Directory>
</VirtualHost>



위와 같이 설정을 하면 memolog.pe.kr 접근했을때 www.memolog.pe.kr 로 리다이렉트 해준다.
[출처] 아파치 RedirectMatch 문법을 통한 자동으로 'www'붙이기.|작성자 님프

반응형
반응형

별로 효율적이진 않을거 같음..
하지만 플렛폼을 마이그래이션 할때 쓸지도 모르니..

SELECT rownum, {table_name}.*
FROM
(
SELECT @ROWNUM := @ROWNUM + 1 AS ROWNUM, {table_name}.*
FROM {table_name}, (SELECT @ROWNUM := 0)
R
) A
WHERE    A.ROWNUM > 10 and A.ROWNUM <20  order by idx desc

반응형
반응형

0 9 * * mon mysql -uroot -e "PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 31 DAY);"
crond 에 등록하면

매주 월요일 9시마다
리플리케이션 로그를 31이전것은 제거하라
반응형

'Tip & Tech > Linux | Unix' 카테고리의 다른 글

AVR-GCC 설치법...  (0) 2010.10.21
Solaris 에서의 pkgadd 사용 예  (0) 2010.10.21
php full compile options  (0) 2010.10.20
Linux Shell tail -f 하이라이트 먹히는 법  (0) 2010.10.20
리눅스 타임존(time zone) 변경..  (0) 2010.10.20

+ Recent posts