Real-time programming applied to the FreeRTOS operating system
2014-07-11 04:49
507 查看
http://www.ac6-training.com/cours.php/cat_FSCA/ref_RT3/
First Day RTOS Introduction Cortex-M resources used by RTOS Cortex-M Architecture Overview Two stacks pointers Different Running-modes and Privileged Levels MPU Overview Systick Timer Description Exception / Interrupt Mechanism Overview Interrut entry and return Overview SVC / PendSV / Systick Interrupt Presentation Developing with the IDE
Base real time concepts The Real Time constraints Multi-task and real time Thread safe data structures Need for specific data structures Thread safe data structures Linked lists Circular lists FIFOs Stacks Data structures integrity proofs Assertions Pre and post-conditions
Element of a real time system Tasks and Task Descriptors Content of the task descriptor List of task descriptors Context Switch Task Scheduling and Preemption Tick based or tickless scheduling Scheduling systems and schedulability proof Fixed priorities scheduling RMA and EDF scheduling Scheduling through FReeRTOS Deterministic preemptive scheduling Scheduling strategies Cooperative scheduling Hybrid scheduling
The Task life-cycle Creating tasks Deleting tasks The Endless-loop pattern Task Priorities Assigning task priorities Changing task priorities The idle task Idle task hooks Timing
Memory management algorithms Buddy System Best fit / First Fit Pools Management FreeRTOS-provided memory allocation schemes Allocate-only scheme Best-fit without coalescing Thread-safe default malloc Checking remaining free memory Adding an application-specific memory allocator Memory management errors Stack monitoring
Synchronization Primitives Introduction Waiting and waking up tasks Semaphores Events Mailboxes | Binary Semaphores through FreeRTOS Give a Binary Semaphore Take a binary Semaphore Queue Management through FreeRTOS Creation Sending on a queue Receiving from a queue Data management Sending compound types Transfering large data
Mutual Exclusion Spinlocks and interrupt masking Mutex or Semaphore Recursive or not recursive mutexes Priority inversion problem Priority inheritance (the automatic answer) Priority ceiling (the design centric answer) Mutual exclusion through FreeRTOS Mutexes and binary semaphores Deadlocks Priority inversion Priority inheritance Critical sections Critical sections Suspending (locking) the scheduler Gatekeeper tasks
Parallelism Problems Solution Parallel programming problems Uncontrolled parallel access Deadlocks Livelocks Starvation
Need for interrupts in a real time system Software Interrupt Time Interrupts Device Interrupts Level or Edge interrupts Hardware and Software acknowledge Interrupt vectoring Interrupts and scheduling Deferred interrupt processing through FreeRTOS Tasks with interrupt synchronization Using semaphores within an ISR Counting semaphores Using queues within an ISR FreeRTOS interrupt processing Writing ISRs in C Interrupt safe functions Interrupt nesting
The Timer Daemon Task Timer Configuration One-shot / Auto-reload Timer Software Timer API
Checking for stack problems Common pitfalls FreeRTOS-MPU The Cortex/M MPU User and privileged modes Access permissions Defining MPU regions Overlapping regions Predefined regions Programmer-defined regions Needed linker configuration Practical usage tips
|
相关文章推荐
- Segger SystemView: Realtime Analysis and Visualization for FreeRTOS
- Unable to open the physical file "d:\***.mdf". Operating system error 5: "5(Access is denied.)".
- PHP Warning: strtotime() [function.strtotime]: It is not safe to rely on the system’s timezone settings. 解决方法:
- php5.3的It is not safe to rely on the system’s timezone settings的问题的解决方案
- PHP Warning: strftime(): It is not safe to rely on the system's timezone testlink
- [原] XAF How to see and edit the time part in the DatePropertyEditor for the System.DateTime property
- The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics
- date(): It is not safe to rely on the system’s timezone settings
- Warning: date(): It is not safe to rely on the system's timezone settings
- PHP Warning: date(): It is not safe to rely on the system’s timezone settings
- kubuntu之another application seems to be using the package system at this time问题即muon无法安装更新的问题
- Linux System Programming: Talking Directly to the Kernel and, C Library [ILLUSTRATED] (Paperback) Sep.2007.eBook-BBL
- PHP Warning: date() [function.date]: It is not safe to rely on the system's timezone settings.
- The installer is unable to run in graphical mode: required operating system packages for Linux
- PHP Warning: date(): It is not safe to rely on the system’s timezone settings
- Linux System Programming: Talking Directly to the Kernel and C Library [ILLUSTRATED]
- PHP Warning: date() [function.date]: It is not safe to rely on the system's timezone
- Nano-RK:A Wireless Sensor Networking Real-Time Operating System
- PHP 日期问题 PHP Warning: date(): It is not safe to rely on the system’s timezone settings
- 解决php的It is not safe to rely on the system’s timezone settings的问题