www.open-tager.ru
http://www.open-tager.ru/forum/

Система Caustic
http://www.open-tager.ru/forum/viewtopic.php?f=5&t=4128
Страница 62 из 108

Автор:  Pacifist [ 16 дек 2015, 02:57 ]
Заголовок сообщения:  Re: Система Caustic

Alexies писал(а):
Вот я и присобачил к загрузчику поддержку USB :)

Осталось немного довести до ума, и запилить очередную версию плат, теперь с поддержкой USB )

Может лучше поддержку радио запилите? ;)

Автор:  Pingvin [ 16 дек 2015, 06:54 ]
Заголовок сообщения:  Re: Система Caustic

Alexies писал(а):
Вот я и присобачил к загрузчику поддержку USB :)

Осталось немного довести до ума, и запилить очередную версию плат, теперь с поддержкой USB )

Поздравляю!
USB нужен.
Не думали на предмет защиты страниц с бутлоадером от записи - чтобы случайно не затерли?
Или нет смысла?

Автор:  Pingvin [ 16 дек 2015, 06:56 ]
Заголовок сообщения:  Re: Система Caustic

Pacifist писал(а):
Alexies писал(а):
Вот я и присобачил к загрузчику поддержку USB :)

Осталось немного довести до ума, и запилить очередную версию плат, теперь с поддержкой USB )

Может лучше поддержку радио запилите? ;)

Что значит - "лучше"?
USB радиосигнал глушит?
Как он мешает радио запилить?
Лучше - пусть будет всё! ;) :)

Автор:  Alexies [ 16 дек 2015, 12:58 ]
Заголовок сообщения:  Re: Система Caustic

Pingvin писал(а):
USB нужен.
Не думали на предмет защиты страниц с бутлоадером от записи - чтобы случайно не затерли?
Или нет смысла?

Я думаю, смысла нет. К тому же первую страницу всё равно придётся перезаписывать, а это уже нарушает идею bootloader read-only.

Автор:  Alexies [ 16 дек 2015, 13:06 ]
Заголовок сообщения:  Re: Система Caustic

Pacifist писал(а):
Alexies писал(а):
Вот я и присобачил к загрузчику поддержку USB :)

Осталось немного довести до ума, и запилить очередную версию плат, теперь с поддержкой USB )

Может лучше поддержку радио запилите? ;)


Поддержку радио для перепрошивки - обязательно запилю. Но доступ в sd-карте в процессе отладки системы иногда нужен, а это удобнее через USB. Хотя можно вообще sd over radio реализовать, технически проблем нет. Один девайс подключаешь к компу по USB, на другом - sd-карта, и комп её видит, как флешку :). Но это будет работать так себе, и не особо нужно.

Автор:  Alexies [ 17 дек 2015, 18:11 ]
Заголовок сообщения:  Re: Система Caustic

Загрузчик с USB доведен до ума. Сейчас он работает так:
- При запуске контроллера он проверяет, не подключен ли USB-разъём к компьютеру. Для этого не используется никаких дополнительных пинов контроллера, кроме стандартных USBDP и USBDM. Если компьютер подключен, устройство определяется компом, как Mass Storage Device, и выглядит, как подключенная флешка или кардридер. Никаких драйверов устанавливать не нужно. Зарядное устройство не считается за компьютер, с ним девайс работает в обычном режиме. Можно даже Power bank в поле подключать, и прям с ним бегать :)
- Если компьютер не подключен, устройство проверяет файл flash.bin с прошивкой на карте памяти. Если его содержимое отличается от того, чем мы прошивались в предыдущий раз, то контроллер перепрошивается. Если рядом лежит файл flash.ly, то из него считывается ly-хэш, который используется для проверки целостности прошивки. Если файла нет, то flash.bin считается по-умолчанию целостным. После перепрошивки контроллер автоматически загружает основную программу.
- Если flash.bin не обновлялся, контроллер просто загружает основную программу

Таким образом, чтобы держать систему up-to-date, нужно забросить на карточку самую новую прошивку flash.bin. Ничего переименовывать и проверять не нужно, этот файл так и будет лежать на карте.

В процессе перепрошивки и при работе в качестве кардридера контроллер прижимает к земле все не используемые в процессе пины, чтобы избежать z-состояния и наводок. Это позволяет подключать полевики затворами прямо к контроллеру без защитных резисторов затвор-земля. Это существенно экономит место на плате, поскольку полевиков обычно не меньше пяти.

Также, загрузчик по UART1 подробно рассказывает о своём состоянии, если нужно диагностировать проблемы (это можно отключить). Параметры 8N1, 921600 бит/с. Такую скорость пережует китайский USB<->UART переходник на поддельном FT232RL.

Загрузчик никак не привязан к конкретной прошивке и лазертагу вообще, и прошьет всё, что влезет в память. Проверка размера прошивки, само собой, присутствует. Сам себя бутлоадер не испортит :)

Исходный код выложу в ближайшее время, поскольку никакого секрета здесь нет, а другим людям может пригодиться. Написан с STM HAL, который портируется куда лучше, чем stdperiph. Единственное, что хочется улучшить - это прикрутить cmake, чтобы собиралось без Eclipse + ARM plugin.

Автор:  Pingvin [ 17 дек 2015, 19:28 ]
Заголовок сообщения:  Re: Система Caustic

Ну и замечательно. ;)

Автор:  Alexies [ 18 дек 2015, 13:34 ]
Заголовок сообщения:  Re: Система Caustic

Рано или поздно наступает время большого рефакторинга кода. Разбираясь с бутлоадером, я стал лучше понимать, как что работает в stm32. Кажется, наступил момент, чтобы избавиться от std periph и перенести всё на STM HAL. Использовать две библиотеки, делающие одно и то же - не профессионально. Учитывая, что одна из них уже давно не поддерживается.
Думаю, это займёт ещё недельку :(

Автор:  Pingvin [ 18 дек 2015, 17:13 ]
Заголовок сообщения:  Re: Система Caustic

Где бы про него почитать ещё найти, про этот HAL? :?
Если не будете код открывать - то всем как то все равно, на чем прошивка написана.
Так чисто для своего удобства только...

Автор:  Alexies [ 18 дек 2015, 19:00 ]
Заголовок сообщения:  Re: Система Caustic

Pingvin писал(а):
Где бы про него почитать ещё найти, про этот HAL? :?
Если не будете код открывать - то всем как то все равно, на чем прошивка написана.
Так чисто для своего удобства только...


Официальный источник вот: http://www.st.com/st-web-ui/static/active/cn/resource/technical/document/user_manual/DM00154093.pdf
Он, конечно, довольно убог. Я пытаюсь как-то скомбинировать информацию из него, из Doxygen-документации на HAL (это то, что в комментах перед функциями написано, скомпилированное программой doxygen в html), ещё гадаю по галочкам в STM32 Cube и смотрю форумы.
Иногда помогает сравнение с stdperiph, какие операции выполняет он, и какие - HAL, буквально по действиям на уровне CMSIS.

Да, рефакторинг "снаружи" никак не заметен. Делать его нужно для себя, поскольку хороший код, подчиняющийся строгой логике, проще развивать.

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

Страница 62 из 108 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/