25
Arm Developer Suite™ (ADS)

Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

Arm Developer Suite™ (ADS)

Page 2: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ARM ADS

ARM ADS는 크게 다음의 두개의 프로그램으로 구성되어 있다.

CodeWarrior for ARM

ARM Project Manager (APM)은 윈도우 환경에서 소스편집/컴파일/링킹 기능을 제공하는 프로그램이다.

AxD (ARM Extended Debugger)

AxD는 윈도우 환경에서 사용자의 프로그램을 디버깅/실행해 볼 수있는 디버거이다.

이 프로그램은 기본적으로 시뮬레이터(Armulator)를 제공하고 RDI 프로토콜을 사용하여 에뮬레이터에 연결하여 실시간으로

프로그램을 디버깅할 수 있는 기능을 제공한다.

Page 3: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

Code Warrior

New Project Window

프로젝트이름

저장 경로(path)

프로젝트 타입

Page 4: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

Code Warrior

Project Window

툴옵션설정

컴파일/링킹

디버거로실행

데이터수정동기화

File page프로젝트에포함된파일보여줌

Link Order링킹순서설정

Target포함된타겟표시여기서말하는타겟은일종의컴파일/링킹옵션의묶음이라고할수있다.

Touch해당 파일 무조건재 컴파일

Untouch강제로 재 컴파일하지 않음

Page 5: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

Code Warrior

Target Setting- binary 이미지 생성 여부

Access Path- 파일에 포함된 파일의 경로추가 및 삭제

툴옵션Window

Assembler, compiler 옵션설정- 타겟 코어 설정- Endian 설정- ARM/Thumb 모드 설정- 크기/속도 최적화 설정- 디버그 정보 포함 범위 설정

Linker 옵션설정- 읽기 (RO), 읽기 쓰기 (RW)영역 설정

- 프로그램 시작 위치 설정(오브젝트 파일, 섹션)

Page 6: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

프로그램 개발순서

ADS 및 ICE를이용한프로그램개발1. CodeWarrior를 이용하여 프로젝트 파일 생성

2. C/C++ 또는 Assembly 소스 파일 생성

3. 프로젝트의 개발툴 옵션 설정(어셈블러/컴파일러/링커옵션)

4. 컴파일 (Build)하여 실행이미지 생성

5. AxD실행

6. 에뮬레이터 관련 옵션 설정

7. 이미지를 에뮬레이터를 통해서 타겟 보드에 다운로드

8. 디버깅 수행

Page 7: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

프로젝트 만들기

1. [File]-[New] 선택

2. 다이얼로그 박스에서 Project 선택

3. New Project 윈도우에서 다음 사항 설정한다.

► Type: 템플릿을 선택한다. ARM Executable Image를 선택

► Project Name: 프로젝트 이름 입력.

► Location: 프로젝트 경로 설정

4. OK

Page 8: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

프로젝트에 파일 추가

1. [Project]-[Add Files..] 선택

2. 추가할 파일들을 선택 후 Open 버튼 클릭

Page 9: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

툴 옵션 설정

Project 윈도우에서 타겟 탭 선택 (DebugRel) 후 설정할 타겟더블클릭

또는 툴 설정 아이콘 클릭

Page 10: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

툴 옵션 설정(1)- C Compiler

1. Language Settings-ARM C compiler 의 Target and Source 윈도우에서 다음 사항 설정하고 Save 버튼 클릭

► Byte Sex = “Little Endian”

► Processor = “ARM920T”

► Floating Point = “None”

► Source Language =“ANSI/ISO Standard C”

Page 11: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

툴 옵션 설정(1)- ARM C Compiler

2. Debug / Opt 페이지에서 다음과 같이 설정하고 Save 버튼 클릭

► Debug Control.Enable debug Table Generation -> 체크.Include Preprocessor Symbol -> 체크

► Optimization Level = “None”

Page 12: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

툴 옵션 설정(2)- ARM Assembler

1. Language Settings-ARM C compiler 의 Target and Source 윈도우에서 다음 사항 설정하고 Save 버튼 클릭

► Byte Sex = “Little Endian”

► Processor = “ARM920T”

► Floating Point = “None”

► Initial Sate =“ARM”

Page 13: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

툴 옵션 설정(3)- ARM Linker

1. Linker-ARM Linker 의 Output 윈도우에서 다음 사항 설정하고

Save 버튼 클릭

► Linktype = “Simple”

► RO base = “0x30000000”

► RW base

Page 14: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

툴 옵션 설정(3)- ARM Linker

2. Layout 윈도우에서 다음 사항 설정하고 Save 버튼 클릭

► Object/Symbol = “init.o”

► Section = “Init”

Page 15: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

툴 옵션 설정(4)- 바이너리 출력 설정

바이너리 이미지도 함께 생성하기 위하여 다음과 같이 설정한다.

1. Target Setting 윈도우에서 Post-linker를 설정한다.

► Post-linker: ARM fromELF”

Page 16: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

툴 옵션 설정(4)- 바이너리 출력 설정

바이너리 이미지도 함께 생성하기 위하여 다음과 같이 설정한다.

2. Linker-ARMfromELF 윈도우에서 Post-linker를 설정한다.

► Output format = “Plain binary”

Page 17: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

컴파일 (이미지파일 생성)

어셈블러/컴파일러/링커의 옵션을 설정한 후, 프로젝트를컴파일/링킹한다.

[Project] -> [Make] 선택 또는 Make 아이콘 클릭

Page 18: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

AxD 실행

PC - Emulator - 보드 연결

► PC와 연결

에뮬레이터에 따라서 지원하는 방식에 차이가 있다.

OPENice32-A900: Serial /USB/Ethernet 지원, 보통 USB로연결한다.

► 타겟 시스템과 연결

플랫 케이블로 타겟의 에뮬레이터 인터페이스용 커넥터에

연결한다.

타겟 및 에뮬레이터 리셋

타겟 리셋 -> 에뮬레이터 리셋 (eg. OPENice32-A900)

디버거 (AxD) 실행

Page 19: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

AxD – 타겟 설정

► 1. [Option]-[Configure Target..] 선택

► 2. Target Environment 에서 OPENice32-A900을 선택한다.

► 3. Configure 버튼을 클릭한다.

Page 20: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

AxD – 타겟 설정

통신 설정

► 1. Remote 페이지에서 USB 선택

Page 21: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

AxD – 타겟 설정

통신 설정

► 1. Debugger 페이지에서 다음과 설정후 확인 버튼 클릭

Byte Sex=“Little Endian”

SysReset Enable=“체크”

TRST Enable=“체크”

To init SMU= “체크 안함”

Execute boot code=“체크”

Flash Download=“체크 안함”

Page 22: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

AxD – 이미지 다운로딩

통신 설정

1. [File]-[Load Image]를 선택하여 해당 이미지 (test.axf) 를선택한다. 그러면 파일이 타겟으로 다운로딩 된다.

Page 23: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

AxD – 디버깅 수행

1. 다양한 디버깅 기능들을 이용하여 디버깅 기능 수행.

Page 24: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

Go Stop Step

Step In

Run to Cusor

Step Out

기능 설명

Step: 다음 한 라인 실행 (함수일 경우에도 함수 내부로 이동하지 않음)

Step In: 다음 한 라인 실행 (함수일 경우에는 함수 내부로 이동)

Step Out: 현재 함수의 끝까지 실행(함수 실행후 다음 라인 위치)

Run to Cursor: 커서 위치 까지 실행

Go: 프로그램 실행 (Breakpoint, Watchpoint를 만나면 정지)

Stop: 프로그램 실행 멈춤

Page 25: Arm Developer Suite™ (ADS) · 2016. 10. 31. · Byte Sex = “Little Endian” Processor = “ARM920T” Floating Point = “None” Initial Sate =“ARM”

ADS 프로젝트예제

Memory/Register/Variable

Processor Views menu에서 선택

► Variables : Local variables, Global varibles

► Registers : Current mode 및 6개의 모드 register

► Memory : 특정영역 Memory

역 어셈블 모드 <-> 일반 모드

[Option]-[Toggle Interleaving] 선택

Breakpoint 설정

Code Breakpoint 설정 방법

► 해당라인 double-click

► [Execute]-[Toggle Breakpoint]선택

► F9 key