ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Linux Device Driver Development: Everything you need to start with device driver development for Linux kernel and embedded Linux

دانلود کتاب توسعه درایور دستگاه لینوکس: همه چیزهایی که برای شروع با توسعه درایور دستگاه برای هسته لینوکس و لینوکس جاسازی شده نیاز دارید

Linux Device Driver Development: Everything you need to start with device driver development for Linux kernel and embedded Linux

مشخصات کتاب

Linux Device Driver Development: Everything you need to start with device driver development for Linux kernel and embedded Linux

ویرایش: [2 ed.] 
نویسندگان:   
سری:  
ISBN (شابک) : 1803240067, 9781803240060 
ناشر: Packt Publishing 
سال نشر: 2022 
تعداد صفحات: 708 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 5 Mb 

قیمت کتاب (تومان) : 50,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 2


در صورت تبدیل فایل کتاب Linux Device Driver Development: Everything you need to start with device driver development for Linux kernel and embedded Linux به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب توسعه درایور دستگاه لینوکس: همه چیزهایی که برای شروع با توسعه درایور دستگاه برای هسته لینوکس و لینوکس جاسازی شده نیاز دارید نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب توسعه درایور دستگاه لینوکس: همه چیزهایی که برای شروع با توسعه درایور دستگاه برای هسته لینوکس و لینوکس جاسازی شده نیاز دارید

با مهم ترین مفاهیم در توسعه درایورها سرعت بگیرید و روی سیستم مورد نیاز سیستم جاسازی شده رایج مانند مدیریت حافظه، مدیریت وقفه و مکانیسم های قفل تمرکز کنید ویژگی های کلیدی: نوشتن درایورهای دستگاه لینوکس با ویژگی های غنی و سفارشی برای هر شخصیت، SPI و I2C دستگاه توسعه درک عمیقی از قفل اولیه، مدیریت IRQ، مدیریت حافظه، DMA، و غیره کسب تجربه عملی در سمت جاسازی شده لینوکس با استفاده از GPIO، IIO، و زیرسیستم های ورودی شرح کتاب: لینوکس تا حد زیادی پر استفاده ترین هسته در لینوکس است. سیستم های جاسازی شده. به لطف زیرسیستم های خود، هسته لینوکس تقریباً از تمام زمینه های کاربردی در دنیای صنعتی پشتیبانی می کند. این نسخه دوم به روز شده توسعه درایور دستگاه لینوکس، مقدمه ای جامع از دنیای هسته لینوکس و زیرسیستم های مختلفی است که از آن ساخته شده است و برای توسعه دهندگان تعبیه شده از هر رشته ای مفید خواهد بود. شما یاد خواهید گرفت که چگونه هسته لینوکس را پیکربندی، تنظیم و بسازید. پر از مثال‌های واقعی، این کتاب هر یک از پرکاربردترین زیرسیستم‌ها را در حوزه‌های تعبیه‌شده مانند GPIO، دسترسی مستقیم به حافظه، مدیریت وقفه و درایورهای دستگاه I2C/SPI را پوشش می‌دهد. این کتاب به شما نشان می دهد که چگونه لینوکس هر دستگاه را از نقطه نظر سخت افزاری انتزاعی می کند و چگونه یک دستگاه به درایور(های) آن متصل می شود. شما همچنین خواهید دید که چگونه وقفه ها در سیستم منتشر می شوند زیرا این کتاب مکانیزم های پردازش وقفه را به طور عمیق پوشش می دهد و هر ساختار هسته و API درگیر را توصیف می کند. این نسخه جدید همچنین به نحوه عدم نوشتن درایورهای دستگاه با استفاده از کتابخانه فضای کاربر برای سرویس گیرندگان GPIO، I2C و درایورهای SPI می پردازد. تا پایان این کتاب لینوکس، می‌توانید درایورهای دستگاه را برای اکثر دستگاه‌های تعبیه‌شده بنویسید. آنچه یاد خواهید گرفت: دانلود، پیکربندی، ساخت و تنظیم هسته لینوکس سخت افزار را با استفاده از درخت دستگاه توصیف کنید. درایورهای پلتفرم غنی از ویژگی ها بنویسید و از گذرگاه های I2C و SPI استفاده کنید از زیرساخت جدید صف کار مدیریت همزمانی حداکثر استفاده را ببرید درک هسته لینوکس مکانیسم زمان سنجی و استفاده از API های مرتبط با زمان از چارچوب regmap برای فاکتور کردن کد و تبدیل آن به CPU عمومی Offload برای نسخه های حافظه با استفاده از DMA استفاده کنید. تعامل با دنیای واقعی با استفاده از GPIO، IIO، و زیرسیستم های ورودی این کتاب برای چه کسی است: این کتاب سیستم عامل لینوکس برای علاقه مندان و توسعه دهندگان لینوکس جاسازی شده و سیستم های جاسازی شده است که می خواهند با توسعه هسته لینوکس شروع کنند و از زیرسیستم های آن استفاده کنند. هکرهای الکترونیکی و علاقمندان به توسعه هسته لینوکس و همچنین هر کسی که به دنبال تعامل با پلتفرم با استفاده از GPIO، IIO و زیرسیستم‌های ورودی هستند نیز این کتاب را مفید خواهند یافت.


توضیحاتی درمورد کتاب به خارجی

Get up to speed with the most important concepts in driver development and focus on common embedded system requirements such as memory management, interrupt management, and locking mechanisms Key Features: Write feature-rich and customized Linux device drivers for any character, SPI, and I2C device Develop a deep understanding of locking primitives, IRQ management, memory management, DMA, and so on Gain practical experience in the embedded side of Linux using GPIO, IIO, and input subsystems Book Description: Linux is by far the most-used kernel on embedded systems. Thanks to its subsystems, the Linux kernel supports almost all of the application fields in the industrial world. This updated second edition of Linux Device Driver Development is a comprehensive introduction to the Linux kernel world and the different subsystems that it is made of, and will be useful for embedded developers from any discipline. You\'ll learn how to configure, tailor, and build the Linux kernel. Filled with real-world examples, the book covers each of the most-used subsystems in the embedded domains such as GPIO, direct memory access, interrupt management, and I2C/SPI device drivers. This book will show you how Linux abstracts each device from a hardware point of view and how a device is bound to its driver(s). You\'ll also see how interrupts are propagated in the system as the book covers the interrupt processing mechanisms in-depth and describes every kernel structure and API involved. This new edition also addresses how not to write device drivers using user space libraries for GPIO clients, I2C, and SPI drivers. By the end of this Linux book, you\'ll be able to write device drivers for most of the embedded devices out there. What You Will Learn: Download, configure, build, and tailor the Linux kernel Describe the hardware using a device tree Write feature-rich platform drivers and leverage I2C and SPI buses Get the most out of the new concurrency managed workqueue infrastructure Understand the Linux kernel timekeeping mechanism and use time-related APIs Use the regmap framework to factor the code and make it generic Offload CPU for memory copies using DMA Interact with the real world using GPIO, IIO, and input subsystems Who this book is for: This Linux OS book is for embedded system and embedded Linux enthusiasts/developers who want to get started with Linux kernel development and leverage its subsystems. Electronic hackers and hobbyists interested in Linux kernel development as well as anyone looking to interact with the platform using GPIO, IIO, and input subsystems will also find this book useful.



فهرست مطالب

Cover
Title page
Copyright and Credits
Dedication
Contributors
Table of Contents
Preface
Section 1 -Linux Kernel Development Basics
Chapter 1: Introduction to Kernel Development
	Setting up the development environment
		Setting up the host machine
		Getting the sources
	Configuring and building the Linux kernel
		Specifying compilation options
		Understanding the kernel configuration process
		Building the Linux kernel
	Building and installing modules
	Summary
Chapter 2: Understanding Linux Kernel Module Basic Concepts
	An introduction to the concept of modules
		Case study – module skeleton
	Building a Linux kernel module
		Understanding the Linux kernel build system
		Out-of-tree building
		In-tree building
	Handling module parameters
	Dealing with symbol exports and module dependencies
		An introduction to the concept of module dependencies
	Learning some Linux kernel programming tips
		Error handling
		Message printing – goodbye printk, long life dev_*, pr_*, and net_* APIs
	Summary
Chapter 3: Dealing with Kernel Core Helpers
	Linux kernel locking mechanisms and shared resources
		Spinlocks
		Mutexes
		Trylock methods
	Dealing with kernel waiting, sleeping, and delay mechanisms
		Wait queue
		Simple sleeping in the kernel
		Kernel delay or busy waiting
	Understanding Linux kernel time management
		The concepts of clocksource, clockevent, and tick device
		Using standard kernel low-precision (low-res) timers
		High-resolution timers (hrtimers)
	Implementing work-deferring mechanisms
		Softirqs
		Tasklets
		Workqueues
		Workqueues' new generation
	Kernel interrupt handling
		Designing and registering an interrupt handler
	Summary
Chapter 4: Writing Character Device Drivers
	The concept of major and minor
	Character device data structure introduction
		An introduction to device file operations
		File representation in the kernel
	Creating a device node
		Device identification
		Registration and deregistration of character device numbers
		Initializing and registering a character device on the system
	Implementing file operations
		Exchanging data between the kernel space and user space
		Implementing the open file operation
		Implementing the release file operation
		Implementing the write file operation
		Implementing the read file operation
		Implementing the llseek file operation
		The poll method
		The ioctl method
	Summary
Section 2 - Linux Kernel Platform Abstraction and Device Drivers
Chapter 5: Understanding and Leveraging the Device Tree
	Understanding the basic concept of the device tree mechanism
		The device tree naming convention
		An introduction to the concept of aliases, labels, phandles, and paths
		Understanding overwriting nodes and properties
		Device tree sources and compilers
	Representing and addressing devices
		Handling SPI and I2C device addressing
		Memory-mapped devices and device addressing
	Handling resources
		The struct resource
		Extracting application-specific data
	Summary
Chapter 6: Introduction to Devices, Drivers, and Platform Abstraction
	Linux kernel platform abstraction and data structures
		Device base structure
		Device driver base structure
		Device/driver matching and module (auto) loading
		Device declaration – populating devices
		Bus structure
	Device and driver matching mechanism explained
		Case study – the OF matching mechanism
	Summary
Chapter 7: Understanding the Concept of Platform Devices and Drivers
	Understanding the platform core abstraction in the Linux kernel
	Dealing with platform devices
		Allocating and registering platform devices
		How not to allocate platform devices to your code
		Working with platform resources
	Platform driver abstraction and architecture
		Probing and releasing the platform devices
		Provisioning supported devices in the driver
		Driver initialization and registration
	Example of writing a platform driver from scratch
	Summary
Chapter 8: Writing I2C Device Drivers
	I2C framework abstractions in the Linux kernel
		A brief introduction to struct i2c_adapter
		I2C client and driver data structures
		I2C communication APIs
	The I2C driver abstraction and architecture
		Probing the I2C device
		Implementing the i2c_driver.remove method
		Driver initialization and registration
		Provisioning devices in the driver
		Instantiating I2C devices
	How not to write I2C device drivers
	Summary
Chapter 9: Writing SPI Device Drivers
	Understanding the SPI framework abstractions in the Linux kernel
		Brief introduction to struct spi_controller
		The struct spi_device structure
		The spi_driver structure
		The message transfer data structures
		Accessing the SPI device
	Dealing with the SPI driver abstraction and architecture
		Probing the device
		Provisioning devices in the driver
		Implementing the spi_driver.remove method
		Driver initialization and registration
		Instantiating SPI devices
	Learning how not to write SPI device drivers
	Summary
Section 3 - Making the Most out of Your Hardware
Chapter 10: Understanding the Linux Kernel Memory Allocation
	An introduction to Linux kernel memory-related terms
		Kernel address space layout on 32-bit systems – the concept of low and high memory
		An overview of a process address space from the kernel
		Understanding the concept of VMA
	Demystifying address translation and MMU
		Page lookup and the TLB
		The page allocator
		The slab allocator
		kmalloc family allocation
		vmalloc family allocation
		A short story about process memory allocation under the hood
	Working with I/O memory to talk to hardware
		PIO device access
		MMIO device access
	Memory (re)mapping
		Understanding the use of kmap
		Mapping kernel memory to user space
	Summary
Chapter 11: Implementing Direct Memory Access (DMA) Support
	Setting up DMA mappings
		The concept of cache coherency and DMA
		Memory mappings for DMA
	Introduction to the concept of completion
	Working with the DMA engine's API
		A brief introduction to the DMA controller interface
		Handling device DMA addressing capabilities
		Requesting a DMA channel
		Configuring the DMA channel
		Configuring the DMA transfer
		Submitting the DMA transfer
		Issuing pending DMA requests and waiting for callback notification
	Putting it all together – Single-buffer DMA mapping
	A word on cyclic DMA
	Understanding DMA and DT bindings
		Consumer binding
	Summary
Chapter 12: Abstracting Memory Access – Introduction to the Regmap API: a Register Map Abstraction
	Introduction to the Regmap data structures
		Understanding the struct regmap_config structure
	Handling Regmap initialization
	Using Regmap register access functions
		Bulk and multiple registers reading/writing APIs
		Understanding the Regmap caching system
	Regmap-based SPI driver example – putting it all together
		A Regmap example
	Leveraging Regmap from the user space
	Summary
Chapter 13: Demystifying the Kernel IRQ Framework
	Brief presentation of interrupts
	Understanding interrupt controllers and interrupt multiplexing
	Diving into advanced peripheral IRQ management
		Understanding IRQ and propagation
		Chaining IRQs
	Demystifying per-CPU interrupts
		SGIs and IPIs
	Summary
Chapter 14: Introduction to the Linux Device Model
	Introduction to LDM data structures
		The bus data structure
		The driver data structure
		The device data structure
	Getting deeper inside LDM
		Understanding the kobject structure
		Understanding the kobj_type structure
		Understanding the kset structure
		Working with non-default attributes
	Overview of the device model from sysfs
		Creating device-, driver-, bus- and class-related attributes
		Making a sysfs attribute poll- and select-compatible
	Summary
Section 4 - Misc Kernel Subsystems for the Embedded World
Chapter 15: Digging into the IIO Framework
	Introduction to IIO data structures
		Understanding the struct iio_dev structure
		Understanding the struct iio_info structure
		The concept of IIO channels
		Distinguishing channels
		Putting it all together – writing a dummy IIO driver
	Integrating IIO triggered buffer support
		IIO trigger and sysfs (user space)
		IIO buffers
		Putting it all together
	Accessing IIO data
		Single-shot capture
		Accessing the data buffer
	Dealing with the in-kernel IIO consumer interface
		Consumer kernel API
	Writing user-space IIO applications
		Scanning and creating an IIO context
		Walking through and managing IIO devices
		Walking through and managing IIO channels
		Working with a trigger
		Creating a buffer and reading data samples
	Walking through user-space IIO tools
	Summary
Chapter 16: Getting the Most Out of the Pin Controller and GPIO Subsystems
	Introduction to some hardware terms
	Introduction to the pin control subsystem
	Dealing with the GPIO controller interface
		Writing a GPIO controller driver
		GPIO controller bindings
	Getting the most out of the GPIO consumer interface
		Integer-based GPIO interface – now deprecated
		Descriptor-based GPIO interface: the new and recommended way
	Learning how not to write GPIO client drivers
		Goodbye to the legacy GPIO sysfs interface
		Welcome to the Libgpiod GPIO library
		The GPIO aggregator
	Summary
Chapter 17: Leveraging the Linux Kernel Input Subsystem
	Introduction to the Linux kernel input subsystem – its data structures and APIs
	Allocating and registering an input device
	Using polled input devices
	Generating and reporting input events
	Handling input devices from the user space
	Summary
Index
About Packt
Other Books You May Enjoy




نظرات کاربران