舉報

會員
Linux Device Driver Development Cookbook
Linuxisaunifiedkernelthatiswidelyusedtodevelopembeddedsystems.AsLinuxhasturnedouttobeoneofthemostpopularoperatingsystemsused,theinterestindevelopingproprietarydevicedrivershasalsoincreased.Devicedriversplayacriticalroleinhowthesystemperformsandensuresthatthedeviceworksinthemannerintended.Byofferingseveralexamplesonthedevelopmentofcharacterdevicesandhowtouseotherkernelinternals,suchasinterrupts,kerneltimers,andwaitqueue,aswellashowtomanageadevicetree,youwillbeabletoaddpropermanagementforcustomperipheralstoyourembeddedsystem.YouwillbeginbyinstallingtheLinuxkernelandthenconfiguringit.Onceyouhaveinstalledthesystem,youwilllearntousethedifferentkernelfeaturesandthecharacterdrivers.Youwillalsocoverinterruptsin-depthandhowyoucanmanagethem.Later,youwillgetintothekernelinternalsrequiredfordevelopingapplications.Next,youwillimplementadvancedcharacterdriversandalsobecomeanexpertinwritingimportantLinuxdevicedrivers.Bytheendofthebook,youwillbeabletoeasilywriteacustomcharacterdriverandkernelcodeasperyourrequirements.
目錄(295章)
倒序
- coverpage
- Title Page
- Copyright and Credits
- Linux Device Driver Development Cookbook
- About Packt
- Why subscribe?
- Packt.com
- Contributors
- About the author
- About the reviewers
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Kernel and logging messages
- File modifications
- Serial and network connections
- Other conventions
- Sections
- Getting ready
- How to do it…
- How it works…
- There's more…
- See also
- Get in touch
- Reviews
- Installing the Development System
- Technical requirements
- Setting up the host machine
- Getting ready
- How to do it...
- See also
- Working with the serial console
- Getting ready
- How to do it...
- See also
- Configuring and building the kernel
- Getting ready
- How to do it...
- See also
- Setting up the target machine
- Getting ready
- How to do it...
- Adding Debian files
- Adding the kernel
- Setting up the booting variables
- Setting up the networking
- See also
- Doing native compiling on foreign hardware
- Getting ready
- How to do it...
- Installing and configuring schroot
- Configuring the emulated OS
- See also
- A Peek Inside the Kernel
- Technical requirements
- Adding custom code to the sources
- Getting ready
- How to do it...
- How it works...
- See also
- Using kernel messages
- Getting ready
- How to do it...
- How it works...
- There's more...
- Filtering kernel messages
- See also
- Working with kernel modules
- Getting ready
- How to do it...
- How it works...
- See also
- Using module parameters
- Getting ready
- How to do it...
- How it works...
- See also
- Working with Char Drivers
- Technical requirements
- Creating the simplest char driver
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Exchanging data with a char driver
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using the “Everything Is a File” abstraction
- Getting ready
- How to do it...
- How it works...
- Using the Device Tree
- Technical requirements
- Using the device tree compiler and utilities
- Getting ready
- How to do it...
- How it works...
- There's more...
- Reverting a binary device tree into its source
- See also
- Getting application-specific data from a device tree
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using a device tree to describe a character driver
- Getting ready
- How to do it...
- How it works...
- There's more...
- How device files are created in /dev
- Downloading the firmware
- Getting ready
- How to do it...
- How it works...
- There's more
- See also
- Configuring CPU pins for specific peripherals
- How to do it...
- How it works...
- See also
- Managing Interrupts and Concurrency
- Technical requirements
- Implementing an interrupt handler
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Deferring work
- Getting ready
- How to do it...
- Tasklets
- Workqueues
- There's more...
- Tasklets
- Workqueues
- See also
- Managing time with kernel timers
- Getting ready
- How to do it...
- How it works...
- There's more...
- Legacy kernel timers
- See also
- Waiting for an event
- Getting ready
- How to do it...
- Waitqueues
- Completions
- How it works...
- Waitqueues
- Completions
- There's more...
- Waitqueues
- Completions
- See also
- Performing atomic operations
- Getting ready
- How to do it...
- Mutexes
- Spinlocks
- How it works...
- Mutexes
- Spinlocks
- There's more...
- Mutexes
- Spinlocks
- The atomic data type
- See also
- Miscellaneous Kernel Internals
- Technical requirements
- Using kernel data types
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Managing helper functions
- Getting ready
- How to do it...
- There's more...
- See also
- Dynamic memory allocation
- How to do it...
- There's more...
- See also
- Managing kernel linked lists
- Getting ready
- How to do it...
- There's more...
- See also
- Using kernel hash tables
- Getting ready
- How to do it...
- There's more...
- See also
- Getting access to I/O memory
- Getting ready
- How to do it...
- How it works...
- See also
- Spending time in the kernel
- Getting ready
- How to do it...
- There's more...
- See also
- Advanced Char Driver Operations
- Technical requirements
- Going up and down within a file with lseek()
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Using ioctl() for custom commands
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Accessing I/O memory with mmap()
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Locking with the process context
- How to do it...
- How it works...
- See also
- Locking (and syncing) with the interrupt context
- Getting ready
- How to do it...
- How it works...
- There's more...
- See also
- Waiting for I/O operations with poll() and select()
- Getting ready
- How to do it...
- There's more...
- See also
- Managing asynchronous notifications with fasync()
- Getting ready
- How to do it...
- There's more...
- See also
- Additional Information: Working with Char Drivers
- Exchanging data with a char driver
- Additional Information: Using the Device Tree
- Device tree internals
- Using the device tree compiler and utilities
- Obtaining a source form of a running device tree
- Notes on the device tree utilities
- Getting application-specific data from a device tree
- Using a device tree to describe a character driver
- How to manage different device types
- How to add sysfs properties to devices
- Configuring the CPU pins for specific peripherals
- The Armada 3720
- The i.MX7Dual
- The SAMA5D3
- Using a device tree to describe a character driver
- Additional Information: Managing Interrupts and Concurrency
- Deferring work
- The shared work queue
- The container_of() macro
- Notifiers
- Kernel timers
- Additional Information: Miscellaneous Kernel Internals
- Dynamic memory allocation
- Kernel doubly linked lists
- Kernel hash tables
- Getting access to I/O memory
- Spending time in the kernel
- Additional Information: Advanced Char Driver Operations
- Technical requirements
- Going up and down within a file with lseek()
- Using ioctl() for custom commands
- Accessing I/O memory with mmap()
- Locking with the process context
- Waiting for I/O operations with poll() and select()
- Managing asynchronous notifications with fasync()
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-24 13:54:49
推薦閱讀
- pcDuino開發(fā)實戰(zhàn)
- 阿里云數(shù)字新基建系列:云原生操作系統(tǒng)Kubernetes
- 精解Windows 8
- Linux性能優(yōu)化
- Windows Phone 8 Application Development Essentials
- 寫給架構(gòu)師的Linux實踐:設(shè)計并實現(xiàn)基于Linux的IT解決方案
- Linux系統(tǒng)最佳實踐工具:命令行技術(shù)
- 精解Windows 10
- 從零開始學安裝與重裝系統(tǒng)
- 應(yīng)急指揮信息系統(tǒng)設(shè)計
- Java EE 7 Developer Handbook
- VMware vSphere 5.1 Cookbook
- 15分鐘!畫出我的漫畫角色:賣萌篇
- Serverless Architectures with Kubernetes
- 從零開始學Windows 7
- 深入理解嵌入式Linux設(shè)備驅(qū)動程序
- Hyper-V Replica Essentials
- 鴻蒙操作系統(tǒng)開發(fā)入門經(jīng)典
- 庖丁解牛Linux操作系統(tǒng)分析
- 龍芯電腦使用解析(統(tǒng)信 UOS版)
- 電腦辦公(Windows 10+Office 2016)從入門到精通
- Instant Google Compute Engine
- Azure DevOps Server 2019 Cookbook(Second Edition)
- 嵌入式操作系統(tǒng)(Linux篇)
- 深入淺出Pandas:利用Python進行數(shù)據(jù)處理與分析
- 24小時學會系統(tǒng)安裝與重裝
- Architecting Cloud Native Applications
- Bootstrap for ASP.NET MVC
- 分布式系統(tǒng)開發(fā)實戰(zhàn)
- Mastering SoapUI