LINUX.ORG.RU

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

Исправление qbe, (текущая версия) :

Я в своё время писал небольшую rtos, чтобы разобраться с потрохами армовского ядра, ещё на arm7tdmi, но потом, глянув на переключение контекста, понял, что изобрёл FreeRTOS :)

Реализации по быстродействию получились почти равными, но FreeRTOS оказалась богаче на фичи, поэтому свой велосипед я забросил.

О потраченном времени не жалею, т.к. в результате достаточно хорошо изучил внутренности FreeRTOS.

p.s. «ассемблер» выше при том, что ты, вместо использования библиотечных функций, постоянно строишь велосипед, пытаясь быть умнее компилятора (по твоим же словам, грепаешь код в поисках обращения к регистру, и проверяешь, было или не было уже к нему обращение).

Лучше потратить своё время на действительно критичное место в программе, вместо оптимизации того, что будет выполняться всего один раз при запуске программы. Жизнь - она короткая, и надо правильно расставлять приоритеты.

p.p.s. заворачивание в функцию даже, казалось бы, примитивной записи в порт, может впоследствии очень упростить жизнь. К примеру, при переезде на совершенно другой контроллер. Я однажды подобное проходил - перенёс проект приличного размера (бинарник около 100К) с LPC1768 на STM32F407 за пару дней. В проекте были и USB, и несколько DMA, и реалтайм-DSP. (Без SPL, обкладываемой тобой г-ном и фаллоимитаторами, я бы застрял тогда на пару недель).

Исходная версия qbe, :

Я в своё время писал небольшую rtos, чтобы разобраться с потрохами армовского ядра, ещё на arm7tdmi, но потом, глянув на переключение контекста, понял, что изобрёл FreeRTOS :)

Реализации по быстродействию получились почти равными, но FreeRTOS оказалась богаче на фичи, поэтому свой велосипед я забросил.

О потраченном времени не жалею, т.к. в результате достаточно хорошо изучил внутренности FreeRTOS.

p.s. «ассемблер» выше при том, что ты, вместо использования библиотечных функций, постоянно строишь велосипед, пытаясь быть умнее компилятора (по твоим же словам, грепаешь код в поисках обращения к регистру, и проверяешь, было или не было уже к нему обращение).

Лучше потратить своё время на действительно критичное место в программе, вместо оптимизации того, что будет выполняться всего один раз при запуске программы. Жизнь - она короткая, и надо правильно расставлять приоритеты.