pico]OS Memory Usage
This page contains some hints on the memory usage of pico]OS on
some platforms, with three different configurations: small - medium - large.
A detailed description of this three
configurations is listed below the tables at the bottom of this page.
This processors/ports are listed below:
6502 -
AVR -
PPC440 -
x86w32
Memory Usage On 8 Bit Processors
Note:
The sum of data memory includes the task stack memory.
6502 port, small configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 3035 Bytes | 1069 Bytes | 4104 Bytes |
Data | 248 Bytes | 1157 Bytes | 1405 Bytes |
Overall Sum | 3283 Bytes | 2226 Bytes | 5509 Bytes |
6502 port, medium configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 4804 Bytes | 1346 Bytes | 6150 Bytes |
Data | 581 Bytes | 1864 Bytes | 2445 Bytes |
Overall Sum | 5385 Bytes | 3210 Bytes | 8595 Bytes |
6502 port, large configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 5949 Bytes | 1372 Bytes | 7321 Bytes |
Data | 925 Bytes | 2506 Bytes | 3431 Bytes |
Overall Sum | 6874 Bytes | 3878 Bytes | 10752 Bytes |
AVR port, small configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 2142 Bytes | 548 Bytes | 2690 Bytes |
Data | 644 Bytes | 80 Bytes | 724 Bytes |
Overall Sum | 2786 Bytes | 628 Bytes | 3414 Bytes |
AVR port, medium configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 3538 Bytes | 548 Bytes | 4086 Bytes |
Data | 1175 Bytes | 80 Bytes | 1255 Bytes |
Overall Sum | 4713 Bytes | 628 Bytes | 5341 Bytes |
AVR port, large configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 4320 Bytes | 548 Bytes | 4868 Bytes |
Data | 1717 Bytes | 80 Bytes | 1797 Bytes |
Overall Sum | 6037 Bytes | 628 Bytes | 6665 Bytes |
Memory Usage On 32 Bit Processors
Note:
The sum of data memory does not include the task stack memory.
PPC440 port, small configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 4608 Bytes | 2288 Bytes | 6896 Bytes |
Data | 3192 Bytes | 0 Bytes | 3192 Bytes |
Overall Sum | 7800 Bytes | 2288 Bytes | 10088 Bytes |
PPC440 port, medium configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 10108 Bytes | 2288 Bytes | 12396 Bytes |
Data | 22600 Bytes | 0 Bytes | 22600 Bytes |
Overall Sum | 32708 Bytes | 2288 Bytes | 34996 Bytes |
PPC440 port, large configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 15844 Bytes | 2288 Bytes | 18132 Bytes |
Data | 198752 Bytes | 0 Bytes | 198752 Bytes |
Overall Sum | 214596 Bytes | 2288 Bytes | 216884 Bytes |
x86w32 port, small configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 4400 Bytes | 7712 Bytes | 12112 Bytes |
Data | 3456 Bytes | 208 Bytes | 3664 Bytes |
Overall Sum | 7856 Bytes | 7920 Bytes | 15776 Bytes |
x86w32 port, medium configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 11056 Bytes | 7712 Bytes | 18768 Bytes |
Data | 22240 Bytes | 208 Bytes | 22448 Bytes |
Overall Sum | 33296 Bytes | 7920 Bytes | 41216 Bytes |
x86w32 port, large configuration
| pico]OS RTOS | Architecture Port | Sum |
Code | 16112 Bytes | 7712 Bytes | 23824 Bytes |
Data | 186992 Bytes | 208 Bytes | 187200 Bytes |
Overall Sum | 203104 Bytes | 7920 Bytes | 211024 Bytes |
The Different pico]OS Configurations
Small configuration for 8 Bit processors (get
poscfg.h):
- Tasks : 3 + idle task
- Events : 4
- Timers : 2
- Supported Functions:
- posSemaCreate / posSemaGet / posSemaSignal
- posTaskCreate / posTaskSleep
- posTimerCreate / posTimerSet / posTimerStart / posTimerStop
Medium configuration for 8 Bit processors (get
poscfg.h):
- Tasks : 5 + idle task
- Events : 10
- Timers : 2
- Messages: 4
- Supported Functions:
- posAtomicAdd / posAtomicGet / posAtomicSet / posAtomicSub
- posMessageAlloc / posMessageAvailable / posMessageFree /
posMessageGet / posMessageSend / posMessageWait
- posMutexCreate / posMutexLock / posMutexUnlock
- posSemaCreate / posSemaGet / posSemaSignal / posSemaWait
- posTaskCreate / posTaskGetCurrent / posTaskSleep
- posTimerCreate / posTimerSet / posTimerStart / posTimerStop
Large configuration for 8 Bit processors (get
poscfg.h):
- Tasks : 7 + idle task
- Events : 14
- Timers : 4
- Messages: 8
- Supported Functions:
- posAtomicAdd / posAtomicGet / posAtomicSet / posAtomicSub
- posListAdd / posListGet / posListInit / posListRemove / posListTerm
- posMessageAlloc / posMessageAvailable / posMessageFree /
posMessageGet / posMessageSend / posMessageWait
- posMutexCreate / posMutexDestroy / posMutexLock / posMutexUnlock
- posSemaCreate / posSemaDestroy / posSemaGet / posSemaSignal / posSemaWait
- posTaskCreate / posTaskExit / posTaskGetCurrent / posTaskSleep
- posTimerCreate / posTimerDestroy / posTimerSet / posTimerStart / posTimerStop
Small configuration for 32 Bit processors (get
poscfg.h):
- Tasks : 15 + idle task
- Events : 32
- Timers : 4
- Supported Functions:
- posSemaCreate / posSemaDestroy / posSemaGet / posSemaSignal / posSemaWait
- posTaskCreate / posTaskExit / posTaskSleep
- posTimerCreate / posTimerDestroy / posTimerSet / posTimerStart / posTimerStop
Medium configuration for 32 Bit processors (get
poscfg.h):
- Tasks : 63 + idle task
- Events : 128
- Timers : 16
- Messages: 32
- Supported Functions:
- posAtomicAdd / posAtomicGet / posAtomicSet / posAtomicSub
- posListAdd / posListGet / posListInit / posListJoin /
posListLen / posListRemove / posListTerm
- posMessageAlloc / posMessageAvailable / posMessageFree /
posMessageGet / posMessageSend / posMessageWait
- posMutexCreate / posMutexDestroy / posMutexLock /
posMutexTryLock / posMutexUnlock
- posSemaCreate / posSemaDestroy / posSemaGet / posSemaSignal / posSemaWait
- posTaskCreate / posTaskExit / posTaskGetCurrent /
posTaskGetPriority / posTaskSetPriority / posTaskSleep / posTaskYield
- posTimerCreate / posTimerDestroy / posTimerFired / posTimerSet / posTimerStart / posTimerStop
Large configuration for 32 Bit processors (get
poscfg.h):
- Tasks : 255 + idle task
- Events : 1024
- Timers : 32
- Messages: 128
- Supported Functions:
- posAtomicAdd / posAtomicGet / posAtomicSet / posAtomicSub
- posFlagCreate / posFlagDestroy / posFlagGet / posFlagSet / posFlagWait
- posInstallIdleTaskHook
- posListAdd / posListGet / posListInit / posListJoin /
posListLen / posListRemove / posListTerm
- posMessageAlloc / posMessageAvailable / posMessageFree /
posMessageGet / posMessageSend / posMessageWait
- posMutexCreate / posMutexDestroy / posMutexLock /
posMutexTryLock / posMutexUnlock
- posSemaCreate / posSemaDestroy / posSemaGet / posSemaSignal / posSemaWait
- posSoftInt / posSoftIntDelHandler / posSoftIntSetHandler
- posTaskCreate / posTaskExit / posTaskGetCurrent / posTaskGetPriority /
posTaskSchedLock / posTaskSchedUnlock / posTaskSetPriority /
posTaskSleep / posTaskUnused / posTaskYield
- posTimerCreate / posTimerDestroy / posTimerFired / posTimerSet / posTimerStart / posTimerStop