본문 바로가기
코스웨어/15년 스마트컨트롤러

20151201 / ARM(컴파일러 설치), Winsock_2 / 남수진

by 알 수 없는 사용자 2015. 12. 1.
728x90
반응형

ARM

 

  • C를 많은 운영체제에서 사용할 수 있는 이유는 누군가가 그 운영체제에서 사용할 수 있는 C 컴파일러를 만들었기때문
    • C 자체가 이식성이 좋다기 보다는 C 컴파일러를 제공하는 곳이 많은 것
  • cross compile 환경
    • 다른 곳에서 동작시킬 실행파일을 컴파일해주는 환경
    • 예) embedded 시스템에서 작동시킬 binary image를 PC에서 개발

  • ARM 컴파일러/ ADS 설치
    • 공유폴더에서 관련 파일 받아서 아래 과정을 실행

  • ADS 최신버전으로 패치


  • 예제 소스 찾기
    1. 구글에서 [ADS v1.2용의 C언어 예제 파일]검색
    2. 칩 제조사(atmel 등) 사이트로 가서 해당 칩 관련 파일을 다운로드
      • 아래 그림은 atmel.com의 SAM7S 칩 관련 소스 파일을 찾는 과정


  • 컴파일
  • object file
    • 어셈블리를 번역한 기계어
    • 혼자서 완성된 형태는 아님
      • 일종의 라이브러리로 linker를 이용해 다른 object들과 link될 수 있다
    • 운영체제 등 환경에 따라 구조와 명칭이 다르다
      • 윈도우 : PE 구조
      • 리눅스 : ELF 구조
      • coff 등등...
      • 임베디드 시스템은 보통 ELF 구조를 많이 사용한다

  • linker script file(.scl, .lds)
    • linker가 사용하는 파일
    • 실행파일을 메모리에 어떻게 배치할지에 대한 정보를 제공한다

  • map 파일(.map, .sym)
    • 메모리에 실행파일이 어떻게 배치되었는가에 대한 정보를 가진 파일


  • 라이브러리 파일 까기
    • armar 사용
    • 옵션을 이용해 object 파일을 라이브러리로 만들거나 라이브러리를 확인하고 수정할 수 있음

  • tcc 컴파일러 옵션

 

------------------------------------------------------------------------

Winsock

  • 이전 리눅스 소스의  select() 함수 사용 적용
    • 클라이언트 입장은 되는데 키보드 입력이 먹통

  • select() 함수를 stdin에 적용할 수 없음

http://stackoverflow.com/questions/8773838/winsock2s-select-on-fd-0-stdin-fails



728x90