IAR PowerPac RTOS User Guide
IAR PowerPac RTOS User Guide IAR PowerPac RTOS User Guide
90IAR PowerPac RTOSfor ARM CoresPPRTOS-2
Fixed block size memory poolsIntroductionFixed block size memory pools contain a specific number of fixed-size blocks of memory. The location in memory ofthe pool, the size of each block, and the number of blocks are set at runtime by the application via a call to theOS_MEMF_CREATE() function. The advantage of fixed memory pools is that a block of memory can be allocated fromwithin any task in a very short, determined period of time.Memory pools API reference overviewAll API functions for fixed block size memory pools are prefixed OS_MEMF_.API routineOS_MEMF_CreateOS_MEMF_DeleteOS_MEMF_AllocOS_MEMF_AllocTimedOS_MEMF_RequestOS_MEMF_ReleaseOS_MEMF_FreeBlockOS_MEMF_GetNumFreeBlocksOS_MEMF_IsInPoolOS_MEMF_GetMaxUsedOS_MEMF_GetNumBlocksOS_MEMF_GetBlockSizeTable 99: Memory pools API overviewDescriptionCreate / DeleteCreates fixed block memory pool.Deletes fixed block memory pool.AllocationAllocates memory block from a given memory pool. Wait indefinitely if no blockis available.Allocates memory block from a given memory pool. Wait no longer than giventimelimit if no block is available.Allocates block from a given memory pool, if available. Non-blocking.ReleaseReleases memory block from a given memory pool.Releases memory block from any pool.InfoReturns the number of available blocks in a pool.Returns !=0 if block is in memory pool.Returns the maximum number of blocks in a pool which have been used at a time.Returns the number of blocks in a pool.Returns the size of one block of a given pool.OS_MEMF_Create()DescriptionCreates and initializes a fixed block size memory pool.Prototypevoid OS_MEMF_Create (OS_MEMF* pMEMF,void* pPool,OS_U16 NumBlocks,OS_U16 BlockSize);ParameterDescriptionpMEMFPointer to the control data structure of memory pool.pPool Pointer to memory to be used for the memory pool. Required size is: NumBlocks *(BlockSize + OS_MEMF_SIZEOF_BLOCKCONTROL).Table 100: OS_MEMF_Create() parameter listPPRTOS-2 91
- Page 39 and 40: Software timers#define OS_CREATETIM
- Page 41 and 42: Software timersOS_SetTimerPeriod()D
- Page 43 and 44: Software timersAdditional Informati
- Page 45 and 46: Software timersAdditional Informati
- Page 47 and 48: Software timersExampleOS_TIMER TIME
- Page 49 and 50: Resource semaphoresIntroductionReso
- Page 51 and 52: Resource semaphoresResource semapho
- Page 53 and 54: Resource semaphoresOS_Request()Desc
- Page 55 and 56: Counting SemaphoresIntroductionCoun
- Page 57 and 58: Counting SemaphoresPrototypevoid OS
- Page 59 and 60: Counting SemaphoresReturn value0: I
- Page 61 and 62: MailboxesWhy mailboxes?In the prece
- Page 63 and 64: MailboxesMailboxes API function ove
- Page 65 and 66: MailboxesExampleSingle-byte mailbox
- Page 67 and 68: MailboxesPrototypevoid OS_GetMail (
- Page 69 and 70: MailboxesOS_WaitMail()DescriptionWa
- Page 71 and 72: QueuesWhy queues?In the preceding c
- Page 73 and 74: QueuesReturn valueThe size of the r
- 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: Heap type memory managementANSI C o
- 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 and 126: DebuggingValue Define Description17
- Page 127 and 128: Performance and resource usageThis
- 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:
90<strong>IAR</strong> <strong>PowerPac</strong> <strong>RTOS</strong>for ARM CoresPP<strong>RTOS</strong>-2