Keil, Milandr, FreeRTOS. Нет ничего проще.

Создаем и проект для Миландр и подключаем с помощью Manage Run-Time Environment операционную систему FreeRTOS

Cover Image

Вы также часто пользуетесь кейлом как и я? Программируете микроконтроллеры компании Миландр? Вы хотите легко и просто подключить и использовать в своём проекте FreeRTOS? Тогда эта маленькая заметка для вас.

План действий:

  • создаём проект;
  • выбираем используемые пакеты;
  • конфигурируем операционку;
  • запускаем и пользуемся.

Делаем простой и универсальный кольцевой буфер.

Делаем простой кольцевой буфер

Постоянно приходится передавать и принимать данные из/в UART, SPI, I2C и др. Всё просто и понятно когда посылки идут редко и есть время на их обработку, а что же делать если посылки могут идти пачками за один раз, а потом долгое время отсутствовать и мы при обработке первой не успеваем обрабатывать остальные и они теряются или портятся. Значит нужно использовать какой-то буфер, откуда потом понемногу брать и обрабатывать данные, а что делать если мы уже заполнили буфер и нам уже некуда писать? Писать дальше начиная с первого (на самом деле с нулевого) элемента буфера, дополнительно нужно учитывать место с которого можно читать данные и место с которого можно писать. Вот мы и получаем наш кольцевой буфер.

Плюс Keil'а в идущих "из коробки" пакетах, включающих поддержку микроконтроллеров, а так же библиотеки программирования.

В этой заметки поговорим о том, как упаковать библиотеку в пакет. Поясню для чего - после создания проекта можно просто включить в меню необходимые библиотеки, не копировать в папку проекта и не ссылаться на них.

Альтернативная реализация SQRT() для STM32 Cortex-M3

Альтернативная реализация функции вычисления квадратного корня числа.

Статья будет очень короткой, но надеюсь весьма полезной.

В одном из проектов необходимо было достаточно быстро вычислять некоторую формулу которая в себя включает вычисление целочисленного квадратного корня 32-х разрядного целого числа. Как показал опыт функция из стандартной библиотеки выполняет вычисления достаточно долго. В итоге пришли к выводу, что необходимо сделать всё самим.

Так и родился этот достаточно короткий и быстрый код: