на главную | войти | регистрация | DMCA | контакты | справка |      
mobile | donate | ВЕСЕЛКА

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я


моя полка | жанры | рекомендуем | рейтинг книг | рейтинг авторов | впечатления | новое | форум | сборники | читалки | авторам | добавить
фантастика
космическая фантастика
фантастика ужасы
фэнтези
проза
  военная
  детская
  русская
детектив
  боевик
  детский
  иронический
  исторический
  политический
вестерн
приключения (исторический)
приключения (детская лит.)
детские рассказы
женские романы
религия
античная литература
Научная и не худ. литература
биография
бизнес
домашние животные
животные
искусство
история
компьютерная литература
лингвистика
математика
религия
сад-огород
спорт
техника
публицистика
философия
химия
close

Embedded Linux Primer: A Practical, Real-World Approach

Embedded Linux Primer: A Practical, Real-World Approach
Название: Embedded Linux Primer: A Practical, Real-World Approach
Автор:Hallinan Christopher
Оценка: 4.8 из 5, проголосовало читателей - 48
Жанр: компьютерная литература
Описание:Comprehensive Real-World Guidance for Every Embedded Developer and Engineer

This book brings together indispensable knowledge for building efficient, high-value, Linux-based embedded products: information that has never been assembled in one place before. Drawing on years of experience as an embedded Linux consultant and field application engineer, Christopher Hallinan offers solutions for the specific technical issues you're most likely to face, demonstrates how to build an effective embedded Linux environment, and shows how to use it as productively as possible.

Hallinan begins by touring a typical Linux-based embedded system, introducing key concepts and components, and calling attention to differences between Linux and traditional embedded environments. Writing from the embedded developer's viewpoint, he thoroughly addresses issues ranging from kernel building and initialization to bootloaders, device drivers to file systems.

Hallinan thoroughly covers the increasingly popular BusyBox utilities; presents a step-by-step walkthrough of porting Linux to custom boards; and introduces real-time configuration via CONFIG_RT--one of today's most exciting developments in embedded Linux. You'll find especially detailed coverage of using development tools to analyze and debug embedded systems--including the art of kernel debugging.

' Compare leading embedded Linux processors

' Understand the details of the Linux kernel initialization process

' Learn about the special role of bootloaders in embedded Linux systems, with specific emphasis on U-Boot

' Use embedded Linux file systems, including JFFS2--with detailed guidelines for building Flash-resident file system images

' Understand the Memory Technology Devices subsystem for flash (and other) memory devices

' Master gdb, KGDB, and hardware JTAG debugging

' Learn many tips and techniques for debugging within the Linux kernel

' Maximize your productivity in cross-development environments

' Prepare your entire development environment, including TFTP, DHCP, and NFS target servers

' Configure, build, and initialize BusyBox to support your unique requirements
Содержание:

скрыть содержание

  1. Prentice Hall Open Source Software Development Series
  2. Foreword
  3. Preface
  4. Practical Advice for the Practicing Embedded Developer
  5. Intended Audience
  6. What This Book Is Not
  7. Conventions Used
  8. Organization of the Book
  9. Follow Along
  10. GPL Copyright Notice
  11. Acknowledgments
  12. About the Author
  13. Chapter 1. Introduction
  14. 1.1. Why Linux?
  15. 1.2. Embedded Linux Today
  16. 1.3. Open Source and the GPL
  17. 1.3.1. Free Versus Freedom
  18. 1.4. Standards and Relevant Bodies
  19. 1.4.1. Linux Standard Base
  20. 1.4.2. Open Source Development Labs
  21. 1.4.2.1. OSDL: Carrier Grade Linux
  22. 1.4.2.2. OSDL: Mobile Linux Initiative
  23. 1.4.2.3. Service Availability Forum
  24. 1.5. Chapter Summary
  25. 1.5.1. Suggestions for Additional Reading
  26. Chapter 2. Your First Embedded Experience
  27. 2.1. Embedded or Not?
  28. 2.1.1. BIOS Versus Bootloader
  29. 2.2. Anatomy of an Embedded System
  30. 2.2.1. Typical Embedded Linux Setup
  31. 2.2.2. Starting the Target Board
  32. 2.3. Storage Considerations
  33. 2.3.1. Flash Memory
  34. 2.3.2. NAND Flash
  35. 2.3.3. Flash Usage
  36. 2.3.4. Flash File Systems
  37. 2.3.5. Memory Space
  38. 2.3.6. Execution Contexts
  39. 2.3.7. Process Virtual Memory
  40. 2.3.8. Cross-Development Environment
  41. 2.4. Embedded Linux Distributions
  42. 2.4.1. Commercial Linux Distributions
  43. 2.4.2. Do-It-Yourself Linux Distributions
  44. 2.5. Chapter Summary
  45. 2.5.1. Suggestions for Additional Reading
  46. Chapter 3. Processor Basics
  47. 3.1. Stand-alone Processors
  48. 3.1.1. IBM 970FX
  49. 3.1.2. Intel Pentium M
  50. 3.1.3. Freescale MPC7448
  51. 3.1.4. Companion Chipsets
  52. 3.2. Integrated Processors: Systems on Chip
  53. 3.2.1. PowerPC
  54. 3.2.2. AMCC PowerPC
  55. 3.2.3. Freescale PowerPC
  56. 3.2.4. MIPS
  57. 3.2.5. Broadcom MIPS
  58. 3.2.6. AMD MIPS
  59. 3.2.7. Other MIPS
  60. 3.2.8. ARM
  61. 3.2.9. TI ARM
  62. 3.2.10. Freescale ARM
  63. 3.2.11. Intel ARM XScale
  64. 3.2.12. Other ARM
  65. 3.2.13. Other Architectures
  66. 3.3. Hardware Platforms
  67. 3.3.1. CompactPCI
  68. 3.3.2. ATCA
  69. 3.4. Chapter Summary
  70. 3.4.1. Suggestions For Additional Reading
  71. Chapter 4. The Linux KernelA Different Perspective
  72. 4.1. Background
  73. 4.1.1. Kernel Versions
  74. 4.1.2. Kernel Source Repositories
  75. 4.2. Linux Kernel Construction
  76. 4.2.1. Top-Level Source Directory
  77. 4.2.2. Compiling the Kernel
  78. 4.2.3. The Kernel Proper: vmlinux
  79. 4.2.4. Kernel Image Components
  80. 4.2.5. Subdirectory Layout
  81. 4.3. Kernel Build System
  82. 4.3.1. The Dot-Config
  83. 4.3.2. Configuration Editor(s)
  84. 4.3.3. Makefile Targets
  85. 4.3.4. Kernel Configuration
  86. 4.3.5. Custom Configuration Options
  87. 4.3.6. Kernel Makefiles
  88. 4.3.7. Kernel Documentation
  89. 4.4. Obtaining a Linux Kernel
  90. 4.4.1. What Else Do I Need?
  91. 4.5. Chapter Summary
  92. 4.5.1. Suggestions for Additional Reading
  93. Chapter 5. Kernel Initialization
  94. 5.1. Composite Kernel Image: Piggy and Friends
  95. 5.1.1. The Image Object
  96. 5.1.2. Architecture Objects
  97. 5.1.3. Bootstrap Loader
  98. 5.1.4. Boot Messages
  99. 5.2. Initialization Flow of Control
  100. 5.2.1. Kernel Entry Point: head.o
  101. 5.2.2. Kernel Startup: main.c
  102. 5.2.3. Architecture Setup
  103. 5.3. Kernel Command Line Processing
  104. 5.3.1. The __setup Macro
  105. 5.4. Subsystem Initialization
  106. 5.4.1. The *__initcall Macros
  107. 5.5. The init Thread
  108. 5.5.1. Initialization via initcalls
  109. 5.5.2. Final Boot Steps
  110. 5.6. Chapter Summary
  111. 5.6.1. Suggestions for Additional Reading
  112. Chapter 6. System Initialization
  113. 6.1. Root File System
  114. 6.1.1. FHS: File System Hierarchy Standard
  115. 6.1.2. File System Layout
  116. 6.1.3. Minimal File System
  117. 6.1.4. The Root FS Challenge
  118. 6.1.5. Trial-and-Error Method
  119. 6.1.6. Automated File System Build Tools
  120. 6.2. Kernels Last Boot Steps
  121. 6.2.1. First User Space Program
  122. 6.2.2. Resolving Dependencies
  123. 6.2.3. Customized Initial Process
  124. 6.3. The Init Process
  125. 6.3.1. inittab
  126. 6.3.2. Example Web Server Startup Script
  127. 6.4. Initial RAM Disk
  128. 6.4.1. Initial RAM Disk Purpose
  129. 6.4.2. Booting with initrd
  130. 6.4.3. Bootloader Support for initrd
  131. 6.4.4. initrd Magic: linuxrc
  132. 6.4.5. The initrd Plumbing
  133. 6.4.6. Building an initrd Image
  134. 6.5. Using initramfs
  135. 6.6. Shutdown
  136. 6.7. Chapter Summary
  137. 6.7.1. Suggestions for Additional Reading
  138. Chapter 7. Bootloaders
  139. 7.1. Role of a Bootloader
  140. 7.2. Bootloader Challenges
  141. 7.2.1. DRAM Controller
  142. 7.2.2. Flash Versus RAM
  143. 7.2.3. Image Complexity
  144. 7.2.4. Execution Context
  145. 7.3. A Universal Bootloader: Das U-Boot
  146. 7.3.1. System Configuration: U-Boot
  147. 7.3.2. U-Boot Command Sets
  148. 7.3.3. Network Operations
  149. 7.3.4. Storage Subsystems
  150. 7.3.5. Booting from Disk: U-Boot
  151. 7.4. Porting U-Boot
  152. 7.4.1. EP405 U-Boot Port
  153. 7.4.2. U-Boot Makefile Configuration Target
  154. 7.4.3. EP405 Processor Initialization
  155. 7.4.4. Board-Specific Initialization
  156. 7.4.5. Porting Summary
  157. 7.4.6. U-Boot Image Format
  158. 7.5. Other Bootloaders
  159. 7.5.1. Lilo
  160. 7.5.2. GRUB
  161. 7.5.3. Still More Bootloaders
  162. 7.6. Chapter Summary
  163. 7.6.1. Suggestions for Additional Reading
  164. Chapter 8. Device Driver Basics
  165. 8.1. Device Driver Concepts
  166. 8.1.1. Loadable Modules
  167. 8.1.2. Device Driver Architecture
  168. 8.1.3. Minimal Device Driver Example
  169. 8.1.4. Module Build Infrastructure
  170. 8.1.5. Installing Your Device Driver
  171. 8.1.6. Loading Your Module
  172. 8.2. Module Utilities
  173. 8.2.1. insmod
  174. 8.2.2. Module Parameters
  175. 8.2.3. lsmod
  176. 8.2.4. modprobe
  177. 8.2.5. depmod
  178. 8.2.6. rmmod
  179. 8.2.7. modinfo
  180. 8.3. Driver Methods
  181. 8.3.1. Driver File System Operations
  182. 8.3.2. Device Nodes and mknod
  183. 8.4. Bringing It All Together
  184. 8.5. Device Drivers and the GPL
  185. 8.6. Chapter Summary
  186. 8.6.1. Suggestions for Additional Reading
  187. Chapter 9. File Systems
  188. 9.1. Linux File System Concepts
  189. 9.1.1. Partitions
  190. 9.2. ext2
  191. 9.2.1. Mounting a File System
  192. 9.2.2. Checking File System Integrity
  193. 9.3. ext3
  194. 9.4. ReiserFS
  195. 9.5. JFFS2
  196. 9.6. cramfs
  197. 9.7. Network File System
  198. 9.7.1. Root File System on NFS
  199. 9.8. Pseudo File Systems
  200. 9.8.1. Proc File System
  201. 9.8.2. sysfs
  202. 9.9. Other File Systems
  203. 9.10. Building a Simple File System
  204. 9.11. Chapter Summary
  205. 9.11.1. Suggestions for Additional Reading
  206. Chapter 10. MTD Subsystem
  207. 10.1. Enabling MTD Services
  208. 10.1.1. Building MTD
  209. 10.2. MTD Basics
  210. 10.2.1. Configuring MTD
  211. 10.3. MTD Partitions
  212. 10.3.1. Redboot Partition Table Partitioning
  213. 10.3.2. Kernel Command Line Partitioning
  214. 10.3.3. Mapping Driver
  215. 10.3.4. Flash Chip Drivers
  216. 10.3.5. Board-Specific Initialization
  217. 10.4. MTD Utilities
  218. 10.4.1. JFFS2 Root File System
  219. 10.5. Chapter Summary
  220. 10.5.1. Suggestions for Additional Reading
  221. Chapter 11. BusyBox
  222. 11.1. Introduction to BusyBox
  223. 11.1.1. BusyBox is Easy
  224. 11.2. BusyBox Configuration
  225. 11.2.1. Cross-Compiling BusyBox
  226. 11.3. BusyBox Operation
  227. 11.3.1. BusyBox Init
  228. 11.3.2. Example rcS Initialization Script
  229. 11.3.3. BusyBox Target Installation
  230. 11.3.4. BusyBox Commands
  231. 11.4. Chapter Summary
  232. 11.4.1. Suggestions for Additional Reading
  233. Chapter 12. Embedded Development Environment
  234. 12.1. Cross-Development Environment
  235. 12.1.1. "Hello World"Embedded
  236. 12.2. Host System Requirements
  237. 12.2.1. Hardware Debug Probe
  238. 12.3. Hosting Target Boards
  239. 12.3.1. TFTP Server
  240. 12.3.2. BOOTP/DHCP Server
  241. 12.3.3. NFS Server
  242. 12.3.4. Target NFS Root Mount
  243. 12.3.5. U-Boot NFS Root Mount Example
  244. 12.4. Chapter Summary
  245. 12.4.1. Suggestions for Additional Reading
  246. Chapter 13. Development Tools
  247. 13.1. GNU Debugger (GDB)
  248. 13.1.1. Debugging a Core Dump
  249. 13.1.2. Invoking GDB
  250. 13.1.3. Debug Session in GDB
  251. 13.2. Data Display Debugger
  252. 13.3. cbrowser/cscope
  253. 13.4. Tracing and Profiling Tools
  254. 13.4.1. strace
  255. 13.4.2. strace Variations
  256. 13.4.3. ltrace
  257. 13.4.4. ps
  258. 13.4.5. top
  259. 13.4.6. mtrace
  260. 13.4.7. dmalloc
  261. 13.4.8. Kernel Oops
  262. 13.5. Binary Utilities
  263. 13.5.1. readelf
  264. 13.5.2. Examining Debug Info Using readelf
  265. 13.5.3. objdump
  266. 13.5.4. objcopy
  267. 13.6. Miscellaneous Binary Utilities
  268. 13.6.1. strip
  269. 13.6.2. addr2line
  270. 13.6.3. strings
  271. 13.6.4. ldd
  272. 13.6.5. nm
  273. 13.6.6. prelink
  274. 13.7. Chapter Summary
  275. 13.7.1. Suggestions for Additional Reading
  276. Chapter 14. Kernel Debugging Techniques
  277. 14.1. Challenges to Kernel Debugging
  278. 14.2. Using KGDB for Kernel Debugging
  279. 14.2.1. KGDB Kernel Configuration
  280. 14.2.2. Target Boot with KGDB Support
  281. 14.2.3. Useful Kernel Breakpoints
  282. 14.3. Debugging the Linux Kernel
  283. 14.3.1. gdb Remote Serial Protocol
  284. 14.3.2. Debugging Optimized Kernel Code
  285. 14.3.3. gdb User-Defined Commands
  286. 14.3.4. Useful Kernel gdb Macros
  287. 14.3.5. Debugging Loadable Modules
  288. 14.3.6. printk Debugging
  289. 14.3.7. Magic SysReq Key
  290. 14.4. Hardware-Assisted Debugging
  291. 14.4.1. Programming Flash Using a JTAG Probe
  292. 14.4.2. Debugging with a JTAG Probe
  293. 14.5. When It Doesn Boot
  294. 14.5.1. Early Serial Debug Output
  295. 14.5.2. Dumping the printk Log Buffer
  296. 14.5.3. KGDB on Panic
  297. 14.6. Chapter Summary
  298. 14.6.1. Suggestions for Additional Reading
  299. Chapter 15. Debugging Embedded Linux Applications
  300. 15.1. Target Debugging
  301. 15.2. Remote (Cross) Debugging
  302. 15.2.1. gdbserver
  303. 15.3. Debugging with Shared Libraries
  304. 15.3.1. Shared Library Events in GDB
  305. 15.4. Debugging Multiple Tasks
  306. 15.4.1. Debugging Multiple Processes
  307. 15.4.2. Debugging Multithreaded Applications
  308. 15.4.3. Debugging Bootloader/Flash Code
  309. 15.5. Additional Remote Debug Options
  310. 15.5.1. Debugging via Serial Port
  311. 15.5.2. Attaching to a Running Process
  312. 15.6. Chapter Summary
  313. 15.6.1. Suggestions for Additional Reading
  314. Chapter 16. Porting Linux
  315. 16.1. Linux Source Organization
  316. 16.1.1. The Architecture Branch
  317. 16.2. Custom Linux for Your Board
  318. 16.2.1. Prerequisites and Assumptions
  319. 16.2.2. Customizing Kernel Initialization
  320. 16.2.3. Static Kernel Command Line
  321. 16.3. Platform Initialization
  322. 16.3.1. Early Variable Access
  323. 16.3.2. Board Information Structure
  324. 16.3.3. Machine-Dependent Calls
  325. 16.4. Putting It All Together
  326. 16.4.1. Other Architectures
  327. 16.5. Chapter Summary
  328. 16.5.1. Suggestions for Additional Reading
  329. Chapter 17. Linux and Real Time
  330. 17.1. What Is Real Time?
  331. 17.1.1. Soft Real Time
  332. 17.1.2. Hard Real Time
  333. 17.1.3. Linux Scheduling
  334. 17.1.4. Latency
  335. 17.2. Kernel Preemption
  336. 17.2.1. Impediments to Preemption
  337. 17.2.2. Preemption Models
  338. 17.2.3. SMP Kernel
  339. 17.2.4. Sources of Preemption Latency
  340. 17.3. Real-Time Kernel Patch
  341. 17.3.1. Real-Time Features
  342. 17.3.1.1. Spinlock Converted to Mutex
  343. 17.3.1.2. ISRs as Kernel Tasks
  344. 17.3.1.3. Preemptable Softirqs
  345. 17.3.1.4. Preempt RCU
  346. 17.3.2. O(1) Scheduler
  347. 17.3.3. Creating a Real-Time Process
  348. 17.3.4. Critical Section Management
  349. 17.4. Debugging the Real-Time Kernel
  350. 17.4.1. Soft Lockup Detection
  351. 17.4.2. Preemption Debugging
  352. 17.4.3. Debug Wakeup Timing
  353. 17.4.4. Wakeup Latency History
  354. 17.4.5. Interrupt Off Timing
  355. 17.4.6. Interrupt Off History
  356. 17.4.7. Latency Tracing
  357. 17.4.8. Debugging Deadlock Conditions
  358. 17.4.9. Runtime Control of Locking Mode
  359. 17.5. Chapter Summary
  360. 17.5.1. Suggestions for Additional Reading
  361. Appendix A. GNU Public License
  362. Preamble
  363. Terms and Conditions for Copying, Distribution and Modification
  364. No Warranty
  365. Appendix B. U-Boot Configurable Commands
  366. Appendix C. BusyBox Commands
  367. Appendix D. SDRAM Interface Considerations
  368. D.1. SDRAM Basics
  369. D.1.1. SDRAM Refresh
  370. D.2. Clocking
  371. D.3. SDRAM Setup
  372. D.4. Summary
  373. D.4.1. Suggestions for Additional Reading
  374. Appendix E. Open Source Resources
  375. Source Repositories and Developer Information
  376. Mailing Lists
  377. Linux News and Developments
  378. Open Source Insight and Discussion
  379. Appendix F. Sample BDI-2000 Configuration File
  380. Примечания


Ваше впечатление от этой книги  


close [X]

close [X]


Loading...

Комментарии

very good

Оценка 5 из 5 звёзд от PRamd 22.06.2017 07:48  

Thank you for sharing such great inoromatifn about android app development. As per latest trend android provide all latest facility to our smart phone and tablet with possible features.

Sergey 13.05.2014 18:21  

Всего обзоров: 2
Средний рейтинг 4.8 из 5

Ваше имя:     Ваше впечатление от этой книги

Комментарий:


получать комментарии о книге Embedded Linux Primer: A Practical, Real-World Approach на e-mail

Код авторизации Anti spam Capcha
















Loading...