舉報

會員
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
推薦閱讀
- 全屋互聯(lián):智能家居系統(tǒng)開發(fā)指南
- Kubernetes修煉手冊
- 每天5分鐘玩轉Kubernetes
- 操作系統(tǒng)基礎與實踐:基于openEuler平臺
- 新手易學:系統(tǒng)安裝與重裝
- 開源安全運維平臺OSSIM疑難解析:入門篇
- SharePoint 2013 應用開發(fā)實戰(zhàn)
- Linux Shell編程從入門到精通(第2版)
- 混沌工程:復雜系統(tǒng)韌性實現(xiàn)之道
- 奔跑吧 Linux內核(入門篇)
- Kali Linux高級滲透測試
- 寫給架構師的Linux實踐:設計并實現(xiàn)基于Linux的IT解決方案
- Office 365 User Guide
- Angular權威教程
- Microsoft DirectAccess Best Practices and Troubleshooting
- Azure Serverless Computing Cookbook
- 不可不知的Windows技巧
- TD-SCDMA HSDPA系統(tǒng)設計與組網技術
- Linux系統(tǒng)編程
- 新編大學計算機應用基礎(Windows 7+Office 2010)(微課版)
- 輕松學Linux:從Manjaro到Arch Linux
- iOS7:iPhone/iPad應用開發(fā)技術詳解
- Linux C編程從初學到精通
- 樹莓派Linux操作系統(tǒng)移植
- Instant Haml
- Architecting Cloud Native Applications
- UML和OOAD快速入門
- 深入淺出Docker
- Mastering NServiceBus and Persistence
- 鴻蒙應用開發(fā)入門