Mastering Embedded Linux Programming (Paperback)

Chris Simmonds

買這商品的人也買了...

商品描述

Key Features

  • Create efficient and secure embedded devices using Linux
  • Minimize project costs by using open source tools and programs
  • Explore each component technology in depth, using sample implementations as a guide

Book Description

Mastering Embedded Linux Programming takes you through the product cycle and gives you an in-depth description of the components and options that are available at each stage. You will begin by learning about toolchains, bootloaders, the Linux kernel, and how to configure a root filesystem to create a basic working device. You will then learn how to use the two most commonly used build systems, Buildroot and Yocto, to speed up and simplify the development process. Building on this solid base, the next section considers how to make best use of raw NAND/NOR flash memory and managed flash eMMC chips, including mechanisms for increasing the lifetime of the devices and to perform reliable in-field updates. Next, you need to consider what techniques are best suited to writing applications for your device. We will then see how functions are split between processes and the usage of POSIX threads, which have a big impact on the responsiveness and performance of the final device The closing sections look at the techniques available to developers for profiling and tracing applications and kernel code using perf and ftrace.

What you will learn

  • Understand the role of the Linux kernel and select an appropriate role for your application
  • Use Buildroot and Yocto to create embedded Linux systems quickly and efficiently
  • Create customized bootloaders using U-Boot
  • Employ perf and ftrace to identify performance bottlenecks
  • Understand device trees and make changes to accommodate new hardware on your device
  • Write applications that interact with Linux device drivers
  • Design and write multi-threaded applications using POSIX threads
  • Measure real-time latencies and tune the Linux kernel to minimize them

About the Author

Chris Simmonds is a software consultant and trainer who lives in southern England. He has been using Linux in embedded systems since the late 1990s, during which he has worked on many interesting projects, including a stereoscopic camera, intelligent weighing scales, various set-top boxes and home routers, and even a large walking robot.

He is a frequent presenter at open source and embedded conferences, including the Embedded Linux Conference, Embedded World, and the Android Builders' Summit. He has been conducting training courses and workshops in embedded Linux since 2002 and in embedded Android since 2010. He has delivered hundreds of sessions to many well-known companies. You can see some of his work on the "Inner Penguin" blog at www.2net.co.uk.

Table of Contents

  1. Starting Out
  2. Learning About Toolchains
  3. All About Bootloaders
  4. Porting and Configuring the Kernel
  5. Building a Root Filesystem
  6. Selecting a Build System
  7. Creating a Storage Strategy
  8. Introducing Device Drivers
  9. Starting up - the init Program
  10. Learning About Processes and Threads
  11. Managing Memory
  12. Debugging with GDB
  13. Profiling and Tracing
  14. Real-time Programming

商品描述(中文翻譯)

主要特點


  • 使用Linux創建高效且安全的嵌入式設備

  • 通過使用開源工具和程序來降低項目成本

  • 深入探索每個組件技術,使用示例實現作為指南

書籍描述

《精通嵌入式Linux編程》帶領您進入產品週期,並詳細描述了每個階段可用的組件和選項。您將首先學習有關工具鏈、引導加載程序、Linux內核以及如何配置根文件系統以創建基本工作設備的知識。然後,您將學習如何使用兩個最常用的構建系統Buildroot和Yocto來加快和簡化開發過程。在此基礎上,下一部分考慮如何最佳利用原始NAND/NOR閃存和管理閃存eMMC芯片,包括增加設備壽命的機制和可靠的現場更新。接下來,您需要考慮哪些技術最適合為設備編寫應用程序。然後,我們將看到功能如何在進程之間分割以及POSIX線程的使用,這對最終設備的響應能力和性能有很大影響。最後一部分介紹了開發人員使用perf和ftrace進行應用程序和內核代碼的性能分析和追踪的技術。

你將學到什麼


  • 了解Linux內核的角色,並為您的應用程序選擇合適的角色

  • 使用Buildroot和Yocto快速高效地創建嵌入式Linux系統

  • 使用U-Boot創建自定義引導加載程序

  • 使用perf和ftrace識別性能瓶頸

  • 了解設備樹並進行更改以適應設備上的新硬件

  • 編寫與Linux設備驅動程序交互的應用程序

  • 使用POSIX線程設計和編寫多線程應用程序

  • 測量實時延遲並調整Linux內核以最小化延遲

關於作者

Chris Simmonds 是一位居住在英國南部的軟件顧問和培訓師。他從1990年代末開始在嵌入式系統中使用Linux,期間參與了許多有趣的項目,包括立體攝像機、智能計量秤、各種機頂盒和家用路由器,甚至一個大型步行機器人。

他經常在開源和嵌入式會議上發表演講,包括嵌入式Linux大會、嵌入式世界和Android Builders' Summit。他從2002年開始進行嵌入式Linux培訓課程和工作坊,從2010年開始進行嵌入式Android培訓。他已向許多知名公司進行了數百場培訓。您可以在www.2net.co.uk的“Inner Penguin”博客上看到他的一些作品。

目錄


  1. 開始

  2. 了解工具鏈

  3. 關於引導加載程序

  4. 移植和配置內核

  5. 構建根文件系統

  6. 選擇構建系統

  7. 創建存儲策略

  8. 介紹設備驅動程序

  9. 啟動 - init程序

  10. 了解進程和線程

  11. 管理內存

  12. 使用GDB進行調試

  13. 性能分析和追踪

  14. 實時編程