LINUX.ORG.RU

История изменений

Исправление 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, ибо ядро таки вытесняемое.