logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

ARMv7 프로세서 프로그래밍

ARMv7 프로세서 프로그래밍

(C와 NEON을 이용한 하드웨어 성능 최적화 기법)

제임스 랭브리지 (지은이), 이유찬 (옮긴이)
에이콘출판
35,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
알라딘 판매자 배송 4개 38,000원 >
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

ARMv7 프로세서 프로그래밍
eBook 미리보기

책 정보

· 제목 : ARMv7 프로세서 프로그래밍 (C와 NEON을 이용한 하드웨어 성능 최적화 기법)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 모바일/무선/임베디드 프로그래밍
· ISBN : 9788960778450
· 쪽수 : 400쪽
· 출판일 : 2016-04-08

책 소개

에이콘 임베디드 시스템 시리즈. 이 책은 가장 성공적인 프로세서 중 하나로 손꼽히는 ARM 기반 프로세서를 이용해 프로그래밍하는 노하우를 풀어놓은 책이다.

목차

1부 ARM 시스템과 개발
1장 ARM의 역사
__ARM의 기원
____아콘이 새로운 프로세서를 만들기로 결정한 이유
____아콘은 어떻게 ARM이 되었을까?
____ARM이 실제로 마이크로프로세서를 생산하지 않는 이유
__ARM의 명명 규칙
____사용하는 프로세서의 이름에 대한 규칙
____ARM7TDMI와 ARM926EJ-S의 차이점
____ARM7과 ARMv7의 차이점
____Cortex-M 및 Cortex-A의 차이점
__제조사 문서
__오늘날의 ARM 역할
__정리

2장ARM 임베디드 시스템
__ARM 임베디드 시스템의 정의
____시스템 온 칩이란 무엇인가?
____임베디드 시스템과 시스템 프로그래밍의 차이점
____최적화가 중요한 이유
____RISC 아키텍처의 장점
__적합한 프로세서의 선택
__어떤 것부터 시작해야 할까?
____사용 가능한 보드
____사용 가능한 운영체제의 종류
____각자의 목적에 가장 부합하는 컴파일러는 무엇인가?
____디버깅을 위한 준비
____모든 게 갖춰진 개발 환경이 존재할까?
____알아둬야 할 그 밖의 사항들
__정리

3장 ARM 아키텍처
__기본적인 이해
____레지스터
____스택
____내부 RAM
____캐시
__다른 ARM 서브시스템 알아보기
____프로세서 레지스터의 표현
____CPSR
____연산 유닛
____파이프라인
____밀접하게 연결된 메모리
____코프로세서
__그 밖의 개념 이해
____예외란 무엇인가?
____각기 다른 예외 처리
____연산 모드
____벡터 테이블
____메모리 관리
__다른 기술
____JTAG 디버그(Debug, D)
____강화된 DSP(Enhanced DSP, E)
____벡터 부동소수점(Vector Floating Point, F)
____EmbeddedICE(I)
____제이젤(Jazelle, J)
____롱 멀티플라이(Long Multiply, M)
____Thumb(T)
____합성 가능(Synthesizable, S)
____트러스트존(TrustZone)
____NEON
____big.LITTLE
__정리

4장ARM 어셈블리 언어
__어셈블리 언어의 소개
__컴퓨터와의 대화
__어셈블리를 배워야 하는 이유
____속도
____용량
____재미!
____컴파일러는 완벽하지 않다
____어셈블리를 통해 컴퓨터 과학 이해하기
____직접 어셈블리로 작성하면 안 될까?
__어셈블리의 사용
____부트로더의 작성
____리버스 엔지니어링
____최적화
__ARM 어셈블리 언어
____레이아웃
____명령어 포맷
____조건 코드
____조건 플래그 업데이트
____어드레싱 모드
__ARM 어셈블리 프라이머
____로드와 저장
____값에 대한 설정
____분기
____수학 연산
____예제 프로그램의 이해
__정리

5장 첫발 내딛기
__Hello, World!
__좀 더 자세하게 살펴보기
__Hello World, 실제로 적용해보자!
__소프트웨어 구현
__메모리 매핑
__실제 예제
____실리콘 랩의 STK3800
____실리콘 랩의 STK3200
____아트멜 D20 Xplained Pro
__케이스 스터디: U-Boot
__머신 스터디: 라즈베리 파이
____부트 과정
____라즈베리 파이를 위한 프로그램 컴파일
____다음 작업
__정리

6장 Thumb 명령어 세트
__Thumb
__Thumb-2 기술
__Thumb을 실행하는 방법
__Thumb을 사용할 때의 장점
__Thumb을 사용하는 코어
__ARM-Thumb 인터워킹
__Thumb-1의 소개
____레지스터 사용 가능성
____제거된 명령어
____조건이 없음
____플래그 설정
____배럴 시프터가 없음
____즉시값의 감소
____스택 연산
__Thumb-2의 소개
____새로운 명령어
____코프로세서
____DSP
____FPU
__Thumb으로 작성하기
__정리

7장 어셈블리 명령어
__이동
____MOV
____MVN
____MOVW
____MOVT
____NEG
____예제: 명령어 스트림에서 32비트 상수의 로드
__산술
____ADD
____ADC
____SUB
____SBC
____RSB
____RSC
____예제: 기본적인 수학
__제한된 산술
____QADD
____QSUB
____QDADD
____QDSUB
__데이터 전송
____LDR
____STR
____예제: memcpy
__논리
____AND
____EOR
____ORR
____BIC
____CLZ
__비교
____CMP
____CMN
____TST
____TEQ
__분기
____B
____BL
____BX
____BLX
____예제: 0을 카운트하기
____예제: Thumb 인터워킹
____MOV pc, lr이란?
__곱셈
____MUL
____MLA
____UMULL
____UMLAL
____SMULL
____SMLAL
__나눗셈
____SDIV
____UDIV
__다중 레지스터 데이터 전송
____STM
____LDM
__배럴 시프터
____LSL
____LSR
____ASR
____ROR
____RRX
__스택 연산
____PUSH
____POP
____예제: 서브루틴으로부터의 리턴
__코프로세서 명령어
____MRC
____MCR
__추가적인 명령어
____SVC
____NOP
____MRS
____MSR
__정리

8장 NEON
__NEON을 사용할 때의 이점
__NEON에서 지원하는 데이터 타입
__어셈블리에서 NEON의 사용
____레지스터의 표현
____데이터의 로드와 저장
____최적화된 memcpy
____NEON 명령어
__C 언어에서 NEON의 사용
____인트린직
____NEON 인트린직의 사용
____이미지를 그레이스케일로 변환
__정리

9장 디버깅
__디버거란?
____디버거의 기능
____ARM 디버깅 능력
__디버깅 타입
____루프
____루틴
____인터럽트 컨트롤러
____부트로더
__디버거
____GNU 디버거
____J-Link GDB 디버거
__디버깅 예
____무한 루프
____알려지지 않은 예외
____0으로 나눗셈
__상세한 분석
____데이터 취소
____시리얼 라인의 문제
____64비트 연산
____시간 응답
__정리

10장 최적화된 C 코드의 작성
__코드 최적화의 규칙
____최적화로 시작하지는 말자
____컴파일러에 대한 지식
____여러분이 작성한 코드에 대한 지식
__프로파일링
____운영체제 안에서의 프로파일링
____베어 메탈 시스템에서의 프로파일링
__C 최적화
____기본적인 예제
____카운트를 높이는 것이 아니라 줄여야 한다.
____정수
____나눗셈
____너무 많은 파라미터를 사용하지는 말자
____객체가 아닌 포인터
____시스템 메모리를 자주 업데이트해서는 안 된다
____정렬
__어셈블리 최적화
____특별한 루틴
____인터럽트의 처리
__하드웨어 설정 최적화
____주파수 설정
____캐시 설정
__정리

2부 레퍼런스
부록 A 용어
__분기 예측
__캐시
____캐시 히트
____캐시 라인
____캐시 미스
__코프로세서
__CP10
__CP11
__CP14
__CP15
__사이클
__예외
__인터럽트
__제이젤
__JTAG
__MIPS
__NEON
__비순차 실행
__파이프라인
__레지스터
__SIMD
__SoC
__합성 가능
__트러스트존
__벡터 테이블

부록 B ARM 아키텍처 버전
__ARMv1
__ARMv2
__ARMv3
__ARMv4
__ARMv5
__ARMv6
__ARMv6-M
__ARMv7-A/R
__ARMv7-M
__ARMv8

부록 C ARM 코어 버전
__ARM6
__ARM7
__ARM7TDMI
__ARM8
__StrongARM
__ARM9TDMI
__ARM9E
__ARM10
__XScale
__ARM11
__Cortex
____Cortex-A
____Cortex-R
____Cortex-M

부록 D NEON 인트린직과 명령어
__데이터 타입
__레인 타입
__어셈블리 명령어
__인트린직 명명 규칙

부록 E 어셈블리 명령어
__ARM 명령어
____산술 명령어
____병렬 산술 명령어
____이동
____로드
____저장
____논리
____비교
____새튜레이트
____분기
____확장
____기타
__Cortex-M 코어에서의 Thumb 명령어

저자소개

제임스 랭브리지 (지은이)    정보 더보기
다른 사람에게 자기 이야기를 하는 것을 그다지 좋아하진 않지만, 그래도 해야 할 때는 하려고 노력하는 편이다. 싱가폴에서 태어났고 부모님을 따라 프랑스 낭트에 정착하기 전까지 여러 나라에서 거주했다. 현재 프랑스 낭트에서 부모님을 모시고 딸과 함께 살고 있다. 임베디드 시스템 컨설턴트며 기업, 군대, 모바일 텔레폰, 항공 보안 회사에서 15년이상 근무했다. 주로 어셈블리로 부트로더를 만들거나 최적화하는 등의 로우 레벨 개발을 했으며, 거의 대부분 작은 프로세서를 사용해왔다. 이 책과 관련한 계약을 하지 않았을 때는, 임베디드 시스템과 관련하여 엔지니어들을 교육하는 일을 하거나 파트너들을 당황케 하는 신기한 물건을 만들곤 했다. 여섯 살 때 첫 번째 컴퓨터 프로그램을 만들었으며 그 이후로 계속 프로그래밍을 하고 있다. BBC 마이크로Micro와 아미가Amiga 전에는 애플 II, ZX80, ZX81을, 그 이후로는 PC를 사용하고 있다.
펼치기
이유찬 (옮긴이)    정보 더보기
중학교 때 처음 컴퓨터를 접하고 컴퓨터에 미쳐 살다가 대학에서 컴퓨터 공학을 전공하고 나서야 컴퓨터라는 학문이 얼마나 어려운지 뼈저리게 깨달은 전형적인 전산쟁이다. 대학 졸업 후 시스템 최적화 분야의 업무를 담당하고 있는 모바일 개발자로, 틈틈이 게임을 즐기며 새로운 프로그래밍 기법을 공부하는 늦깎이 프로그래머이기도 하다. 좋아하는 분야는 자바와 C#, C++ 같은 객체 지향 프로그래밍이며, 현재는 함수형 프로그래밍에 푹 빠져 있다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책