История изменений
Исправление shkolnick-kun, (текущая версия) :
Ась?
Что тут происходит?
Кто все эти люди?
Не, на BuguRTOS они не перейдут, ибо экономика qwerty уже сработала.
И вообще, BuguRTOS начали использовать импортозаместители с военных заводов (видимо бугурта от Миландровского Cortex-M1 им было недостаточно, ЛОЛ), так что теперь это официально ватный проект.
В результате, мне пришлось таки заняться оптимизацией производительности:
- поменял процидурку поиска в битовых картах;
- добавил асинхронную неблокирующую синхронизацию (все равно пришлось бы добавить при реализации CMSIS/RTOS);
- заинлайнил частоиспользуемый код;
- на ARM сделал полностью вытесняемые обработчики прерываний;
- где есть возможность - ипользовал атомарные операции.
В итоге, время работы sem_free сократилось раза в 2, до FreeRTOS, естествено, не дотягивает в разы, ибо вытесняемое ядро в отдельном потоке, но при этом Interrupt latency не выше 5us (Cortex-m0@32MHz), в отличии от где-то 18-20us у Free, ибо ядро таки вытесняемое.
З.Ы. А почему спойлер не работает? Сломали что-ли чего?
Исправление shkolnick-kun, :
Ась?
Что тут происходит?
Кто все эти люди?
Не, на BuguRTOS они не перейдут, ибо экономика qwerty уже сработала.
И вообще, BuguRTOS начали использовать импортозаместители с военных заводов (видимо бугурта от Миландровского Cortex-M1 им было недостаточно, ЛОЛ), так что теперь это официально ватный проект.
В результате, мне пришлось таки заняться оптимизацией производительности:
- поменял процидурку поиска в битовых картах;
- добавил асинхронную неблокирующую синхронизацию (все равно пришлось бы добавить при реализации CMSIS/RTOS);
- заинлайнил частоиспользуемый код;
- на ARM сделал полностью вытесняемые обработчики прерываний;
- где есть возможность - ипользовал атомарные операции.
В итоге, время работы sem_free сократилось раза в 2, до FreeRTOS, естествено, не дотягивает в разы, ибо вытесняемое ядро в отдельном потоке, но при этом Interrupt latency не выше 5us (Cortex-m0@32MHz), в отличии от где-то 18-20us у Free, ибо ядро таки вытесняемое.
З.Ы. А почему спойлер не работает? Сломали что-ли чего?
Исходная версия shkolnick-kun, :
Ась?
Что тут происходит?
Кто все эти люди?
Не, на BuguRTOS они не перейдут, ибо экономика qwerty уже сработала.
И вообще, BuguRTOS начали использовать импортозаместители с военных заводов (видимо бугурта от Миландровского Cortex-M1 им было недостаточно, ЛОЛ), так что теперь это официально ватный проект.
В результате, мне пришлось таки заняться оптимизацией производительности:
- поменял процидурку поиска в битовых картах;
- добавил асинхронную неблокирующую синхронизацию (все равно пришлось бы добавить при реализации CMSIS/RTOS);
- заинлайнил частоиспользуемый код;
- на ARM сделал полностью вытесняемые обработчики прерываний;
- где есть возможность - ипользовал атомарные операции.
В итоге, время работы sem_free сократилось раза в 2, до FreeRTOS, естествено, не дотягивает в разы, ибо вытесняемое ядро в отдельном потоке, но при этом Interrupt latency не выше 5us (Cortex-m0@32MHz), в отличии от где-то 18-20us у Free, ибо ядро таки вытесняемое.