Обновленная прошивка хронометра
Sep. 19th, 2019 07:42 pmПонемногу допиливаю прошивку хронометра. Исправил некоторые косяки и добавил возможность сохранять логи прямо во флеш-память микроконтроллера! Интересно, что, несмотря на то, что на корпусе написано STM32F103C8T6, фактически у него 128кБ флеша! Сама прошивка занимает почти 15кБ, после нее 2 страницы флеш-памяти отводится на хранение настроек (их туда аж 50 штук влезает, так что, очищать эти 2кБ нужно будет достаточно редко), а уже за ними все свободное место отведено под хранение логов.
Убил довольно-таки приличное количество времени, чтобы разобраться с линкер-скриптом и разместить хранилища именно там, где я хочу! При дебаге даже пришлось несколько раз сливать с камня прошивку после записи параметров и логов, чтобы убедиться, что все находится на своих местах.
Единственное, что мне сейчас не нравится — разбор команд, который у меня реализован тупо в лоб (серией if-else if). Вот чувствую, что можно сделать элегантное решение на вложенных switch'ах, но если это писать вручную, замучаюсь при добавлении новой команды (и лопухнуться легко при удалении ненужной), т.е. нужно писать генератор кода. И это останавливает от прогресса!
Убил довольно-таки приличное количество времени, чтобы разобраться с линкер-скриптом и разместить хранилища именно там, где я хочу! При дебаге даже пришлось несколько раз сливать с камня прошивку после записи параметров и логов, чтобы убедиться, что все находится на своих местах.
Единственное, что мне сейчас не нравится — разбор команд, который у меня реализован тупо в лоб (серией if-else if). Вот чувствую, что можно сделать элегантное решение на вложенных switch'ах, но если это писать вручную, замучаюсь при добавлении новой команды (и лопухнуться легко при удалении ненужной), т.е. нужно писать генератор кода. И это останавливает от прогресса!