И вообще, надо на Си переходить.
Ну, скорее не
переходить, а
добавлять его к арсеналу средств.
Вообще, честно говоря, на ассемблере я пишу крайне редко (а для x86 вообще никогда на нем не писал). Аккуратный код на Си при оптимизации, выставленной в -Os или -O3, обычно не уступает в скорости и компактности ассемблерному коду. Исключение - случаи, когда и правда надо считать машинные циклы. Так, я писал целиком на ассемблере модули (которые потом подключались к программе на Си) обмена по 1-Wire для AVR и, позже, для MSP430. А так вроде и все за последние годы... Ну если только не считать ситуаций, в которых требуется вставить одну-две инструкции, которые больше никак не вызвать - типа SLEEP в AVR (для работы с режимами сна в составе avr-libc, вообще, есть библиотека, но без нее код получается не слишком сложнее, зато компактнее). Там спасает одна строчка инлайнового ассемблера.
но в поиске компромисса между качеством кода и скоростью его выполнения приоритет в данной задаче скорее а скорости
Конечно, до классов с объектами, шаблонов и наследования доходить тут не надо, но в нашей задаче и без этого можно сделать вполне гибкий интерфейс с быстрой обработкой.
#pragma offtopic
читаю ваш журнал
Блог, штоле?
Нравится стиль изложения, доходчивость, оригинальность.
Спасибо, я рад, что старался не зря.
Не планируете ли для начинающих уроки по СТМ32?
Скорее всего нет. Тому есть несколько причин.
Первая и, наверное, основная - у меня сейчас очень мало времени, практически только на поспать. Как-то так внезапно оказалось, что нынче разработчики нужны буквально всем (кроме девушек).

В данный момент я веду четыре проекта и еще от двух отказался, потому что это просто выше моих сил. Я ощущаю, что и четыре для меня многовато, в будущем больше не буду брать столько. А еще я преподаю на вечерке, от дневных отказался, потому что, опять же, просто не осилить.
Ну и про STM32 нынче не пишет только ленивый. Уроков, туториалов, инструментов и примеров кода просто навалом. Я не вполне уверен, стоит ли мне лезть в эту толпу...
Вообще, философски, я не вижу смысла в уроках по конкретной архитектуре - это путь Ардуино, и это путь неверный. Человек должен
а) понимать, как вообще устроены контроллеры;
б) иметь навыки декомпозиции задачи и алгоритмизации (навыки программирования);
в) знать схемотехнику.
Если выполняются эти три условия, то человек может взять документацию, прочесть ее, и через неделю он уже будет доделывать устройство на новом МК и/или дописывать программу на другом языке (в рамках той же парадигмы). Да, разумеется, человек должен знать английский. Без этого выше дилетанта в наши дни в электронике не подняться, так что это условие само собой разумеющееся. Я его даже не включаю в перечисление.
Чтобы понимать, как устроены контроллеры, достаточно рассмотреть какую-нибудь простую архитектуру, где обилие наворотов не слишком отвлекает от основной структуры. AVR - хорошая модельная архитектура. MSP430 - тоже. Сразу бросаться на STM32 новичкам я никогда не посоветую.
Приобрести навыки программирования можно экспериментируя на "большом" компьютере.
Ну а со схемотехникой понятно. Минимум для старта - любой учебник по ТОЭ, Хоровиц и Хилл, Linear Circuit Design Handbook.
Так я считаю сам, и так я учу своих студентов.
Так что те же AVR хороши постольку, поскольку это удобная модельная архитектура. Переход с AVR на STM32 заключается по большей части в чтении документации.