Небольшая сводка о текущем состоянии проекта:
Свободного времени не много перед отпуском, однако процесс перехода на FreeRTOS идёт полным ходом. Я решил переходить на STM32Cube HAL постепенно. В новой ветке Caustic часть железа контролится через Cube, и часть через stdperiph. Поверх обоих всё так же C++-ный hal, правда несколько модифицированный для повышения удобства. Код, оборачивающий stdperiph, просто скопирован из старой ветки - он протестирован и надежен. К слову, использование обоих системных библиотек одновременно увеличивает расход flash-памяти всего на несколько килобайт. Учитывая, что прошивка даже в debug-сборке без оптимизации места занимает не больше 150кБ из 512к флэша контроллера, это немного.
На данный момент сделана примерно половина работы по переносу. Например, сетевая часть (стек беспроводной связи) и сопутствующая система хранения/изменения конфигов полностью работает.
Для удобства, я написал C++-ные обертки над основными функциями FreeRTOS. Удобно, например, когда в качестве тасков могут выступать функторы, а не C-шные коллбэки вида void (*) (void*). Соответственно, можно юзать bind-ы и даже замыкания. Ну и другие мелочи, вроде unique_lock-ов...
Есть ещё такой план: чтобы на выходе было меньше разных вариантов прошивки, для большинства девайсов (повязка, оружие, точка, пульт...) тип девайса тоже будет настраиваться. В конфиг файле или перемычкой на плате, если нет карты памяти.
По железу: почта доставила платы "мозга" системы Caustic - там, где микроконтроллер, sd-шка и базовая обвязка. Размеры 50x26, вот вид с двух сторон:
Вложение:
2015-06-28 18-40-56.JPG [ 42.29 KiB | Просмотров: 6660 ]
почему-то U1 шелкографией написано зеркально)
Чтобы публиковать промежуточные результаты, выкладывать прошивки и схемы, чтобы это всё не терялось в сотнях сообщений в треде, думаю запилить через некоторое время простенький сайтик на том же ucoz-е, для начала...