دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: 1
نویسندگان: Andrew Eliasz
سری:
ISBN (شابک) : 9798868801068, 9798868801075
ناشر: Apress
سال نشر: 2024
تعداد صفحات: 689
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 21 مگابایت
در صورت ایرانی بودن نویسنده امکان دانلود وجود ندارد و مبلغ عودت داده خواهد شد
در صورت تبدیل فایل کتاب Zephyr RTOS Embedded C Programming: Using Embedded RTOS POSIX API به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب برنامه نویسی Zephyr RTOS Embedded C: استفاده از API جاسازی شده RTOS POSIX نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Table of Contents About the Author About the Technical Reviewer Chapter 1: An Introduction What This Book Is “All About” What Is an RTOS and When and Why “Do You Need One”? What Is an RTOS? Using Open Source RTOS in Systems Requiring Functional Safety Reconciling Certification with Open Source Zephyr As a Modular RTOS Zephyr As a Fully Featured RTOS Arguments for Choosing Zephyr OS What Makes Zephyr RTOS Special Zephyr and Security References Chapter 2: A Review of RTOS Fundamentals Embedded System Software Development Strategies/Options Multitasking and Interprocess Communication and Synchronization Concepts and Patterns Tasks Intertask Communication Semaphore Binary Semaphore Counting Semaphore Mutual Exclusions Semaphore (Mutex) Priority Inversion Avoidance Using Semaphores and Mutexes in Interrupt Service Routines Semaphore Usage Patterns and Scenarios Wait and Signal Synchronization Credit Tracking Synchronization Synchronizing Access to a Shared Resource Using a Binary Semaphore Message Queueing and Message Queues Interlocked, One-Way Data Communication Interlocked, Two-Way Data Communication Pipes Event Objects (Event Registers) Condition Variables Interrupts and Exceptions Timing and Timers Memory Management Synchronization Patterns and Strategies Communication Patterns Patterns Involving the Use of Critical Sections Common Activity Synchronization Design Patterns Common Resource Synchronization Design Patterns Some More Advanced Thread Interaction Patterns Handling Multiple Data Items and Multiple Inputs Sending Urgent/High Priority Data Between Tasks Device Drivers References Chapter 3: Zephyr RTOS Application Development Environments and Zephyr Application Building Principles Setting Up a Zephyr SDK CLI (Command-Line Interface) Development Environment on Microsoft Windows Choices of Boards and Development Kits for Getting Started Setting Up an nRF Connect SDK Development Environment Using a Microsoft VS Code–Based IDE Working in VS Code Global Actions Application-Specific Actions Build-Specific Actions Details View Devicetree View Actions View Exercise: Building and Running a Zephyr Sample Application Using VS Code Introduction to the Zephyr RTOS Device Driver Model and the Zephyr RTOS Device Driver APIs and Data Structures GPIO Inputs UART Communications Between a Target Board and a PC Zephyr Logging Module Plan of Action for Exploring Multithreading and Thread Synchronization Using Simulation and Simulators for Testing and Developing Zephyr RTOS Applications Zephyr Applications Using Renode Renode and Firmware Testing Building Machines in Renode Emulators vs. Simulators Simulator Use Cases Emulator Use Cases Advantages of Simulators and Emulators Disadvantages of Simulators and Emulators Summarizing Renode References Chapter 4: Zephyr RTOS Multithreading Kconfig Devicetrees and Devicetree Configuration Kconfig and Devicetree Usage Heuristics Multithreading in Zephyr Zephyr Kernel Mode and User Mode Threads An Overview of Generic Zephyr Features Pertaining to Privilege Modes, Stack Protection and Separation, User Mode Threads, and Memory Domains Privilege Modes An Overview of Generic Zephyr Features Pertaining to Privilege Modes, Stack Protection and Separation, User Mode Threads, and Memory Domains Privilege Modes Safety Model and Threats That Zephyr RTOS Applications Need to Protect Against ARM Cortex M Memory Protection Unit (MPU): An Overview User syscalls Zephyr RTOS Thread Priorities Thread Custom Data Dropping Privileges Thread Termination System Threads Basic Multithreading Scenarios Simple Multithreading Example FIFOs in Zephyr Synchronizing Threads Using Semaphores and Sleeping Signalling Using a Condition Variable The Dining Philosophers Problem Producers and Consumers and Multithreading The Zephyr RTOS Producer-Consumer Example Using Zephyr RTOS System Calls: Essential Concepts and Overview Producer-Consumer Example Sample Driver Part Shared Memory Partition, System Heap, Memory Pool, and Kernel Queues Part Application A Part APP B Part Shared Memory, Protected Memory Partitions, and Memory Domains Memory Partitions Zephyr Shared Memory Example References Chapter 5: Message Queues, Pipes, Mailboxes, and Workqueues Zephyr Message Queue Message Queue – Technical Details and the Message Queue API Overview of the Message Queue API Functions Message Queue Example Exercise Scenario Description Zephyr Mailbox Mailbox Message Format Mailbox Message Life Cycle Mailbox Sending and Receiving Thread Compatibility Mailbox Message Sending – Synchronous and Asynchronous The Mailbox API – Data Types and Functions Message Descriptors Sending and Receiving Zephyr Mailbox Messages Sending a Message Receiving a Mailbox Message Introductory Zephyr Mailbox Example Zephyr RTOS Workqueues Delayable Work Simple Workqueue Example 1 Simple Workqueue Example 2 Simple Workqueue Example 3 Summary Chapter 6: Using Filesystems in Zephyr Applications Quad-SPI (QSPI) SDC and MMC Cards SD Card Support via SPI Zephyr RTOS Disk Access API Zephyr File System API Working with Directories File Systems – A High-Level Overview Overview of the FAT File System and FatFs Overview of the LittleFS File System Walkthrough of a LittleFS Example Program Summary References Chapter 7: Developing Zephyr BLE Applications BLE: A Short History Uses of BLE BLE Architecture BLE Physical Layer BLE Link Layer BLE Unicast Connection Scenario BLE Broadcast Connect Scenario BLE Link Layer Addressing BLE Packet Types Connections and Connection Events HCI (Host Controller Interface) Layer Logical Link Control and Adaptation Protocol (L2CAP) Layer BLE Actors – Peripherals, Broadcasters, Centrals, and Observers BLE Peripheral BLE Central HCI – Generic Access Profile (GAP) Attribute Protocol (ATT) Data Attributes GATT Attribute and Data Hierarchy Characteristics Profiles Attribute Operations Requests – Flow Control, Reading Attributes, and Writing to Attributes Bluetooth 5 BLE Security Building and Testing Peripheral and Central BLE Applications The nRF52840 Dongle and Its Uses nRF Connect Bluetooth Low Energy Applications Setting Up an nRF52840 Dongle for Use with the nRF Connect for Desktop nRF BLE Application Using the Dongle in BLE Central Mode BLE Network Connection Map Using the Dongle in BLE Peripheral Mode Using the Power Mode Emulation to Set Up an Emulated Battery Service BLE Application Development APIs Provided by Zephyr and the nRF Connect SDK The Source BLE Structure in the Zephyr Source Code Building, Programming, and Configuring Host Roles Basic Peripheral Example Bluetooth: Central/Heart Rate Monitor Overview of the Connected Function Is It Possible to Run Both a Peripheral and a Central on the Same Board? What Next? Summary References Chapter 8: Zephyr RTOS and Ethernet, Wi-Fi, and TCP/IP Zephyr and Network Management The Nucleo-F767ZI Board Building and Troubleshooting the Zephyr Network Programming Examples Using the STM32 Nucleo-F767ZI Board The BSD Sockets API A Zephyr Echo Server Example Overview Zephyr OS Services Module Strategies for Studying and Reverse Engineering (Where Necessary) Zephyr Application Code Zephyr Network Management API How to Request a Defined Procedure Listening for Network Events How to Define a Network Management Procedure Signalling a Network Event Network Management Interface Functions Zephyr Shell Module Shell Commands Command Creation Macros Creating Static Commands Dictionary Commands The Shell and the Echo Server Example Configuring a TCP Server Application to Use a Separate Thread for Each Connection Data Structures Associated with TCP/IP Server-Side Connections Thread Structures Pool for Handling Threads Involved in TCP/IP Server Connections Echo Server on the STM32 Nucleo-F767ZI Board Summary References Chapter 9: Understanding and Working with the Devicetree in General and SPI and I2C in Particular Firmware Development Aspects of Application Development Overview of SPI and I2C SPI Explained Advantages and Disadvantages of SPI I2C Explained Devicetree Configuration Device Tree Source (DTS) Representation of Devicetrees Unit Addresses and the Devicetree Devicetree Processing Devicetree Bindings The Syntax of Binding Files Binding and Bus Controller Nodes Phandles, Phandle-Array Type Properties, and Specifier Cell Names Including .yaml Binding Files Accessing the Devicetree in C and C++ Application Code Working with Devices in Applications Working with reg and interrupts Properties Working with Devices Overview of How the DEVICE_DT_GET Macro Works I2C Case Study Example Summary References Chapter 10: Building Zephyr RTOS Applications Using Renode Simulator Use Cases Emulator Use Cases Advantages of Simulators and Emulators Disadvantages of Simulators and Emulators Renode Renode Installation Renode Scripts What Is Needed to Emulate a Zephyr Application Using Renode? Boards and Processors Supported by Zephyr That Are Also Supported by Renode Building an nRF52840 DK Application and Running It in Renode Summary and Where Next? References Chapter 11: Understanding and Using the Zephyr ZBus in Application Development Zephyr ZBus ZBus Architecture The ZBus and Code Reusability Limitations of the ZBus ZBus Message Delivery Guarantees and Message Delivery Rates ZBus Message Delivery Sequence Guarantees ZBus Programming in Practice Hard Channels and Message Validation Overview of ZBus Features and Their Uses Publishing and Reading to and from a Channel Claiming and Finishing a Channel Ensuring a Message Will Not Be Changed During a Notification Iterating over Channels and Observers Overview of the Virtual Distributed Event Dispatcher (VDED) Walkthrough of a VDED Execution Scenario Walking Through Some Selected Zephyr ZBus Examples Zephyr ZBus Hello World Zephyr Bus Workqueue Example Chapter 12: Zephyr RTOS Wi-Fi Applications Approaches to Tackling the Various Wi-Fi MAC Problems Security Issues WPA3 SAE Key Exchange Protocol How Wi-Fi Uses the Radio Spectrum Allocated to It Wi-Fi Frames and the 802.11 Packet Structure – An Overview Access Points Discovering an Access Point Authentication and Association Zephyr RTOS and Wi-Fi Application Development nRF7002 DK Board – An Overview Wi-Fi Scanning Example Walkthrough Using the nRF7002 DK Zephyr Network Management – An Overview Requesting a Defined Network Management Procedure Listening to Network Events Defining Network Management Procedures Signalling Network Events Building the Wi-Fi Scan Example from the nRF Connect SDK Repository Structured Overview of the Code of the Scan Example from the nRF Connect SDK Repository Exploring the nRF Connect SDK Wi-Fi Shell Example Basic TCP/IP Application Programming Using the nRF7002 DK Structured Exploration of the nRF Connect SDK Wi-Fi sta Example Wi-Fi BSD Sockets Programming nRF7002 DK – Basic TCP and UDP Example Project source code directory structure The Led Toggling Task UDP Server Task on Target Board Python UDP Client to Test Out UDP Server on Target Board TCP Server Task on Target Board UDP Echo Client Task on Target Board TCP Echo Client Task on Target Board Testing Out the BSD Sockets Example References Index