검색

검색결과 상세 정보

  • HOME
  • 검색결과 상세 정보

(실전!)ARM cortex-M3 시스템 프로그래밍 완전정복. 1

박선호

책이미지
서평쓰기
서평쓰기
책이미지

QRcode

QR Code
QRcode 사용방법
QRcode 사용방법
QR코드 정의
사각형의 가로세로 격자무늬에 다양한 정보를 담고 있는 2차원(매트릭스)형식의 코드로 스마트폰으로 QR코드를 스캔하면 각종 정보를 제공 받을 수 있습니다.
QR코드 인식프로그램
스마트폰 마켓에 들어가면 'QR코드 스캔 프로그램'을 검색해 무료 어플을 다운받아 사용하시면 됩니다.
도서정보 QR코드 이용하기
도서 상세정보에서 QR코드를 스캔하면, 모바일 웹페이지로 연결되어 해당 도서의 상세정보 및 소장정보 등을 확인 할 수있습니다.
닫기
상세정보
자료유형단행본
서명/저자사항(실전!)ARM cortex-M3 시스템 프로그래밍 완전정복. 1/ 박선호; 오영환 공저
개인저자박선호
오영환, 저
발행사항성남: D&W Wave, 2010
형태사항595p 삽도, 도표; 26cm
총서사항Mango story;2
ISBN9788996380016(1)
일반주기 Appendix: 1. Mango-M32 회로도 1-4, 2. Mango-Z1 회로도 1-4
임베디드에 미친 녀석들!(Embedded crazy boys!)
ARM cortex-M3 (STM32F10x) 테스트 보드를 통해 실제 개발에 활용할 수 있는 가장 완벽한 지침서
색인 수록
서지주기참고문서 및 참고 Sites 수록
분류기호005.42
언어한국어

소장정보

서비스 이용안내
  • 보존서고도서 신청보존서고도서 신청
  • 인쇄인쇄
메세지가 없습니다
No. 등록번호 청구기호 소장처 도서상태 반납예정일 예약 서비스 CD-NET
1 EM93883 005.42 박53a v.1 2층 제1자료열람실/2층 일반도서서가 대출가능
인쇄 이미지
보기

초록

『시스템 프로그래밍 완전정복 1(ARM CORTEX M3)』는 ARM Cortex-M3 (STM32F10x) 테스트 보드를 통해 실제 개발에 활용할 수 있는 책이다. ARM Cortex-M3 시스템 프로그램 개발 실전 가이드로, Cortex-M3 MCU를 활용한 펌웨어 개발 실전 코드 제공하고 단순 제어에서 무선통신까지 광범위한 체험을 학습한다.

목차

목차 일부

서언    3
목차    5
그림 목차    15

<b>1.    Introduction</b>    19
 1.1.    ARM Architecture History    19
  1.1.1.    ARM 초기 제품    19
  1.1.2.    ARM7TDMI Family부터 ARM9    21
  1.1.3.    ARM10과 ARM11 Family    23
 1.2.    Cortex Family 개요    26
  1.2...

목차 전체

서언    3
목차    5
그림 목차    15

<b>1.    Introduction</b>    19
 1.1.    ARM Architecture History    19
  1.1.1.    ARM 초기 제품    19
  1.1.2.    ARM7TDMI Family부터 ARM9    21
  1.1.3.    ARM10과 ARM11 Family    23
 1.2.    Cortex Family 개요    26
  1.2.1.    Cortex A-, R-, M-series    26
  1.2.2.    ARM Licenses    28
  1.2.3.    M0, M3, R4F, A8, A9 개요    28
 1.3.    ARM7 Architecture와 비교를 통한 Cortex-M3 특징    34
  1.3.1.    Harvard Architecture    34
  1.3.2.    Thumb-2 Instruction Set    35
  1.3.3.    Pipeline Branch Speculation    36
  1.3.4.    Cortex-M3 interrupt    37

<b>2.    Cortex-M3 Architecture</b>    39
 2.1.    Cortex-M3 block diagram    39
 2.2.    Registers    42
  2.2.1.    프로세서 모드와 Privilege levels    42
  2.2.2.    스텍    42
  2.2.3.    Cortex-M3 Core 레지스터들    43
 2.3.    Thumb-2 Instruction Set Architecture (ISA)    52
  2.3.1.    Architecture profile    52
  2.3.2.    Thumb-2    52
 2.4.    Memory Map    55
  2.4.1.    미리 정의된 Memory Map    55
  2.4.2.    Bit banding    56
  2.4.3.    메모리 Endian    59
 2.5.    Exceptions and Interrupts    60
  2.5.1.    Exception 종류    60
  2.5.2.    Exception Priority & Nested 처리    61
  2.5.3.    ARM7, ARM9과의 비교    61
  2.5.4.    STM, LDM 처리시의 Interrupt    62
 2.6.    Nested Vectored Interrupt Controller    63
  2.6.1.    NVIC 특징    63
  2.6.2.    Tail chaining, late arrival, pop pre-emption    65
 2.7.    기타 특징    68

<b>3.    STM32 CPU 특징</b>    69
 3.1.    Features    69
 3.2.    STM32F103xx Device overview    72
 3.3.    STM32F103xx block diagram    74
 3.4.    Memory mapping    75
 3.5.    Booting mode    78
 3.6.    Low-power modes    80
 3.7.    Core peripherals    81
  3.7.1.    Nested vectored interrupt controller (NVIC)    81
  3.7.2.    System control block (SCB)    83
  3.7.3.    SysTick timer (STK)    84

<b>4.    Hardware Manual</b>    85
 4.1.    Cortex-M3 기본 EVB (Mango-M32) 하드웨어 매뉴얼    85
  4.1.1.    Mango-M32 구조    86
  4.1.2.    Mango-M32 부품면 설명    87
  4.1.3.    Part #1 ? STM32F103xx MCU    88
  4.1.4.    Part #2 ? USB Connector    89
  4.1.5.    Part #3, #4, #5 ? RS232C    90
  4.1.6.    Part #6 ? 7 Segment LED    90
  4.1.7.    Part #7 ? BOOT Select Switch    92
  4.1.8.    Part #8, #9, #10 ? WKUP, USER, RESET 버튼    93
  4.1.9.    Part #11, #12 ? 12MHz, 32.768KHz Crystal    93
  4.1.10.    Part #13 ? Power LED    93
  4.1.11.    Part #14 ? Indicator LEDs    93
  4.1.12.    Part #15 ? Expansion Connector    94
  4.1.13.    Part #16 ? JTAG 커넥터    95
 4.2.    Cortex-M3 + ZigBee EVB (Mango-Z1) 하드웨어 매뉴얼    96
  4.2.1.    Mango-z1 부품 설명    97
  4.2.2.    Mango-z1 보드 구조도    97
  4.2.3.    Mango-z1 보드 하드웨어    99
  4.2.4.    User Keys    103
  4.2.5.    Indicator LEDs    105
  4.2.6.    USB    107
  4.2.7.    RS-232C    109
  4.2.8.    Power    112
  4.2.9.    RF Transceiver    113
  4.2.10.    2.4GHz RF    114
  4.2.11.    Expansion Slot    115
  4.2.12.    JTAG    116

<b>5.    개발 환경 구축</b>    117
 5.1.    IAR workbench 환경 구축    117
  5.1.1.    Evaluation version 다운로드    117
  5.1.2.    IAR Embedded Workbench for ARM v.5.2 설치    118
 5.2.    RIDE7 환경 구축    120
  5.2.1.    RIDE7 다운로드    120
  5.2.2.    Ride7_7.30.10.0169.exe 설치    120
  5.2.3.    RKit-ARM_1.26.10.0130.exe 설치    122
  5.2.4.    RIDE7 프로젝트 구성 예제    123
 5.3.    STM Flash Loader 설치    124
 5.4.    터미널 프로그램 설치    128
 5.5.    참고 사항 - Error 사항 대처 방법    131
  5.5.1.    File Open error - Fatal Error[Pe005]    131
  5.5.2.    "assert_param" error - Error[Li005]    132
  5.5.3.    빌드 Warning [Pa082]    133

<b>6.    Cortex-M3 기본 Firmware 프로그래밍</b>    135
 6.1.    LED를 켜 보자 ? 무작정 따라하기    135
  6.1.1.    폴더 구조 설정    135
  6.1.2.    IAR 환경 구성 및 빌드    136
  6.1.3.    RIDE7 환경 구성 및 빌드    144
  6.1.4.    Flash Download    151
  6.1.5.    실행    157
 6.2.    최초 프로그램 설명    159
  6.2.1.    LED 회로도 및 하드웨어 설명    159
  6.2.2.    (*(volatile unsigned *)0x40021018) |= 0x8    160
  6.2.3.    (*(volatile unsigned *)0x40010C04) |= 0x10    165
 6.3.    LED를 꺼 보자    171 
  6.3.1.    LED 회로도 분석    171
  6.3.2.    소스 파일 폴더 위치    172
  6.3.3.    main.c 변경 사항    172
  6.3.4.    수행 결과    173
  6.3.5.    delay_int_count    173
  6.3.6.    GPIO Set Reset 레지스터    174
  6.3.7.    Port bit Reset register    174
  6.3.8.    Port bit Set Reset register    175
  6.3.9.    delay 시간에 관한 설명    176
 6.4.    1초 delay_int_count 구현하기    177 
  6.4.1.    1초 delay의 정확도    177
  6.4.2.    delay 함수를 만드는 방법    177
  6.4.3.    CPU Clock에 관하여    178
  6.4.4.    Reset and clock control (RCC)    179
  6.4.5.    delay_int_count 어셈블리 코드    181
  6.4.6.    1초 delay_int_count 결론    183
 6.5.    LED 모두 깜빡거리기        184
  6.5.1.    소스 파일 폴더 위치    184
  6.5.2.    LED 회로도 및 위치 설명    184
  6.5.3.    main.c 변경 사항    185
  6.5.4.    GPIOB_CRL 레지스터 설정    186
  6.5.5.    GPIOx_BRR GPIOx_BSRR 레지스터 설정    187
  6.5.6.    수행 결과    188
 6.6.    고급스러운 코딩을 하자 1    190
  6.6.1.    소스 파일 폴더 위치    190
  6.6.2.    platform_config.h 구현 - define의 활용 1    190
  6.6.3.    platform_config.h 구현 - define의 활용 2    193
  6.6.4.    GPIO_B_Output_Init 함수 구현    196
  6.6.5.    led.c 구현    198
  6.6.6.    IAR & RIDE7 빌드    201
  6.6.7.    실행 결과    202
 6.7.    고급스러운 코딩을 하자 2    203
  6.7.1.    소스 파일 폴더 위치    203
  6.7.2.    레지스터의 Address Offset - 상대 주소 지정 방식    203
  6.7.3.    새로운 typedef - RCC_TypeDef 정의    205
  6.7.4.    GPIO_TypeDef 정의    208
  6.7.5.    상대 주소 지정 방식 결론    212
 6.8.    Key가 눌린 것 알아채기    213
  6.8.1.    소스 파일 폴더 위치    213
  6.8.2.    회로도 및 보드 구성 분석    213
  6.8.3.    platform_config.h 변경 사항    215
  6.8.4.    GPIO Input mode 설정    216
  6.8.5.    Key Input 값 Read - GPIO Read 분석    218
  6.8.6.    key.c 분석    220
  6.8.7.    빌드 및 실행    222
 6.9.    Hello World를 찍어보자    224
  6.9.1.    IAR에서 startup_stm32f10x_md.s 추가    224
  6.9.2.    GPIO_Init 분석    224
  6.9.3.    UART 일반    231
  6.9.4.    회로도 분석    234
  6.9.5.    USART macro 및 typedef 분석    235
  6.9.6.    main 함수 검토    236
  6.9.7.    GPIO_Configuration    237
  6.9.8.    USART1_Init    238
  6.9.9.    USART_Init 함수 설명    244
  6.9.10.    UART 출력 함수 구현    250
  6.9.11.    실행 결과    254
 6.10.    printf를 활용하자    255
  6.10.1.    semi-hosting    255
  6.10.2.    main.c 변경사항    259
  6.10.3.    실행 결과    261
 6.11.    Get Character & 메뉴 구성    262
  6.11.1.    USART_FLAG_RXNE    262
  6.11.2.    USART_ReceiveData 구현    263
  6.11.3.    USART_GetCharacter 구현    263
  6.11.4.    메뉴 구성    265
  6.11.5.    수행 결과    267
 6.12.    7-Segment Control    268
  6.12.1.    회로도 분석    268
  6.12.2.    7-segment 개요    268
  6.12.3.    GPIO 설정 및 기본 함수 구현    269
  6.12.4.    Seven_Segment_Test 구현    271
  6.12.5.    7-segment로 숫자를 표현해 보자    272
  6.12.6.    실행 결과    275
 6.13.    Clock Control    276
  6.13.1.    회로도 및 클럭 소스 분석    276
  6.13.2.    Enable HSE    277
  6.13.3.    Flash access Latency 설정    278
  6.13.4.    HCLK, PCLK1, PCLK2 설정    280
  6.13.5.    PLL 설정    282
  6.13.6.    PLL ON    284
  6.13.7.    System clock switch 설정    285
  6.13.8.    소스 코드 변경 사항 설명    286
  6.13.9.    LED Test 성능 비교    287
 6.14.    RCC_GetClocksFreq 구현    289
  6.14.1.    RCC_ClocksTypeDef 정의    289
  6.14.2.    SYSCLK_Frequency 구하기    289
  6.14.3.    HCLK_Frequency 구하기    292
  6.14.4.    PCLK1_Frequency 구하기    293
  6.14.5.    PCLK2_Frequency 구하기    294
  6.14.6.    ADCCLK_Frequency 구하기    295
  6.14.7.    System_Information 변경 사항    295
  6.14.8.    수행 결과    296
 6.15.    정확한 1초 Delay 구현    297
  6.15.1.    Cortex-M3 Exception 개요    297
  6.15.2.    STM32F10xxx Vector table    300
  6.15.3.    System Control Space 분석    303
  6.15.4.    NVIC Vector Table 설정    305
  6.15.5.    SysTick Configuration    307
  6.15.6.    Exception priority    311
  6.15.7.    NVIC_SetPriority 설정    313
  6.15.8.    SysTick interrupt handler 설정    317
  6.15.9.    실행 결과    319
 6.16.    Key Interrupt 처리    320
  6.16.1.    실행 결과    320
  6.16.2.    External interrupt/event controller (EXTI) 개요    321
  6.16.3.    NVIC Configuration 분석    324
  6.16.4.    EXTI Configuration    335
  6.16.5.    EXTI0_IRQHandler    342

<b>7.    Cortex-M3 및 802.15.4 ZigBee 통신 프로그래밍</b>    345
 7.1.    Hello World    345
  7.1.1.    STMicroelectronics 라이브러리 적용    345
  7.1.2.    Hello World 빌드 - IAR case    348
  7.1.3.    Hello World 빌드 - RIDE7 case    352
  7.1.4.    소스 분석    353
  7.1.5.    수행 결과    357
  7.1.6.    라이브러리 폴더 위치 변경    357
 7.2.    메뉴 구성 및 LED & Key Control    360
  7.2.1.    USE_FULL_ASSERT - debug 부분    360
  7.2.2.    소스 코드 변경 사항    365
  7.2.3.    RCC Get Clocks Frequency    367
 7.3.    Clock Control    369
  7.3.1.    소스 변경 사항    369
  7.3.2.    실행 결과    371
  7.3.3.    System Init 함수 설명    372
  7.3.4.    SetSysClock() 함수 설명    376
  7.3.5.    SetSysClockTo72() 함수 설명    376
 7.4.    정확한 1초 Delay 구현 및 Key Interrupt 처리    379
  7.4.1.    빌드 환경 추가 파일들    379
  7.4.2.    Interrupt Handler 구현    379
  7.4.3.    소스 변경 사항    380
  7.4.4.    실행 결과    383
 7.5.    In-Application Programming (IAP) - BootLoader    384
  7.5.1.    AN2557 다운로드    384
  7.5.2.    IAP 개요    385
  7.5.3.    IAP code 개요    386
  7.5.4.    IAP code 알고리즘    387
  7.5.5.    STM 라이브러리 사용    389
  7.5.6.    IAP project 소스 변경 내역    390
  7.5.7.    IAP 실행    399
  7.5.8.    User Program 만들기 1 - binary_template    399
  7.5.9.    IAP YModem Download    403
  7.5.10.    User Program 만들기 2 - Z1.Src004.KeyInterrupt    406
 7.6.    SPI 통신을 이용 CC2520 Chip ID 읽기    409
  7.6.1.    CC2520 2.4 GHz RF transceiver    410
  7.6.2.    CC2520 관련 자료 다운로드    410
  7.6.3.    망고 Z1 회로도 분석    412
  7.6.4.    SPI (Serial Peripheral Interface) 통신    414
  7.6.5.    CC2520 레지스터 초기화    418
  7.6.6.    ZigBee_Test 프로그램 설명    428
  7.6.7.    SPI 초기화    428
  7.6.8.    CC2520 RF 초기화    433
  7.6.9.    Get Chip ID & Version    440
  7.6.10.    빌드 및 실행 결과    442
 7.7.    One byte RF 통신 구현    444
  7.7.1.    레지스터 값 출력 함수 구현    444
  7.7.2.    RF Channel 설정    446
  7.7.3.    PAN (Personal Area Network) ID & Short Address 설정    448 
  7.7.4.    GPIO 0 Exception 설정    450
  7.7.5.    초기 레지스터 설정 값 변경 사항    455
  7.7.6.    appSwitch Tx application 설명    456
  7.7.7.    appLight Rx application 설명    457
  7.7.8.    basicRfRxFrmDoneIsr() 함수 설명    458
  7.7.9.    실행 결과    459
 7.8.    Multi-Packet Transmit 통신 구현    462
  7.8.1.    실행 결과    462
  7.8.2.    전송 패킷 & PER 계산 structure 구조    463
  7.8.3.    perTest_appTransmitter 설명    464
  7.8.4.    perTest_appReceiver 설명    468
 7.9.    USB HID Demo    471
  7.9.1.    STM 라이브러리 다운로드 및 폴더 설명    471
  7.9.2.    USB HID Demonstrator 다운로드 및 설치    472
  7.9.3.    보드 구동 및 HID 시험 결과    473
  7.9.4.    USB 부분 회로 분석    480
  7.9.5.    EXTI line 18 USB Wakeup event    482
  7.9.6.    STM32 USB interface    484
  7.9.7.    STM32 USB 레지스터 설명    485
  7.9.8.    레지스터 설정 관련 예    497

<b>8.    RTOS porting</b>    503
 8.1.    FreeRTOS porting    503
  8.1.1.    FreeRTOS 소스 다운로드    503
  8.1.2.    FreeRTOS 일반 설명    504
  8.1.3.    FreeRTOS 디렉토리 및 파일 설명    506
  8.1.4.    MANGO-Z1 포팅 - Clock 설정    510
  8.1.5.    MANGO-Z1 포팅 - GPIO 설정    511
  8.1.6.    MANGO-Z1 포팅 - main() 함수 변경    514
  8.1.7.    실행 결과    519
  8.1.8.    참고 사항 - Compiler option    521
  8.1.9.    FreeRTOS 연구 - Overview    523
  8.1.10.    FreeRTOS 연구 - portTASK_FUNCTION    526
  8.1.11.    FreeRTOS 연구 - task state    527
  8.1.12.    FreeRTOS 연구 - Inter-task Communication    528
 8.2.    uC/OS-II porting    538
  8.2.1.    uC/OS-II 소스 다운로드    539
  8.2.2.    uC/OS-II 소스들간 관계    542
  8.2.3.    WRITE_REG, READ_REG 관련 수정    543
  8.2.4.    uC/OS-II 디렉토리 구조    544
  8.2.5.    개발 환경 설정 및 빌드    545
  8.2.6.    probe_com_cfg.h 변경 사항    546
  8.2.7.    클럭 설정 변경 사항    548
  8.2.8.    LED 관련 수정 사항 설명    548
  8.2.9.    task 생성 함수 OSTaskCreateExt 설명    552
  8.2.10.    LED task 생성 및 실행 결과    557
  8.2.11.    uC/OS-II 연구 - tick 설정    562
  8.2.12.    uC/OS-II 연구 - Critical Sections    564
  8.2.13.    uC/OS-II 연구 - task state    570
  8.2.14.    uC/OS-II 연구 - Scheduling Lock/Unlock, Task Suspend/Resume    571
  8.2.15.    uC/OS-II 연구 - Semaphore    571
  8.2.16.    uC/OS-II 연구 - Message Mailbox    574

Appendix    577
참고 문서    577
참고 Sites    577
Mango-M32 회로도 1    578
Mango-M32 회로도 2    579
Mango-M32 회로도 3    580
Mango-M32 회로도 4    581
Mango-Z1 회로도 1    583
Mango-Z1 회로도 2    584
Mango-Z1 회로도 3    585
Mango-Z1 회로도 4    586
색인    589

청구기호 Browsing

서평 (0 건)

*주제와 무관한 내용의 서평은 삭제될 수 있습니다.
  서평 제목에는 특수기호 사용을 제한합니다.

서평추가

서평추가
별점
별0점
  • 별5점
  • 메세지가 없습니다
  • 별4점
  • 메세지가 없습니다
  • 별3점
  • 메세지가 없습니다
  • 별2점
  • 메세지가 없습니다
  • 별1점
  • 메세지가 없습니다
  • 별0점
제목입력
본문입력

태그

태그추가


15328 경기도 안산시 상록구 안산대학로 155 (일동) Tel. 031)400-7071~4 Fax. 031)400-7075