SlideShare a Scribd company logo
Raspberry Pi 에서
실행파일 살펴보기
PTD Study. 2017. 05. 29. 정정국
목차
1. 라즈베리파이 OS 설치 및 환경설정
2. Ubuntu - mate 에서의 ELF는 어떨까?
3. 간단히 살펴보는, ARMv7 에서의 함수호출규약
1. 라즈베리파이 OS 설치 및 환경설정
1-1. OS 설치
https://ubuntu-mate.org/download/ (또는 .img.xz파일_1.1GB , .img파일_4.8GB )
윈도우 : 네이버 블로그 참조 / 우분투 16.04 : unxz(설치필요), Startup Disk Creator
1-2. 추가설정없이, 진행
apt-get install vim gedit … 안됨. 있는 것들만 사용.
2. Ubuntu - mate 에서의 ELF는 어떨까?
2. Ubuntu - mate 에서의 ELF는 어떨까?
3. 간단히 살펴보는, ARMv7
위키피디아 [ARM 함수호출규약]
표준 ARM 호출 규약은 16개의 ARM 레지스터를 다음과 같이 할당한다:
armasm 레퍼런스 문서 : armasm User Guide (PDF버전)
x86에서는 PC(Program Counter)대신에 IP(Instruction Pointer)라고 하며,
32bit에선 EIP, 64bit에선 RIP register이다.
r15 프로그램 카운터(PC, Program Counter)
r14 링크 카운터(LR, Link Register)
r13 스택 카운터(SP, Stack Pointer)
r12 프로시처 내 호출 스크래치 레지스터 (IP, Intra-Procedure-call scratch register)
r4 ~ r11 지역 변수 보유를 위해 사용
r0 ~ r3 함수로 통과되는 인수값을 보유하고 함수로부터 반환되는 결과값을 보유

More Related Content

What's hot

리눅스에 대하여
리눅스에 대하여리눅스에 대하여
리눅스에 대하여
ETRIBE_STG
 
One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사호상 장
 
caanoo Ernice
caanoo Ernicecaanoo Ernice
caanoo Ernicejumiss
 
망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5
종인 전
 
시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203
doo rip choi
 
Python anaconda install_guide_kor
Python anaconda install_guide_korPython anaconda install_guide_kor
Python anaconda install_guide_kor
haiteam
 
강좌 02 ARM 펌웨어 개발 환경 개요
강좌 02 ARM 펌웨어 개발 환경 개요강좌 02 ARM 펌웨어 개발 환경 개요
강좌 02 ARM 펌웨어 개발 환경 개요
chcbaram
 
2장 리눅스의 기초
2장 리눅스의 기초2장 리눅스의 기초
2장 리눅스의 기초
Young Jin Suh
 
이것이 리눅스다
이것이 리눅스다이것이 리눅스다
이것이 리눅스다
Yeon Tae Kim
 
Mongo DB 활용가이드 Tip 35 ~ 41
Mongo DB 활용가이드 Tip 35 ~ 41Mongo DB 활용가이드 Tip 35 ~ 41
Mongo DB 활용가이드 Tip 35 ~ 41cosmosyc
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
Jong Wook Kim
 
Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??
유명환 FunFun Yoo
 
2주차 linux
2주차 linux2주차 linux
2주차 linux
준혁 이
 
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
Ubuntu Korea Community
 
Macro for Game
Macro for GameMacro for Game
Macro for Game
Jeong-Hoon Mo
 
강좌 06 부트로더
강좌 06 부트로더강좌 06 부트로더
강좌 06 부트로더
chcbaram
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발
chcbaram
 
강좌 03 개발환경 구축
강좌 03 개발환경 구축강좌 03 개발환경 구축
강좌 03 개발환경 구축
chcbaram
 
강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계
chcbaram
 
ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)Chulgyu Shin
 

What's hot (20)

리눅스에 대하여
리눅스에 대하여리눅스에 대하여
리눅스에 대하여
 
One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사One click recovery_application-특허_및_제품_조사
One click recovery_application-특허_및_제품_조사
 
caanoo Ernice
caanoo Ernicecaanoo Ernice
caanoo Ernice
 
망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5망고100 보드로 놀아보자 5
망고100 보드로 놀아보자 5
 
시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203시스템 관리자를 위한 리눅스강의 1강 20130203
시스템 관리자를 위한 리눅스강의 1강 20130203
 
Python anaconda install_guide_kor
Python anaconda install_guide_korPython anaconda install_guide_kor
Python anaconda install_guide_kor
 
강좌 02 ARM 펌웨어 개발 환경 개요
강좌 02 ARM 펌웨어 개발 환경 개요강좌 02 ARM 펌웨어 개발 환경 개요
강좌 02 ARM 펌웨어 개발 환경 개요
 
2장 리눅스의 기초
2장 리눅스의 기초2장 리눅스의 기초
2장 리눅스의 기초
 
이것이 리눅스다
이것이 리눅스다이것이 리눅스다
이것이 리눅스다
 
Mongo DB 활용가이드 Tip 35 ~ 41
Mongo DB 활용가이드 Tip 35 ~ 41Mongo DB 활용가이드 Tip 35 ~ 41
Mongo DB 활용가이드 Tip 35 ~ 41
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
 
Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??Java 개발자가 하드웨어를 만나게 된다면??
Java 개발자가 하드웨어를 만나게 된다면??
 
2주차 linux
2주차 linux2주차 linux
2주차 linux
 
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
노태상 - 리눅스 커널 개요 및 이슈 아이엠 (2010Y01M30D)
 
Macro for Game
Macro for GameMacro for Game
Macro for Game
 
강좌 06 부트로더
강좌 06 부트로더강좌 06 부트로더
강좌 06 부트로더
 
OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발OpenCR 아두이노 펌웨어개발
OpenCR 아두이노 펌웨어개발
 
강좌 03 개발환경 구축
강좌 03 개발환경 구축강좌 03 개발환경 구축
강좌 03 개발환경 구축
 
강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계
 
ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)
 

Similar to Raspberry pi 에서 실행파일 살펴보기

라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째
Yongho HWANG
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
NAVER D2
 
코분투메뉴얼 10.04 Cobuntu Manual
코분투메뉴얼 10.04 Cobuntu Manual코분투메뉴얼 10.04 Cobuntu Manual
코분투메뉴얼 10.04 Cobuntu Manual
Ubuntu Korea Community
 
Raspberry Pi Basic Usage
Raspberry Pi Basic UsageRaspberry Pi Basic Usage
Raspberry Pi Basic Usage
고포릿 default
 
cross compile
cross compilecross compile
cross compile
he4722
 
망고100 보드로 놀아보자 13
망고100 보드로 놀아보자  13망고100 보드로 놀아보자  13
망고100 보드로 놀아보자 13
종인 전
 
보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2
Jason Choi
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
Sam Kim
 
04강 라즈베리-개발환경구축-실습
04강 라즈베리-개발환경구축-실습04강 라즈베리-개발환경구축-실습
04강 라즈베리-개발환경구축-실습
봉조 김
 
시스템 최신기술 Part1
시스템 최신기술 Part1시스템 최신기술 Part1
시스템 최신기술 Part1
SeongWoo Park
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Mario Cho
 
소프트박스 라즈베리파이 교육키트 개발환경 설정
소프트박스 라즈베리파이 교육키트 개발환경 설정소프트박스 라즈베리파이 교육키트 개발환경 설정
소프트박스 라즈베리파이 교육키트 개발환경 설정
봉조 김
 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10mimul
 
망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4
종인 전
 
Linux ut-broker-install
Linux ut-broker-installLinux ut-broker-install
Linux ut-broker-install
JUNHEEKIM27
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
Tae Young Lee
 
Python packaging
Python packagingPython packaging
Python packagingJi Hun Kim
 
모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍
Suhan Park
 
Rasberry nodejs install_final
Rasberry nodejs install_finalRasberry nodejs install_final
Rasberry nodejs install_final
Kwan Yeong Kim
 

Similar to Raspberry pi 에서 실행파일 살펴보기 (19)

라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째라즈베리파이 설치하기 두번째
라즈베리파이 설치하기 두번째
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
코분투메뉴얼 10.04 Cobuntu Manual
코분투메뉴얼 10.04 Cobuntu Manual코분투메뉴얼 10.04 Cobuntu Manual
코분투메뉴얼 10.04 Cobuntu Manual
 
Raspberry Pi Basic Usage
Raspberry Pi Basic UsageRaspberry Pi Basic Usage
Raspberry Pi Basic Usage
 
cross compile
cross compilecross compile
cross compile
 
망고100 보드로 놀아보자 13
망고100 보드로 놀아보자  13망고100 보드로 놀아보자  13
망고100 보드로 놀아보자 13
 
보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2보안프로젝트 세미나 Viper-v1.2
보안프로젝트 세미나 Viper-v1.2
 
도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편도커없이 컨테이너 만들기 1편
도커없이 컨테이너 만들기 1편
 
04강 라즈베리-개발환경구축-실습
04강 라즈베리-개발환경구축-실습04강 라즈베리-개발환경구축-실습
04강 라즈베리-개발환경구축-실습
 
시스템 최신기술 Part1
시스템 최신기술 Part1시스템 최신기술 Part1
시스템 최신기술 Part1
 
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoLinux Kernel Boot Process , SOSCON 2015, By Mario Cho
Linux Kernel Boot Process , SOSCON 2015, By Mario Cho
 
소프트박스 라즈베리파이 교육키트 개발환경 설정
소프트박스 라즈베리파이 교육키트 개발환경 설정소프트박스 라즈베리파이 교육키트 개발환경 설정
소프트박스 라즈베리파이 교육키트 개발환경 설정
 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10
 
망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4망고100 보드로 놀아보자 4
망고100 보드로 놀아보자 4
 
Linux ut-broker-install
Linux ut-broker-installLinux ut-broker-install
Linux ut-broker-install
 
20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제20141029 하둡2.5와 hive설치 및 예제
20141029 하둡2.5와 hive설치 및 예제
 
Python packaging
Python packagingPython packaging
Python packaging
 
모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍
 
Rasberry nodejs install_final
Rasberry nodejs install_finalRasberry nodejs install_final
Rasberry nodejs install_final
 

Raspberry pi 에서 실행파일 살펴보기

  • 1. Raspberry Pi 에서 실행파일 살펴보기 PTD Study. 2017. 05. 29. 정정국
  • 2. 목차 1. 라즈베리파이 OS 설치 및 환경설정 2. Ubuntu - mate 에서의 ELF는 어떨까? 3. 간단히 살펴보는, ARMv7 에서의 함수호출규약
  • 3. 1. 라즈베리파이 OS 설치 및 환경설정 1-1. OS 설치 https://ubuntu-mate.org/download/ (또는 .img.xz파일_1.1GB , .img파일_4.8GB ) 윈도우 : 네이버 블로그 참조 / 우분투 16.04 : unxz(설치필요), Startup Disk Creator 1-2. 추가설정없이, 진행 apt-get install vim gedit … 안됨. 있는 것들만 사용.
  • 4. 2. Ubuntu - mate 에서의 ELF는 어떨까?
  • 5.
  • 6. 2. Ubuntu - mate 에서의 ELF는 어떨까?
  • 7. 3. 간단히 살펴보는, ARMv7 위키피디아 [ARM 함수호출규약] 표준 ARM 호출 규약은 16개의 ARM 레지스터를 다음과 같이 할당한다: armasm 레퍼런스 문서 : armasm User Guide (PDF버전) x86에서는 PC(Program Counter)대신에 IP(Instruction Pointer)라고 하며, 32bit에선 EIP, 64bit에선 RIP register이다. r15 프로그램 카운터(PC, Program Counter) r14 링크 카운터(LR, Link Register) r13 스택 카운터(SP, Stack Pointer) r12 프로시처 내 호출 스크래치 레지스터 (IP, Intra-Procedure-call scratch register) r4 ~ r11 지역 변수 보유를 위해 사용 r0 ~ r3 함수로 통과되는 인수값을 보유하고 함수로부터 반환되는 결과값을 보유