دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Jean J.Labrosse
سری:
ISBN (شابک) : 2009934275, 9780982337530
ناشر: Micriμm Press
سال نشر: 2011
تعداد صفحات: 934
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 19 Mb
در صورت تبدیل فایل کتاب uCOS-III-The Real time kernel ST-STM32 به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب uCOS-III-هسته زمان واقعی ST-STM32 نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Cover Table of Contents Part I Foreword to µC/OS-III — by Jack Ganssle Preface Introduction 1-1 Foreground/Background Systems 1-2 Real-Time Kernels 1-3 RTOS (Real-Time Operating System) 1-4 µC/OS-III 1-5 µC/OS, µC/OS-II and µC/OS-III Features Comparison 1-6 How the Book is Organized 1-7 µC/Probe 1-8 Conventions 1-9 Chapter Contents Directories and Files 2-1 Application Code 2-2 CPU 2-3 Board Support Package (BSP) 2-4 µC/OS-III, CPU Independent Source Code 2-5 µC/OS-III, CPU Specific Source Code 2-6 µC/CPU, CPU Specific Source Code 2-7 µC/LIB, Portable Library Functions 2-8 Summary Getting Started with µC/OS-III 3-1 Single Task Application 3-2 Multiple Tasks Application with Kernel Objects Critical Sections 4-1 Disabling Interrupts 4-1-1 Measuring Interrupt Disable Time 4-2 Locking the Scheduler 4-2-1 Measuring Scheduler Lock Time 4-3 µC/OS-III Features with Longer Critical Sections 4-4 Summary Task Management 5-1 Assigning Task Priorities 5-2 Determining the Size of a Stack 5-3 Detecting Task Stack Overflows 5-4 Task Management Services 5-5 Task Management Internals 5-5-1 Task States 5-5-2 Task Control Blocks (TCBs) 5-6 Internal Tasks 5-6-1 The Idle Task (OS_IdleTask(), os_core.c) 5-6-2 The Tick Task (OS_TickTask(), os_tick.c) 5-6-3 The Statistic Task (OS_StatTask(), os_stat.c) 5-6-4 The Timer Task (OS_TmrTask(), os_tmr.c) 5-6-5 The ISR Handler Task (OS_IntQTask(), os_int.c) 5-7 Summary The Ready List 6-1 Priority Levels 6-2 The Ready List 6-3 Adding Tasks to the Ready List 6-4 Summary Scheduling 7-1 Preemptive Scheduling 7-2 Scheduling Points 7-3 Round-Robin Scheduling 7-4 Scheduling Internals 7-4-1 OSSched() 7-4-2 OSIntExit() 7-4-3 OS_SchedRoundRobin() 7-5 Summary Context Switching 8-1 OSCtxSw() 8-2 OSIntCtxSw() 8-3 Summary Interrupt Management 9-1 Handling CPU Interrupts 9-2 Typical µC/OS-III Interrupt Service Routine (ISR) 9-3 Non Kernel-Aware Interrupt Service Routine (ISR) 9-4 Processors with Multiple Interrupt Priorities 9-5 All Interrupts Vector to a Common Location 9-6 Every Interrupt Vectors to a Unique Location 9-7 Direct and Deferred Post Methods 9-7-1 Direct Post Method 9-7-2 Deferred Post Method 9-8 Direct vs. Deferred Post Method 9-9 The Clock Tick (or System Tick) 9-10 Summary Pend Lists (or Wait Lists) 10-1 Summary Time Management 11-1 OSTimeDly() 11-2 OSTimeDlyHMSM() 11-3 OSTimeDlyResume() 11-4 OSTimeSet() and OSTimeGet() 11-5 OSTimeTick() 11-6 Summary Timer Management 12-1 One-Shot Timers 12-2 Periodic (no initial delay) 12-3 Periodic (with initial delay) 12-4 Timer Management Internals 12-4-1 Timer Management Internals - Timers States 12-4-2 Timer Management Internals - OS_TMR 12-4-3 Timer Management Internals - Timer Task 12-4-4 Timer Management Internals - Timer List 12-5 Summary Resource Management 13-1 Disable/Enable Interrupts 13-2 Lock/Unlock 13-3 Semaphores 13-3-1 Binary Semaphores 13-3-2 Counting Semaphores 13-3-3 Notes on Semaphores 13-3-4 Semaphore Internals (for resource sharing) 13-3-5 Priority Inversions 13-4 Mutual Exclusion Semaphores (Mutex) 13-4-1 Mutual Exclusion Semaphore Internals 13-5 Should You Use a Semaphore Instead of a Mutex? 13-6 Deadlocks (or Deadly Embrace) 13-7 Summary Synchronization 14-1 Semaphores 14-1-1 Unilateral Rendez-vous 14-1-2 Credit Tracking 14-1-3 Multiple Tasks Waiting on a Semaphore 14-1-4 Semaphore Internals (for synchronization) 14-2 Task Semaphore 14-2-1 Pending (i.e., Waiting) on a Task Semaphore 14-2-2 Posting (i.e., Signaling) a Task Semaphore 14-2-3 Bilateral Rendez-vous 14-3 Event Flags 14-3-1 Using Event Flags 14-3-2 Event Flags Internals 14-4 Synchronizing Multiple Tasks 14-5 Summary Message Passing 15-1 Messages 15-2 Message Queues 15-3 Task Message Queue 15-4 Bilateral Rendez-vous 15-5 Flow Control 15-6 Keeping the Data in Scope 15-7 Using Message Queues 15-8 Clients and Servers 15-9 Message Queues Internals 15-10 Summary Pending On Multiple Objects 16-1 Summary Memory Management 17-1 Creating a Memory Partition 17-2 Getting a Memory Block from a Partition 17-3 Returning a Memory Block to a Partition 17-4 Using Memory Partitions 17-5 Summary Porting µC/OS-III 18-1 Conventions 18-2 µC/CPU 18-2-1 cpu_bsp.h 18-2-2 cpu_def.h 18-2-3 cpu_cfg.h 18-2-4 cpu_core.c 18-2-5 cpu_core.h 18-2-6 cpu.h 18-2-7 cpu_c.c 18-2-8 cpu_a.asm 18-3 µC/OS-III Port 18-3-1 os_cpu.h 18-3-2 os_cpu_c.c 18-3-3 os_cpu_a.asm 18-3-4 os_cpu_a.inc 18-4 Board Support Package (BSP) 18-4-1 bsp.c and bsp.h 18-4-2 bsp_int.c and bsp_int.h 18-5 Testing a Port 18-5-1 Creating a Simple Test Project 18-5-2 Verifying Task Context Switches 18-5-3 Verifying Interrupt Context Switches 18-6 Summary Run-Time Statistics 19-1 General Statistics – Run-Time 19-2 Per-Task Statistics – Run-Time 19-3 Kernel Object – Run-Time 19-4 os_dbg.c – Static 19-5 os_cfg_app.c – Static 19-6 Summary µC/OS-III API Reference A-1 Task Management A-2 Time Management A-3 Mutual Exclusion Semaphores – Resource Management A-4 Event Flags – Synchronization A-5 Semaphores – Synchronization A-6 Task Semaphores – Synchronization A-7 Message Queues – Message Passing A-8 Task Message Queues – Message Passing A-9 Pending on Multiple Objects A-10 Timers A-11 Fixed-Size Memory Partitions – Memory Management A-12 OSCtxSw() A-13 OSFlagCreate() A-14 OSFlagDel() A-15 OSFlagPend() A-16 OSFlagPendAbort() A-17 OSFlagPendGetFlagsRdy() A-18 OSFlagPost() A-19 OSIdleTaskHook() A-20 OSInit() A-21 OSInitHook() A-22 OSIntCtxSw() A-23 OSIntEnter() A-24 OSIntExit() A-25 OSMemCreate() A-26 OSMemGet() A-27 OSMemPut() A-28 OSMutexCreate() A-29 OSMutexDel() A-30 OSMutexPend() A-31 OSMutexPendAbort() A-32 OSMutexPost() A-33 OSPendMulti() A-34 OSQCreate() A-35 OSQDel() A-36 OSQFlush() A-37 OSQPend() A-38 OSQPendAbort() A-39 OSQPost() A-40 OSSafetyCriticalStart() A-41 OSSched() A-42 OSSchedLock() A-43 OSSchedRoundRobinCfg() A-44 OSSchedRoundRobinYield() A-45 OSSchedUnlock() A-46 OSSemCreate() A-47 OSSemDel() A-48 OSSemPend() A-49 OSSemPendAbort() A-50 OSSemPost() A-51 OSSemSet() A-52 OSStart() A-53 OSStartHighRdy() A-54 OSStatReset() A-55 OSStatTaskCPUUsageInit() A-56 OSStatTaskHook() A-57 OSTaskChangePrio() A-58 OSTaskCreate() A-59 OSTaskCreateHook() A-60 OSTaskDel() A-61 OSTaskDelHook() A-62 OSTaskQFlush() A-63 OSTaskQPend() A-64 OSTaskQPendAbort() A-65 OSTaskQPost() A-66 OSTaskRegGet() A-67 OSTaskRegSet() A-68 OSTaskReturnHook() A-69 OSTaskResume() A-70 OSTaskSemPend() A-71 OSTaskSemPendAbort() A-72 OSTaskSemPost() A-73 OSTaskSemSet() A-74 OSStatTaskHook() A-75 OSTaskStkChk() A-76 OSTaskStkInit() A-77 OSTaskSuspend() A-78 OSTaskSwHook() A-79 OSTaskTimeQuantaSet() A-80 OSTickISR() A-81 OSTimeDly() A-82 OSTimeDlyHMSM() A-83 OSTimeDlyResume() A-84 OSTimeGet() A-85 OSTimeSet() A-86 OSTimeTick() A-87 OSTimeTickHook() A-88 OSTmrCreate() A-89 OSTmrDel() A-90 OSTmrRemainGet() A-91 OSTmrStart() A-92 OSTmrStateGet() A-93 OSTmrStop() A-94 OSVersion() µC/OS-III Configuration Manual B-1 µC/OS-III Features (os_cfg.h) B-2 Data Types (os_type.h) B-3 µC/OS-III Stacks, Pools and other (os_cfg_app.h) Migrating from µC/OS-II to µC/OS-III C-1 Differences in Source File Names and Contents C-2 Convention Changes C-3 Variable Name Changes C-4 API Changes C-4-1 Event Flags C-4-2 Message Mailboxes C-4-3 Memory Management C-4-4 Mutual Exclusion Semaphores C-4-5 Message Queues C-4-6 Semaphores C-4-7 Task Management C-4-8 Time Management C-4-9 Timer Management C-4-10 Miscellaneous C-4-11 Hooks and Port MISRA-C:2004 and µC/OS-III D-1 MISRA-C:2004, Rule 8.5 (Required) D-2 MISRA-C:2004, Rule 8.12 (Required) D-3 MISRA-C:2004, Rule 14.7 (Required) D-4 MISRA-C:2004, Rule 15.2 (Required) D-5 MISRA-C:2004, Rule 17.4 (Required) Bibliography Licensing Policy Part II Introduction 1-1 The MicriUm µC/Eval-STM32F107 1-2 Part II Chapter Contents 1-3 Acknowledgements The ARM Cortex-M3 and the STM32 2-1 The Cortex CPU 2-1-1 The Program Status Register 2-1-2 Stacking and Interrupts 2-2 Nested Vector Interrupt Controller (NVIC) 2-3 Exception Vector Table 2-4 SYSTICK (System Tick) 2-5 Memory Map 2-6 Instruction Set 2-7 Debugging Features 2-8 The STmicroelectronics STM32 Setup 3-1 Downloading µC/OS-III projects for this book 3-1-1 \EvalBoards 3-1-2 \uC-CPU 3-1-3 \uC-LIB 3-1-4 \uCOS-III 3-2 Downloading µC/Probe 3-3 Downloading the IAR Embedded Workbench for ARM 3-4 Downloading the STM32F107 documentation µC/OS-III Example #1 4-1 Running the Project 4-2 How the example project works 4-3 Monitoring variables using µC/Probe 4-4 Summary µC/OS-III Example #2 5-1 Running the Project 5-2 Monitoring the temperature sensor using µC/Probe µC/OS-III Example #3 6-1 Running the Project 6-2 Examining Performance Test Results with µC/Probe 6-3 How the test code works 6-4 Other performance measurements 6-5 Summary µC/OS-III Example #4 7-1 Running the Project 7-2 Displaying Rotating Wheel Data 7-3 RPM Measurement simulation implementation 7-3-1 Measuring RPM using an Input Capture 7-4 How the code works 7-5 Observations 7-6 Summary µC/OS-III port for the Cortex-M3 A-1 os_cpu.h A-2 os_cpu_c.c A-2-1 os_cpu_c.c – OSIdleTaskHook() A-2-2 os_cpu_c.c – OSInitHook() A-2-3 os_cpu_c.c – OSStatTaskHook() A-2-4 os_cpu_c.c – OSTaskCreateHook() A-2-5 os_cpu_c.c – OSTaskDelHook() A-2-6 os_cpu_c.c – OSTaskReturnHook() A-2-7 os_cpu_c.c – OSTaskStkInit() A-2-8 os_cpu_c.c – OSTaskSwHook() A-2-9 os_cpu_c.c – OSTimeTickHook() A-2-10 os_cpu_c.c – OS_CPU_SysTickHandler() A-2-11 os_cpu_c.c – OS_CPU_SysTickInit() A-3 os_cpu_a.asm A-3-1 os_cpu_a.asm – OSStartHighRdy() A-3-2 os_cpu_a.asm – OSCtxSw() and OSIntCtxSw() A-3-3 os_cpu_a.asm – OS_CPU_PendSVHandler() µC/CPU port for the Cortex-M3 B-1 cpu_core.c B-2 cpu_core.h B-3 cpu_def.h B-4 cpu_cfg.h B-5 µC/CPU Functions in bsp.c B-5-1 µC/CPU Functions in bsp.c, CPU_TS_TmrInit() B-5-2 µC/CPU Functions in bsp.c, CPU_TS_TmrRd() B-6 cpu.h B-6-1 cpu.h – #defines B-6-2 cpu.h – Data Types B-6-3 cpu.h – Function Prototypes B-7 cpu_a.asm IAR Systems IAR Embedded Workbench for ARM C-1 IAR Embedded Workbench for ARM – Highlights C-2 Modular and extensible IDE C-3 Highly optimizing C/C++ Compiler C-4 Device Support C-5 State-of-the-art C-SPY® Debugger C-6 C-SPY Debugger and target system support C-7 IAR Assembler C-8 IAR J-LINK Linker C-9 IAR Library and library tools C-10 Comprehensive documentation C-11 First class technical support Micriµm’s µC/Probe D-1 µC/Probe is a Windows™-based application D-2 Assigning a variable to an object µC/Eval-STM32F107 User’s Guide E-1 Features E-2 Hardware layout and configuration E-3 Power Supply E-4 Boot Options E-5 Reset Sources E-6 CAN (Controller Area Network) E-7 RS-232C E-8 SD/MMC card E-9 USB-OTG (USB On-The-Go) E-10 LM75 Temperature Sensor E-11 Debug Interface E-12 Ethernet E-13 Clock SourceS E-14 Connectors E-14-1 Extension connector (CN3) E-14-2 Power connectors (CN1 & CN9) E-14-3 RS-232C connectors (CN7) E-15 I/O Assignments E-16 Schematics Bibliography Licensing Policy Index