• 전문가 요청 쿠폰 이벤트
*태*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 1
검색어 입력폼
  • [avr] 마이크로 프로세서 평가A좋아요
    1) GCC의 소개GCC(이하 gcc)는 FSF(Free Software Foundation : 자유 소프트웨어 재단)에서 추진중인 GNU(GNU is Not Unix) 프로젝트의 일환으로 개발된 공개 C 언어 컴파일러이다. 공개임에도 불구하고 gcc는 매우 뛰어난 성능과 안정성을 갖추고 있으며, 전세계의 해커들에 의해서 보완 발전되고 있다. 이런 이유로 gcc는 매우 다양한 유닉스 시스템에 이식되어 있으며, 특히 Linux 시스템의 경우 기본적으로 gcc를 시스템용 C 컴파일러로 채택하고 있다.2) GCC의 특징gcc의 여러 특징들 가운데 하나는 이식성(portability)이다. 이는 본래 GNU 프로젝트가 여러 유닉스 시스템 지원을 목표로 삼고 있으며 gcc 역시 그러한 특성을 물려 받았기 때문이다. 아마도 gcc는 가장 많은 하드웨어 플랫폼을 지원하는 C 컴파일러가 아닌가 싶다(실제로 지금까지 나온 거의 모든 CPU를 지원한다). 이러한 특징으로 gcc는 여러 플랫폼에 대하여 거의 동일한 개발환경(development environment)과 소스 코드 호환성(source code compatibility)을 제공한다. 개발자에게 있어서 개발환경은 매우 중요하다. 특히 CPU가 바뀜에 따라서 변화하는 개발환경은 개발자에게 매우 긴 적응 시간을 소비하게 만든다. gcc의 경우는 플랫폼에 상관없이 대부분의 컴파일러 옵션을 이용할 수 있다. 그리고 소스 코드 호환성 역시 중요한데, 예를 들면 x86 계열의 시스템에서나 PowerPC 또는 SPARC 계열의 시스템에서 약간의 소스 코드 수정만으로도 호환되는 프로그램 개발이 가능하다는 것을 의미한다. 이 역시 개발자가 다른 플랫폼을 지원하기 위해 소스 코드를 재작성하는 시간을 줄여주기 때문에 매우 중요한 점이다. 이외에도 많은 뛰어난 특징들이 있다. 자세한 사항들은 gcc homepage를 참고하기 바란다.3) 크로스 컴파일러(Cross Compiler)크로스 컴파일러를 이해하기 전에 먼저 호스트 플랫폼(host platform)과 타겟 플랫폼(target platform)이라는 용어를 먼저 이해해야 한다. 타겟 플랫폼은 크로스 컴파일러가 생성하는 오브젝트 코드가 실제로 수행되는 시스템을, 호스트 플랫폼은 크로스 컴파일러를 수행하는 시스템을 일컫는다. 예를 들어 펜티엄 컴퓨터 상에서 8051 C 컴파일러를 이용하여 8051용 오브젝트 코드를 생성하고 그 결과 코드를 롬에 담아서 8051에서 수행하였을 경우에, 펜티엄 컴퓨터는 호스트 플랫폼이 되는 것이고, 8051은 타겟 플랫폼이 된다. 여기에서 크로스(Cross-교차하다. 가로지르다. 즉, 플랫폼을 가로질러서 컴파일하다.)라는 말이 생긴 것이다. 따라서 호스트 플랫폼과 타겟 플랫폼이 같은 경우는 크로스라는 말이 붙지 않는다. 이 경우의 대표적인 예는 x86 호환 컴퓨터에서 Boland C 컴파일러를 이용해서 386EX(x86과 호환되는 임베디드용 프로세서)용 오브젝트 코드를 생성하는 경우이다.4) AVR-GCC와 크로스 컴파일러앞에서 말했듯이 gcc는 뛰어난 이식성을 가지고 있다. 이러한 특징을 가능하게 하기 위해 gcc는 플랫폼에 의존적인 부분과 플랫폼에 비의존적인 부분으로 모듈화되어 있으며, 각 모듈은 서로 특정한 규칙으로 인터페이스되어 있다. 따라서 플랫폼에 의존적인 부분만 수정하고 다른 모듈과 인터페이스를 맞추어 주면 새로운 플랫폼을 지원하는 gcc를 제작할 수가 있다. 사실 AVR-GCC(이하 avr-gcc)도 그런 방식으로 만들어졌다.gcc가 크로스 컴파일러로써 동작하기 위해서는 몇 개의 도움이 더 필요하다. 사실 gcc는 단지 C언어를 어셈블러로 변환하는 기능을 갖는다. 따라서 변환된 어셈블러를 오브젝트 코드로 변환 시켜주는 어셈블러(assembler) 그리고 여러 개의 오브젝트 코드를 하나로 오브젝트 코드로 병합하는 링커(linker)가 필요하다. 호스트 플랫폼과 타겟 플랫폼이 같은 경우는 어셈블러와 링커를 따로 제작할 필요가 없이 호스트 플랫폼의 것을 이용하면 된다(왜냐면 호스트 어셈블러와 링커가 생성하는 오브젝트 코드가 타겟과 호환되므로). 하지만 크로스 컴파일러의 경우 변환된 어셈블러를 타겟용 오브젝트 코드로 만들어줄 어셈블러와 링커가 필요하다(이를 각각 크로스 어셈블러와 크로스 링커라고 부른다).GNU 프로젝트에도 어셈블러와 링커가 포함되어 있다. 그러나 그것들은 크로스 플랫폼용으로 이용되지 않았었다. 적어도 Cygnus 사에서 크포스 플랫폼 지원을 하기 전에는 말이다. Cygnus는 최근에(약 1~2년전) 임베디드 시스템용 솔루션을 개발하고 상품화하는 과정에서 GNU 툴인 gas(GNU assembler, as라고도 불린다), ld(linker) 등을 크로스 플랫폼용으로 이식하였다. 그렇게 해서 나온 것이 Binutils이다.
    공학/기술| 2005.03.27| 2페이지| 무료| 조회(1,431)
    미리보기
전체보기
받은후기 2
2개 리뷰 평점
  • A+최고예요
    0
  • A좋아요
    1
  • B괜찮아요
    1
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 05일 일요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
12:50 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감