IAR PowerPac RTOS User Guide
IAR PowerPac RTOS User Guide IAR PowerPac RTOS User Guide
126IAR PowerPac RTOSfor ARM CoresPPRTOS-2
Performance and resource usageThis chapter covers the performance and resource usage of embOS. It explains how to benchmark IAR PowerPacRTOS and information about the memory requirements in typical systems which can be used to obtain sufficientestimates for most target systems.IntroductionHigh performance combined with low resource usage has always been a major design consideration. IAR PowerPacRTOS runs on 8/16/32-bit CPUs. Depending on which features are being used, even single-chip systems with less than2 Kbytes ROM and 1 Kbyte RAM can be supported by IAR PowerPac RTOS. The actual performance and resourceusage depends on many factors (CPU, compiler, memory model, optimization, configuration, etc.).Memory requirementsThe memory requirements of IAR PowerPac RTOS (RAM and ROM) differ depending on the used features of thelibrary. The following table shows the memory requirements for the different modules.Module Memory type Memory requirementsIAR PowerPac RTOS kernel ROM 1100 - 1600 bytes *IAR PowerPac RTOS kernel RAM 18 - 25 bytes *Mailbox RAM 9 - 15 bytes *Binary and counting semaphores RAM 3 bytesRecource semaphore RAM 4 - 5 bytes *Timer RAM 9 - 11 bytes *Event RAM 0 bytesTable 129: IAR PowerPac RTOS memory requirements* Depends on CPU, compiler, and library model usedBenchmarkingIAR PowerPac RTOS is designed to perform fast context switches. This section describes two different methods tocalculate the execution time of a context switch from a task with lower priority to a task with a higher priority.The first method uses port pins and requires an oscilloscope. The second method uses the high-resolution measurementfunctions. Example programs for both methods are supplied in the \Example directory of your IAR PowerPac RTOSshipment.Segger uses these programs to benchmark the IAR PowerPac RTOS performance. You can use these examples toevaluate the benchmark results. Note, that the actual performance depends on many factors (CPU, clock speed,toolchain, memory model, optimization, configuration, etc.).PPRTOS-2 127
- Page 75 and 76: QueuesExamplestatic void MemoryTask
- Page 77 and 78: Task eventsIntroductionTask events
- Page 79 and 80: Task eventsExampleOS_WaitEventTimed
- Page 81 and 82: Task eventsPrototypechar OS_ClearEv
- Page 83 and 84: Event objectsIntroductionEvent obje
- Page 85 and 86: Event objectsExampleif (OS_EVENT_Wa
- Page 87 and 88: Event objectsExampleOS_EVENT_Reset(
- Page 89 and 90: Heap type memory managementANSI C o
- Page 91 and 92: Fixed block size memory poolsIntrod
- Page 93 and 94: Fixed block size memory poolsProtot
- Page 95 and 96: Fixed block size memory poolsProtot
- Page 97 and 98: StacksIntroductionThe stack is the
- Page 99 and 100: InterruptsIntroductionIn this chapt
- Page 101 and 102: InterruptsRules for interrupt handl
- Page 103 and 104: InterruptsOS_LeaveInterruptNoSwitch
- Page 105 and 106: InterruptsNesting interrupt routine
- Page 107 and 108: Critical RegionsIntroductionCritica
- Page 109 and 110: System variablesIntroductionThe sys
- Page 111 and 112: Configuration for your targetsystem
- Page 113 and 114: Time measurementIntroductionIAR Pow
- Page 115 and 116: Time measurementPrototypeU32 OS_Get
- Page 117 and 118: Time measurementPrototypeOS_U32 OS_
- Page 119 and 120: RTOS-aware debuggingThis chapter de
- Page 121 and 122: RTOS-aware debuggingTimersA softwar
- Page 123 and 124: DebuggingRuntime errorsSome error c
- Page 125: DebuggingValue Define Description17
- Page 129 and 130: Performance and resource usageThe c
- Page 131 and 132: Performance and resource usage*/sta
- Page 133 and 134: ReentranceAll routines that can be
- Page 135 and 136: LimitationsThe following limitation
- Page 137 and 138: Source code of kernel and libraryIn
- Page 139 and 140: Additional modulesKeyboard manager:
- Page 141 and 142: FAQ (frequently asked questions)Q:
- Page 143 and 144: GlossaryActive TaskCooperativemulti
- Page 145 and 146: IndexIndexAAdditional modules . . .
- Page 147: IndexOS_WaitSingleEventTimed(). . .
126<strong>IAR</strong> <strong>PowerPac</strong> <strong>RTOS</strong>for ARM CoresPP<strong>RTOS</strong>-2