임종수의 STM32 Cortex-M 완벽활용서 Vol. 2

$51.84
SKU
9791197772719
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Tue 01/7 - Mon 01/13 (주문일로부 10-14 영업일)

Express Shipping estimated by Thu 01/2 - Mon 01/6 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2024/10/27
Pages/Weight/Size 188*257*35mm
ISBN 9791197772719
Categories IT 모바일 > 컴퓨터 공학
Description
이 책은 임베디드 소프트웨어 최고의 전문가를 꿈꾸는 여러분들을 위해 집필하였다. 2022년 2월 출간된 『임종수의 STM32 Cortex-M 완벽 활용서(Vol. 1)』의 2번째 시리즈이다. 전체 본문 내용은 STM32 MCU 내부에 저장되어 있는 제조사 bootloader에 대한 사용방법과 사용자 정의 bootloader를 만드는 다양하고 자세한 구현 방법을 서술하였다. 구체적으로 내부 MCU flash memory, 또는 외부 SPI serial flash memory를 이용한 ROM booting 방법과 MCU 내부 SRAM을 이용한 RAM booting 방법에 대해서 실제 제품에 적용되는 Code를 직접 구현하고 실험할 수 있도록 구성하였다. 특별히, Windows Program인 무료 SJ_MCUFree 소프트웨어를 이용하여 개발한 임의의 실행 hex file 또는 binary file을 MCU에 downloading하여 booting할 수 있도록 다양하고, 풍부한 예제들을 수록하였다.

또한, C 언어와 Assembly 언어를 활용하여 RTOS의 구조와 동작 방법을 학습할 수 있도록 다양한 그림들과 flowchart들을 수록하였다. 무엇보다도 RTOS를 포함한 OS(운영체제)에 대한 다양한 이론적인 개념들과 흐름을 모두 구현하면서 스스로 OS에 대한 전문가가 되도록 하였다. 예를 들면, Task Context Switching에 대한 다양한 그림들과 설명으로 이해를 넓히고, 이를 바로 C언어와 assembly 언어로 구현하여 완벽한 이해 와 활용을 할 수 있도록 하였다. 또한, Kernel Object인 Semaphore, Mutex, Message mailbox, 그리고, Message Queue 등등에 대한 개념과 이들을 어떻게 구현하고, 활용하는지 철저한 설명과 완벽한 예제들로 구성하였다. 그리고, 현재, Embedded Linux와 함께 광범위하게 사용되는 무료 FreeRTOS를 활용하는 방법도 자세히 서술하였다.
Contents
제1장 제조사 Bootloader 소개 13

■ 학습 목표 14
1.1 Bootloader 소개. 15
1.2 Reset의 종류와 특징 정리. 201.3 STM32 MCU 종류와 구분 방법 정리. 23
1.4 BOOT Mode 종류와 USART booting 실습. 26

제2장 제조사 UART Bootloader 사용 방법 - I 49

■ 학습 목표 50
2.1 USART Kernel Bootloader Protocol 분석. 51
2.2 Get(0x00) Command. 56
2.3 Get Version(0x01) Command. 70
2.4 Get ID(0x02) Command. 74
2.5 Read Memory(0x11) Command. 80
2.6 Go(0x21) Command. 89

제3장 제조사 UART Bootloader 사용 방법 - II 107

■ 학습 목표 108
3.1 Write Memory(0x31) Command. 109
3.2 Hex File 구조에 대한 이해. 123
3.3 상태도(State flow)를 이용한 Hex File downloading 방법. 135
3.4 Erase(0x43) Command. 148
■ 연구 과제 155

제4장 MCU 내부 Flash memory 사용 방법 157

■ 학습 목표 158
4.1 HxD Hex Editor 소개. 159
4.2 STM32 MCU 내부 Flash Memory 사용 방법. 172
4.2.1 Flash memory Read Access Time 소개. 174
4.2.2 Flash memory Write Access Time 소개. 178
4.2.3 STM32 내부 Flash memory 특징과 사용 방법. 182

제5장 MCU 외부 Flash memory 사용 방법 201

■ 학습 목표 202
5.1 Serial Flash Memory W25Q32 소개. 203
5.2 Serial SPI Flash Memory W25Q32FV 사용 방법. 208
5.3 Serial SPI Flash Memory 동작 원리 분석. 215
5.4 Flash Memory Instruction 정리. 227

제6장 SPI Flash memory관련 Coding 방법 249

■ 학습 목표 250
6.1 Serial Flash Memory Programming 방법. 251
6.2 Serial Flash Memory 식별을 위한 Code 구현. 267
6.3 Serial Flash Memory data를 지우는 Code 구현. 274
6.4 Serial Flash Memory로부터 데이터를 읽는 방법. 283
6.5 Serial Flash Memory에 데이터를 쓰는 방법. 289

제7장 User Bootloader를 위한 downloader 개발 305

■ 학습 목표 306
7.1 실행 binary 파일을 외부 Flash Memory에 저장하는 방법. 307
7.2 Host에서 실행 파일을 전송하는 방법. 317
7.3 MCU 내부 flash memory 또는 SRAM에 데이터 저장 방법. 349

제8장 User Bootloader 소개와 간단한 예제 구현 373

■ 학습 목표 374
8.1 간단한 User Bootloader 구현 방법 소개. 375
8.2 간단한 User Bootloader 개발과정 따라하기. 389

제9장 실전 User Bootloader 구현 방법 415

■ 학습 목표 416
9.1 MCU 내부 Main Flash memory booting 방법. 417
9.2 실제 제품에 적용되는 사례 소개. 432
9.2.1 내부 flash memory 또는 EEPROM을 사용하는 경우. 440
9.2.2 RS-485와 Modbus를 사용한 사례. 441
9.3 MCU 내부 RAM booting 방법과 의미. 446
9.4 MCU 외부 Serial Flash Memory를 이용한 booting 방법. 452

제10장 OS(운영 체제)의 구조 이해와 uC/OS-II 소개 459

■ 학습 목표 462
10.1 OS에 대한 개념과 uC/OS-II 소개 463
10.2 Multi-tasking을 위한 task scheduling과 task의 상태 473
10.3 Multi-tasking을 위한 task 전환 방법과 구현 496
10.4 Hook 함수와 uC/OS-II 간단한 예제 실습 512
■ 연구 과제 524

제11장 uC/OS-II OS와 Kernel Object의 구조와 종류 527

■ 학습 목표 528
11.1 OS 사용에 따른 stack과 heap의 관리 방법 529
11.2 Task 전환에 따른 Stack 관리 방법 541
11.3 Task와 Interrupt 사이의 전환 방법 556
11.4 Kernel object의 개념과 종류 567

제12장 uC/OS-II와 FreeRTOS 사용 방법 579

■ 학습 목표 580
12.1 uC/OS-II와 다양한 Kernel object 사용 방법 581
12.1.1 Multi-task와 단일 task의 차이점. 583
12.1.2 Mutex를 이용한 공유자원 접근과 Priority Inversion. 589
12.1.3 Semaphore를 이용한 공유자원 접근 방법. 597
12.1.4 Message Mailbox를 이용한 task간 정보 전송 방법. 603
12.1.5 Message Queue를 이용한 task간 정보 전송 방법. 610
12.2 FreeRTOS 소개와 AC6로 compiler 방법 623
12.3 FreeRTOS에 Task 등록과 사용 방법 637
■ 연구 과제 644

부록 1 SJ_MCUPro 사용 설명서 645
부록 2 SJ_MCUBook_M0/M4 보드 회로도와 설명서 653
부록 3 KEIL MDK-ARM 사용시 주의 사항 673
찾아보기 683
Author
임종수
건국대학교 전자공학과 졸업
건국대학교 대학원 신호처리 전공 및 졸업
현대전자 정보통신연구소 근무
삼성전자 네트워크 사업부 근무
Analog device Korea 근무
한경대학교 전력전자 박사수료
버무림 대표.
수진 대표.
건국대학교 전자공학과 졸업
건국대학교 대학원 신호처리 전공 및 졸업
현대전자 정보통신연구소 근무
삼성전자 네트워크 사업부 근무
Analog device Korea 근무
한경대학교 전력전자 박사수료
버무림 대표.
수진 대표.