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/ |