舉報

會員
Linux Device Driver Development Cookbook
Rodolfo Giometti 著
更新時間:2021-06-24 13:54:49
開會員,本書免費讀 >
Linuxisaunifiedkernelthatiswidelyusedtodevelopembeddedsystems.AsLinuxhasturnedouttobeoneofthemostpopularoperatingsystemsused,theinterestindevelopingproprietarydevicedrivershasalsoincreased.Devicedriversplayacriticalroleinhowthesystemperformsandensuresthatthedeviceworksinthemannerintended.Byofferingseveralexamplesonthedevelopmentofcharacterdevicesandhowtouseotherkernelinternals,suchasinterrupts,kerneltimers,andwaitqueue,aswellashowtomanageadevicetree,youwillbeabletoaddpropermanagementforcustomperipheralstoyourembeddedsystem.YouwillbeginbyinstallingtheLinuxkernelandthenconfiguringit.Onceyouhaveinstalledthesystem,youwilllearntousethedifferentkernelfeaturesandthecharacterdrivers.Youwillalsocoverinterruptsin-depthandhowyoucanmanagethem.Later,youwillgetintothekernelinternalsrequiredfordevelopingapplications.Next,youwillimplementadvancedcharacterdriversandalsobecomeanexpertinwritingimportantLinuxdevicedrivers.Bytheendofthebook,youwillbeabletoeasilywriteacustomcharacterdriverandkernelcodeasperyourrequirements.
最新章節
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Managing asynchronous notifications with fasync()
- Waiting for I/O operations with poll() and select()
- Locking with the process context
- Accessing I/O memory with mmap()
品牌:中圖公司
上架時間:2021-06-24 12:14:51
出版社:Packt Publishing
本書數字版權由中圖公司提供,并由其授權上海閱文信息技術有限公司制作發行
- Leave a review - let other readers know what you think 更新時間:2021-06-24 13:54:49
- Other Books You May Enjoy
- Managing asynchronous notifications with fasync()
- Waiting for I/O operations with poll() and select()
- Locking with the process context
- Accessing I/O memory with mmap()
- Using ioctl() for custom commands
- Going up and down within a file with lseek()
- Technical requirements
- Additional Information: Advanced Char Driver Operations
- Spending time in the kernel
- Getting access to I/O memory
- Kernel hash tables
- Kernel doubly linked lists
- Dynamic memory allocation
- Additional Information: Miscellaneous Kernel Internals
- Kernel timers
- Notifiers
- The container_of() macro
- The shared work queue
- Deferring work
- Additional Information: Managing Interrupts and Concurrency
- Using a device tree to describe a character driver
- The SAMA5D3
- The i.MX7Dual
- The Armada 3720
- Configuring the CPU pins for specific peripherals
- How to add sysfs properties to devices
- How to manage different device types
- Using a device tree to describe a character driver
- Getting application-specific data from a device tree
- Notes on the device tree utilities
- Obtaining a source form of a running device tree
- Using the device tree compiler and utilities
- Device tree internals
- Additional Information: Using the Device Tree
- Exchanging data with a char driver
- Additional Information: Working with Char Drivers
- See also
- There's more...
- How to do it...
- Getting ready
- Managing asynchronous notifications with fasync()
- See also
- There's more...
- How to do it...
- Getting ready
- Waiting for I/O operations with poll() and select()
- See also
- There's more...
- How it works...
- How to do it...
- Getting ready
- Locking (and syncing) with the interrupt context
- See also
- How it works...
- How to do it...
- Locking with the process context
- See also
- There's more...
- How it works...
- How to do it...
- Getting ready
- Accessing I/O memory with mmap()
- See also
- There's more...
- How it works...
- How to do it...
- Getting ready
- Using ioctl() for custom commands
- See also
- There's more...
- How it works...
- How to do it...
- Getting ready
- Going up and down within a file with lseek()
- Technical requirements
- Advanced Char Driver Operations
- See also
- There's more...
- How to do it...
- Getting ready
- Spending time in the kernel
- See also
- How it works...
- How to do it...
- Getting ready
- Getting access to I/O memory
- See also
- There's more...
- How to do it...
- Getting ready
- Using kernel hash tables
- See also
- There's more...
- How to do it...
- Getting ready
- Managing kernel linked lists
- See also
- There's more...
- How to do it...
- Dynamic memory allocation
- See also
- There's more...
- How to do it...
- Getting ready
- Managing helper functions
- See also
- There's more...
- How it works...
- How to do it...
- Getting ready
- Using kernel data types
- Technical requirements
- Miscellaneous Kernel Internals
- See also
- The atomic data type
- Spinlocks
- Mutexes
- There's more...
- Spinlocks
- Mutexes
- How it works...
- Spinlocks
- Mutexes
- How to do it...
- Getting ready
- Performing atomic operations
- See also
- Completions
- Waitqueues
- There's more...
- Completions
- Waitqueues
- How it works...
- Completions
- Waitqueues
- How to do it...
- Getting ready
- Waiting for an event
- See also
- Legacy kernel timers
- There's more...
- How it works...
- How to do it...
- Getting ready
- Managing time with kernel timers
- See also
- Workqueues
- Tasklets
- There's more...
- Workqueues
- Tasklets
- How to do it...
- Getting ready
- Deferring work
- See also
- There's more...
- How it works...
- How to do it...
- Getting ready
- Implementing an interrupt handler
- Technical requirements
- Managing Interrupts and Concurrency
- See also
- How it works...
- How to do it...
- Configuring CPU pins for specific peripherals
- See also
- There's more
- How it works...
- How to do it...
- Getting ready
- Downloading the firmware
- How device files are created in /dev
- There's more...
- How it works...
- How to do it...
- Getting ready
- Using a device tree to describe a character driver
- See also
- There's more...
- How it works...
- How to do it...
- Getting ready
- Getting application-specific data from a device tree
- See also
- Reverting a binary device tree into its source
- There's more...
- How it works...
- How to do it...
- Getting ready
- Using the device tree compiler and utilities
- Technical requirements
- Using the Device Tree
- How it works...
- How to do it...
- Getting ready
- Using the “Everything Is a File” abstraction
- See also
- There's more...
- How it works...
- How to do it...
- Getting ready
- Exchanging data with a char driver
- See also
- There's more...
- How it works...
- How to do it...
- Getting ready
- Creating the simplest char driver
- Technical requirements
- Working with Char Drivers
- See also
- How it works...
- How to do it...
- Getting ready
- Using module parameters
- See also
- How it works...
- How to do it...
- Getting ready
- Working with kernel modules
- See also
- Filtering kernel messages
- There's more...
- How it works...
- How to do it...
- Getting ready
- Using kernel messages
- See also
- How it works...
- How to do it...
- Getting ready
- Adding custom code to the sources
- Technical requirements
- A Peek Inside the Kernel
- See also
- Configuring the emulated OS
- Installing and configuring schroot
- How to do it...
- Getting ready
- Doing native compiling on foreign hardware
- See also
- Setting up the networking
- Setting up the booting variables
- Adding the kernel
- Adding Debian files
- How to do it...
- Getting ready
- Setting up the target machine
- See also
- How to do it...
- Getting ready
- Configuring and building the kernel
- See also
- How to do it...
- Getting ready
- Working with the serial console
- See also
- How to do it...
- Getting ready
- Setting up the host machine
- Technical requirements
- Installing the Development System
- Reviews
- Get in touch
- See also
- There's more…
- How it works…
- How to do it…
- Getting ready
- Sections
- Other conventions
- Serial and network connections
- File modifications
- Kernel and logging messages
- Conventions used
- Download the color images
- Download the example code files
- To get the most out of this book
- What this book covers
- Who this book is for
- Preface
- Packt is searching for authors like you
- About the reviewers
- About the author
- Contributors
- Packt.com
- Why subscribe?
- About Packt
- Linux Device Driver Development Cookbook
- Copyright and Credits
- Title Page
- coverpage
- 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