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

2015-12-01 ARM Assembly & WinSock Chatting 개인업무일지 - 천정호

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

초기에는 기계어와 어셈블리어가 1 대 1로 대응하게 되어있었다.

어셈블리의 표를 통하여 기계어 코드를 어셈블리 코드로 변경하여 사용하였다.


이런 번거로움을 개선하기 위해서 C, C++과 같은 High Level Language Compiler가 나오게 되었다.

Windows에서는 Executable binary image의 앞 세 자리를 이용하여 실행파일 확장자를 EXE로 지정하였다.



Cross Compile는 실제 Target에서 돌아갈 Binary Image를 PC 상에서  Compile 할 수 있게 해주는 환경이다.


ARM Developer Suite(ARM ADS) 설치 방법

설치를 위하여 설정화면이 나오는 다음페이지로 계속 이동시킨다.


설치할 경로를 지정한다.

설치 옵션에서 전체 설치를 선택한다.


컴파일러의 종류를 모두 선택


Install License 선택

License Key를 설치하기 위해서 License Key가 있는 폴더를 지정한다. (License Key 파일은 설치파일이 존재하는 폴더에 ClACK 폴더에 있다.)

License Key 선택 (LICENSE.DAT)



License Key 목록 확인



설치된 버전은 이전 버전으로 현재 나온 최신 버전으로 패치를 해주어야한다.

패치파일을 일반적으로 실행할 경우에 패치시에 오류가 발생할 수 있으므로 꼭 관리자 권한으로 실행을 한다. 

Unzip으로 압축을 해제하면 자동으로 패치가 된다.








코드 그룹화 및 컴파일러 설정

코드 파일이 있는 폴더를 프로그램이 설치된 경로로 복사해서 집어넣는다.

프로그램을 실행시킨다.

파일을 추가하기 위하여 New를 선택한다.

프로젝트에서 프로젝트 종류를 ARM Executable Image로 선택하고 프로젝트 이름 및 프로젝트 파일이 저장될 경로를 설정해준다.

프로젝트가 생성이 되면 Target을 DebugRel로 선택 후 그룹을 생성한다.

룹 이름 설정을 한다.

그룹 폴더가 생성이 되었으면 그룹에 파일을 추가한다.

기본 파일 세개가 존재하는데 추가하는 순서는 상관이 없다.

현재는 CStartup.S인 Assembly 파일을 추가해준다.

모든 Target을 체크해준다.

나머지 기본 파일을 추가한다.

Cstartup_SAM7.c과 retarget.c을 선택하여 추가한다.

 Target을 설정한다.

테스트 코드 파일을 그룹 밑에 추가를 한다.

Target을 설정한다.

모든 설정파일과 코드 파일을 넣은 후 추가 세팅을 해준다.

DebugRel Settings을 선택한다.

Target Settings 메뉴에서 Post-linker를 ARM fromELF로 설정한다.

ARM Assembly 메뉴에서 Target 탭의 내용을 아래와 같이 수정한다.

ARM C Compiler 메뉴에서 Target and Source 탭을 아래와 같이 설정한다.

ARM C Compiler 메뉴에서 Debug/Opt 탭의 내용을 아래와 같이 수정한다.

ARM Linker 메뉴에서 Output 탭의 내용을 아래와 같이 수정한다.

ARM Linker 메뉴에서 Layout 탭의 내용을 아래와 같이 수정한다.

ARM Linker 메뉴에서 Listings 탭을 아래와 같이 수정한다.

ARM from ELF 메뉴를 아래와 같이 수정한다.

코드를 볼때 탭의 크기를 실제 탭의 크기와 같게 변경한다.


컴파일시에 Entry Point가 없다고 경고가 생기면 아래와 같이 수정하면 된다.

모든 설정이 끝났으면 기본 코드 말고 실제 컴파일 할 코드를 컴파일 한다.

코드를 더블클릭하면 코드의 내용이 보인다.

출처 : http://wowcat.tistory.com/1961    (20141027 업무일지 양태영 [16번])

위의 출처에서 내용을 참고하여 다시 작성하였습니다.


ARM Assembly의 Compile 과정


Windows는 PE 파일 구조를 따르고 Linux 계열은 ELF 파일 구조를 따른다.





LDS는 Linker Script File


Lib File 만들기

 armar -r recipes.lib spaghetti.o, applejuice.o ramen.o    

728x90