~~NOTOC~~ ====== OSA : Статистика используемой ядром памяти ====== Данная статистика приведена для оценки используемых под OSA ресурсов, чтобы пользователь мог наиболее оптимально выбрать контроллер под свою задачу. ^ Компилятор ^ min, ROM/RAM ^ normal, ROM/RAM ^ full, ROM/RAM ^ Байт на задачу*, RAM ^ | \\ **PIC10 (PIC12)** ||||| | Hi-tech PICC | 153 / 11 | 250 / 14 | 363 / 14 | 2 | | \\ **PIC16 (PIC12)** ||||| | HT-PICC STD | 152 / 8 | 258 / 11 | 396 / 13 | 3 | | microC PRO | 180 / 14 | 307 / 17 | 474 / 17 | 3 | | CCS PICC | 254 / .. | 399 / .. | 573 / .. | 3 | | \\ **PIC18** ||||| | HT-PICC18 STD | 336 / 7 | 548 / 10 | 982 / 16 | 3 | | MPLAB C18 | 598 / 7 | 862 / 10 | 1214 / 16 | 4 | | microC PRO | 426 / 11 | 746 / 16 | 1136 / 17 | 3 | | CCS PICC | 436 / .. | 696 / .. | 1046 / .. | 3 | | \\ **PIC24 (dsPIC)** ||||| | MPLAB C30 | 846 / 10 | 1065 / 16 | 1305 / 16 | 20 | | \\ **AVR** ||||| | WinAVR | 602 / 8 | 1030 / 13 | 1348 / 15 | 10 | | IAR | 550 / 8 | 958 / 13 | 1108 / 15 | 5 | | \\ **STM8** ||||| | Cosmic | 462 / 8 | 729 / 13 | 974 / 15 | 5 | | IAR | 664 / 8 | 1053 / 13 | 1388 / 15 | 13 | | Raisonance | 434 / 8 | 709 / 13 | 918 / 15 | 5 | * см. примечания ниже **Расшифровка режимов тестирования:** - **min** (минимальный нобор сервисов) * приоритеты отключены * доступны бинарные семафоры, сообщения, флаги - **normal** (наиболее часто используемый набор сервисов) * приоритеты включены * таймер задач * доступны бинарные семафоры, сообщения, флаги * доступны ожидания событий с выходом по таймауту - **full** (полный набор сервисов, за исключением пользовательских таймеров) * приоритеты включены * таймеры задач * доступны бинарные и счетные семафоры, сообщения, флаги, очереди сообщений * доступны ожидания событий с выходом по таймауту * доступны критические секции (Во всех трех режимах доступны сервисы переключения контекста, ожидания событий, управения задачами, установки/запрета прерываний) **Примечания**: - параметр ROM: * для PIC10, PIC12 и PIC16 память ROM отображается в словах, для всех остальных - в байтах; * для MCC18 параметр ROM включает в себя сектор инициализации; * для MCC30 параметр ROM включает в себя сектор инициализации; - все программы собирались с максимально доступной оптимизацией; - дополнительно в RAM выделяется память под ##[[osa:ref:appendix:configuration|OS_TASKS]]## дескрипторов задач - в таблице приведен базовый размер дескриптора задач. Он может увеличиться: * при наличии таймера задач (##[[osa:ref:appendix:configuration|OS_ENABLE_TTIMERS]]##) - на количество байт, занимаемых таймером (по умолчанию 2); * для контроллеров с ROM >64K - на 2 байта (для хранения старший байтов адреса) * при использовании режима ##[[osa:ref:appendix:configuration|OS_PRIORITY_EXTENDED]]## - на 2 байта - Варьируя параметры системной конфигурации (##[[osa:ref:appendix:configuration|osacfg.h]]##), можно выбрать наиболее оптимальный режим. Например, изменив размерность таймера, можно сократить используемую RAM и ROM. Можно в полном режиме отключить приоритеты, получив выигрыш в ROM и скорости. И т.д.