본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

Embedded Programming with Modern C++ Cookbook 상세페이지

Embedded Programming with Modern C++ Cookbook

Practical recipes to help you build robust and secure embedded applications on Linux

  • 관심 0
소장
전자책 정가
22,000원
판매가
22,000원
출간 정보
  • 2020.04.17 전자책 출간
듣기 기능
TTS(듣기) 지원
파일 정보
  • PDF
  • 399 쪽
  • 23.0MB
지원 환경
  • PC뷰어
  • PAPER
ISBN
9781838823207
ECN
-
Embedded Programming with Modern C++ Cookbook

작품 정보

Title : Embedded Programming with Modern C++ Cookbook
부제 : Practical recipes to help you build robust and secure embedded applications on Linux

분야 Computers & Technology >
⦁ Linux Applications
⦁ Computer Hardware Peripherals
⦁ Linux Programming

저자 : Igor Viarheichyk
출판사(국내공급사) : Packt (GCO Science)
출판년도 : 2020년 04월 17일

p-isbn : 9781838821043
e-isbn : 9781838823207

page : 412page
Amazon Cost : 19.79$
국내정가 : 22,000원

▶Book Description
Developing applications for embedded systems may seem like a daunting task as developers face challenges related to limited memory, high power consumption, and maintaining real-time responses. This book is a collection of practical examples to explain how to develop applications for embedded boards and overcome the challenges that you may encounter while developing.

The book will start with an introduction to embedded systems and how to set up the development environment. By teaching you to build your first embedded application, the book will help you progress from the basics to more complex concepts, such as debugging, logging, and profiling. Moving ahead, you will learn how to use specialized memory and custom allocators. From here, you will delve into recipes that will teach you how to work with the C++ memory model, atomic variables, and synchronization. The book will then take you through recipes on inter-process communication, data serialization, and timers. Finally, you will cover topics such as error handling and guidelines for real-time systems and safety-critical systems.

By the end of this book, you will have become proficient in building robust and secure embedded applications with C++.

▶What You Will Learn
- Get to grips with the fundamentals of an embedded system
- Understand how to optimize code for the targeted hardware platforms
- Explore cross-compilation, build types, and remote debugging
- Discover the importance of logging for debugging and root cause analysis of failures
- Uncover concepts such as interrupt service routine, memory model, and ring buffer
- Recognize the need for custom memory management in embedded systems
- Delve into static code analyzers and tools to improve code quality

▶Key Features
- Get hands-on experience in developing a sample application for an embedded Linux-based system
- Explore advanced topics such as concurrency, real-time operating system (RTOS), and C++ utilities
- Learn how to test and debug your embedded applications using logs and profiling tools

▶Who This Book Is For
This book is for developers, electronic hardware professionals, and software and system-on-chip engineers who want to build effective embedded programs in C++. Familiarity with the C++ programming language is expected, but no previous knowledge of embedded systems is required.

▶What this book covers
- Chapter 1, Fundamentals of Embedded Systems, defines what embedded systems are, how they are different from other systems, why specific programming techniques are needed, and why C++ is good and in many cases the best choice for embedded development. It outlines the constraints and challenges that embedded developers encounter in their everyday work: limited system resources and CPU performance, dealing with hardware errors, and remote debugging.

- Chapter 2, Setting Up the Environment, explains the differences in a development environment for embedded systems compared to web or desktop application development and goes through concepts of the build and target system, cross-compilation and crosstoolkits, the serial console, and the remote shell. It provides practical steps for setting up virtualized build and target hosts for the most common desktop configurations running Windows, macOS, or Linux.

- Chapter 3, Working with Different Architectures, explains how to take into account important differences in CPU architectures and memory configuration of target systems in your C++ code.

- Chapter 4, Handling Interrupts, covers the low-level concepts of interrupts and interrupt service routines. In modern OSes, even developers or device drivers have to use a higherlevel API provided by the OS. That is why we explore the interrupt techniques using the 8051 microcontroller.

- Chapter 5, Debugging, Logging, and Profiling, covers debugging techniques specific to Linuxbased embedded systems, such as running gdb directly on the target board, setting up gdbserver for remote debugging, and the importance of logging for debugging and failure root cause analysis.

- Chapter 6, Memory Management, provides several recipes and best practices of memory allocation that will be helpful for developers of embedded systems. We discuss why dynamic memory allocation is avoided in embedded applications and what alternatives can be considered for fast, deterministic memory allocation.

- Chapter 7, Multithreading and Synchronization, explains how to use the functions and classes provided by the standard library of C++ to implement efficient multithreading applications that can utilize all the power of the modern multicore CPUs.

- Chapter 8, Communication and Serialization, covers the concepts, challenges, and best practices for inter-process and inter-system communications, such as sockets, pipes, shared memory, and memory-efficient serialization using the FlatBuffers library. Decoupling applications into independent components that talk to each other using well-defined asynchronous protocols is a de facto standard way of scaling a software system while keeping it fast and fault-tolerant.

- Chapter 9, Peripherals, explains how to work with various peripheral devices in C++ programs. Though most device communication APIs do not depend on a particular programming language, we will learn how to use the power of C++ to write wrappers that are convenient for developers and help prevent common resource leaking errors.

- Chapter 10, Reducing Power Consumption, explores the best practices for writing energy efficient applications and utilizing the power management functions of the OS. It provides several practical recipes for Linux-based embedded systems, but the same concepts can be expanded to any OS and any platform.

- Chapter 11, Time Points and Intervals, covers various topics related to time manipulations, from measuring intervals to adding delays. We will learn about the API provided by the standard C++ Chrono library and how it can be used efficiently to build portable embedded applications.

- Chapter 12, Error Handling and Fault Tolerance, explores possible implementations and best practices of error handling for embedded applications written in C++. It explains how to use C++ exceptions efficiently and compares it to alternatives such as traditional error codes and complex return types. It touches on basic fault-tolerance mechanisms such as watchdog timers and heartbeats.

- Chapter 13, Guidelines for Real-Time Systems, covers the specifics of real-time systems. It briefly describes how real-time systems are defined and what kinds of real-time systems exist. It contains practical recipes on how to make the behavior of applications more deterministic, a crucial requirement for real-time systems.

- Chapter 14, Guidelines for Safety-Critical Systems, explains what safety-critical systems are and how they are different from other embedded systems. It covers development methodologies and tools that are required when working on safety-critical systems, from following formalized coding guidelines such as MISRA, AUTOSAR, or JSF to using static code analysis or formal software validation tools.

- Chapter 15, Microcontroller Programming, outlines basic concepts of writing, compiling, and debugging C++ code for microcontrollers. We will learn how to set up the development environment using the widely used Arduino board as an example.

작가 소개

▶About the Author
- Igor Viarheichyk
Igor Viarheichyk works as an engineering manager at Samsung, developing a safety-critical middleware platform for advanced driver assistance systems aimed at specialized automotive embedded platforms. Prior to joining Samsung, in the past 20 years of his career, he has played different roles, from software engineer to software architect, to engineering manager in a variety of projects, and he has gained vast experience in the areas of system programming, embedded programming, network protocols, distributed and fault-tolerant systems, and software internationalization. Though he knows and actively uses programming languages such as C, Java, and Python, C++ is his language of choice to implement large-scale, high-performance applications.

리뷰

0.0

구매자 별점
0명 평가

이 작품을 평가해 주세요!

건전한 리뷰 정착 및 양질의 리뷰를 위해 아래 해당하는 리뷰는 비공개 조치될 수 있음을 안내드립니다.
  1. 타인에게 불쾌감을 주는 욕설
  2. 비속어나 타인을 비방하는 내용
  3. 특정 종교, 민족, 계층을 비방하는 내용
  4. 해당 작품의 줄거리나 리디 서비스 이용과 관련이 없는 내용
  5. 의미를 알 수 없는 내용
  6. 광고 및 반복적인 글을 게시하여 서비스 품질을 떨어트리는 내용
  7. 저작권상 문제의 소지가 있는 내용
  8. 다른 리뷰에 대한 반박이나 논쟁을 유발하는 내용
* 결말을 예상할 수 있는 리뷰는 자제하여 주시기 바랍니다.
이 외에도 건전한 리뷰 문화 형성을 위한 운영 목적과 취지에 맞지 않는 내용은 담당자에 의해 리뷰가 비공개 처리가 될 수 있습니다.
아직 등록된 리뷰가 없습니다.
첫 번째 리뷰를 남겨주세요!
'구매자' 표시는 유료 작품 결제 후 다운로드하거나 리디셀렉트 작품을 다운로드 한 경우에만 표시됩니다.
무료 작품 (프로모션 등으로 무료로 전환된 작품 포함)
'구매자'로 표시되지 않습니다.
시리즈 내 무료 작품
'구매자'로 표시되지 않습니다. 하지만 같은 시리즈의 유료 작품을 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
작품을 영구 삭제해도 '구매자' 표시는 남아있습니다.
결제 취소
'구매자' 표시가 자동으로 사라집니다.

개발/프로그래밍 베스트더보기

  • 핸즈온 LLM (제이 알아마르, 마르턴 흐루턴도르스트)
  • 개정2판 | 시작하세요! 도커/쿠버네티스 (용찬호)
  • 도커로 구축한 랩에서 혼자 실습하며 배우는 네트워크 프로토콜 입문 (미야타 히로시, 이민성)
  • 생성형 AI 인 액션 (아미트 바리, 이준)
  • LLM과 RAG로 구현하는 AI 애플리케이션 (에디유, 대니얼김)
  • 이게 되네? 클로드 MCP 미친 활용법 27제 (박현규)
  • 테디노트의 랭체인을 활용한 RAG 비법노트_기본편 (이경록(테디노트))
  • 나만의 MCP 서버 만들기 with 커서 AI (서지영)
  • 실무로 통하는 웹 API (조 아타디, 김태곤)
  • 지속적 배포 (발렌티나 세르빌, 이일웅)
  • 지식그래프 (이광배, 이채원)
  • AI 에이전트 인 액션 (마이클 래넘, 류광)
  • LLM 인 프로덕션 (크리스토퍼 브루소, 매슈 샤프)
  • 생성형 AI를 위한 프롬프트 엔지니어링 (제임스 피닉스, 마이크 테일러)
  • 개정2판 | 인프라 엔지니어의 교과서 (사노 유타카, 김성훈)
  • 개정판 | Tkinter를 사용한 파이썬 GUI 프로그래밍 (앨런 무어, 이태상)
  • 소프트웨어 엔지니어 가이드북 (게르겔리 오로스, 이민석)
  • LLM을 활용한 실전 AI 애플리케이션 개발 (허정준, 정진호)
  • 처음 시작하는 FastAPI (빌 루바노빅, 한용재)
  • 개정판 | 파이썬 클린코드 (마리아노 아나야, 김창수)

본문 끝 최상단으로 돌아가기

spinner
앱으로 연결해서 다운로드하시겠습니까?
닫기 버튼
대여한 작품은 다운로드 시점부터 대여가 시작됩니다.
앱으로 연결해서 보시겠습니까?
닫기 버튼
앱이 설치되어 있지 않으면 앱 다운로드로 자동 연결됩니다.
모바일 버전