www.open-tager.ru http://www.open-tager.ru/forum/ |
|
Система Caustic http://www.open-tager.ru/forum/viewtopic.php?f=5&t=4128 |
Страница 58 из 108 |
Автор: | Alexies [ 07 дек 2015, 01:01 ] |
Заголовок сообщения: | Re: Система Caustic |
Pingvin писал(а): А можно подробней (фото покрупней) - как разъёмы шлейфа поместились в корпуса датчиков? Тоже хочу их использовать. Удобны ли они? А там нет разъёмов. Это - старая версия датчиков, там просто припаян шлейф. Разъём в корпус от LW не поместится без существенного перепиливания. |
Автор: | Pingvin [ 07 дек 2015, 11:05 ] |
Заголовок сообщения: | Re: Система Caustic |
Alexies писал(а): Я изначально не планировал выводить USB наружу. Он просто стоит на готовой плате контроллера зарядки, которую я заказывал из Китая за копейки) Для зарядки я вывел штекер - банально соединение надежней. Однако, в перспективе я всё-таки запилю поддержку USB. Это не повредит, повысит удобство работы с SD-картой. Если уж делать загрузчик, то пусть и USB будет. Спасибо Alexies - Вы реабилитировли USB! Теперь в глазах местной публики это будет практично, удобно и вааще - суперская идея! Ибо Pingvin ничего путного предложить не может априори... |
Автор: | Pacifist [ 07 дек 2015, 12:49 ] |
Заголовок сообщения: | Re: Система Caustic |
Pingvin писал(а): Alexies писал(а): Я изначально не планировал выводить USB наружу. Он просто стоит на готовой плате контроллера зарядки, которую я заказывал из Китая за копейки) Для зарядки я вывел штекер - банально соединение надежней. Спасибо Alexies - Вы реабилитировли USB!Однако, в перспективе я всё-таки запилю поддержку USB. Это не повредит, повысит удобство работы с SD-картой. Если уж делать загрузчик, то пусть и USB будет. Теперь в глазах местной публики это будет практично, удобно и вааще - суперская идея! Ибо Pingvin ничего путного предложить не может априори... Пингвин тоже молодец! Ведь это он первый предложил суперскую идея делать бутлоадер через радио: Pingvin писал(а): А зачем к st-link цеплятся? Правда потом про это забыл и воспринял свою-же идею в штыки Напиши (или давай вместе напишем) свой бутлоадер и прошивай по радио! С SD-кары уже есть. А Алексис дважды молодец, потому что анонс системы состоялся весной 2015-го, и вот всего через 7 месяцем он имеет на руках 2 готовых к игре устройства! Думаю такими темпами до весны 2016-го это будет уже отлаженый и готовый для работы "из коробки" продукт включая всё необходимое ПО. |
Автор: | Pingvin [ 07 дек 2015, 13:14 ] |
Заголовок сообщения: | Re: Система Caustic |
Где я "в штыки" воспринимал идею обновления по радио? Не надо! Alexies трижды молодец! Но к 7 месяцам добавьте ещё полгода! Цитата: Пол года работы в свободное от основной работы время, и появился прототип.
|
Автор: | Alexies [ 08 дек 2015, 04:18 ] |
Заголовок сообщения: | Re: Система Caustic |
С бутлоадером разобрался после ещё пары дней втыкания. Пока ничего не прошивает, но в принципе - работает. Пришлось изучить, как устроены скрипты компоновщика ld (я юзаю arm-gcc, тут тремя кликам по меню отделаться не получится). Сейчас делаю так: в Eclipse-е два проекта. Основной и загрузчик в виде статической библиотеки. Загрузчик имеет свою копию стандартной библиотеки. Чтобы при линковке не возникло совпадений имён, все символы статической либы переименовываются при помощи objcopy: Код: arm-none-eabi-objcopy --prefix-symbols=bootloader_ libbootloader-stm32f103ret6.a Также, в скрипте компоновщика основного проекта (скрипт, к слову, не маленький: ~250 строк) нужно явно сказать, что мы хотим. Сначала определяется дополнительный регион памяти для загрузчика. Регион основной памяти сдвигается. Потом прописывается, куда класть .text, .data и особливо таблицу прерываний для библиотеки загрузчика. Делается это путем копипасты и исправления И добавляются символы для кода, инициализирующего .data и .bss загрузчика. Кусок всего это выглядит как-то так: Код: ... .loader_text : { . = ALIGN(4); *libbootloader-stm32f103ret6.a:(.text .text*) . = ALIGN(4); } >LOADER ... /* Initialized data sections goes into RAM, load LMA copy after code */ .loader_data : { . = ALIGN(4); bootloader__sdata = .; /* create a global symbol at data start */ *libbootloader-stm32f103ret6.a: (.data) /* .data sections */ *libbootloader-stm32f103ret6.a: (.data*) /* .data* sections */ . = ALIGN(4); bootloader__edata = .; /* define a global symbol at data end */ } >RAM AT> LOADER ... В общем, после такой "несложной" процедуры, у нас появляется загрузчик. Всё делается вручную, зато - полный контроль, Unix way. Остались мелочи: написать сам код. В коде можно использовать всё, что угодно. Думаю, скоро будет готово |
Автор: | Alexies [ 08 дек 2015, 04:22 ] |
Заголовок сообщения: | Re: Система Caustic |
Продолжая думать над USB, заказал из китая 10 разъёмов USB type B (которые "принтерные") за ~230р всё вместе. Думаю, это оптимальный вариант для установки в таггер. Сломать его куда сложнее, чем mini- и micro-. Прикреплять к корпусу можно хоть даже на термоклей, хотя лучше запилить мини-платку. Вложение: s-l1600.jpg [ 66.17 KiB | Просмотров: 5962 ] |
Автор: | Pingvin [ 08 дек 2015, 06:27 ] |
Заголовок сообщения: | Re: Система Caustic |
Alexies писал(а): С бутлоадером разобрался после ещё пары дней втыкания. Пока ничего не прошивает, но в принципе - работает. Пришлось изучить, как устроены скрипты компоновщика ld (я юзаю arm-gcc, тут тремя кликам по меню отделаться не получится). Сейчас делаю так: в Eclipse-е два проекта. Основной и загрузчик в виде статической библиотеки. Загрузчик имеет свою копию стандартной библиотеки. Чтобы при линковке не возникло совпадений имён, все символы статической либы переименовываются при помощи objcopy: Код: arm-none-eabi-objcopy --prefix-symbols=bootloader_ libbootloader-stm32f103ret6.a Также, в скрипте компоновщика основного проекта (скрипт, к слову, не маленький: ~250 строк) нужно явно сказать, что мы хотим. Сначала определяется дополнительный регион памяти для загрузчика. Регион основной памяти сдвигается. Потом прописывается, куда класть .text, .data и особливо таблицу прерываний для библиотеки загрузчика. Делается это путем копипасты и исправления И добавляются символы для кода, инициализирующего .data и .bss загрузчика. Кусок всего это выглядит как-то так: Код: ... .loader_text : { . = ALIGN(4); *libbootloader-stm32f103ret6.a:(.text .text*) . = ALIGN(4); } >LOADER ... /* Initialized data sections goes into RAM, load LMA copy after code */ .loader_data : { . = ALIGN(4); bootloader__sdata = .; /* create a global symbol at data start */ *libbootloader-stm32f103ret6.a: (.data) /* .data sections */ *libbootloader-stm32f103ret6.a: (.data*) /* .data* sections */ . = ALIGN(4); bootloader__edata = .; /* define a global symbol at data end */ } >RAM AT> LOADER ... В общем, после такой "несложной" процедуры, у нас появляется загрузчик. Всё делается вручную, зато - полный контроль, Unix way. Остались мелочи: написать сам код. В коде можно использовать всё, что угодно. Думаю, скоро будет готово Фигасе, куда зарылись! У меня как то проще все. В кокосе в свойствах проекта два параметра поправить и в исходниках указать смещение таблицы прерывания. Но тоже - неплохо бы все раскурить на "молекулярном" уровне. Где можно почитать про скрипты линкера? |
Автор: | Pingvin [ 08 дек 2015, 06:28 ] |
Заголовок сообщения: | Re: Система Caustic |
Alexies писал(а): Продолжая думать над USB, заказал из китая 10 разъёмов USB type B (которые "принтерные") за ~230р всё вместе. Думаю, это оптимальный вариант для установки в таггер. Сломать его куда сложнее, чем mini- и micro-. Прикреплять к корпусу можно хоть даже на термоклей, хотя лучше запилить мини-платку. Вложение: s-l1600.jpg Самое то! На тагер я такие планировал ставить. |
Автор: | Pacifist [ 08 дек 2015, 13:44 ] |
Заголовок сообщения: | Re: Система Caustic |
Alexies писал(а): С бутлоадером разобрался после ещё пары дней втыкания. Пока ничего не прошивает, но в принципе - работает. Пришлось изучить, как устроены скрипты компоновщика ld (я юзаю arm-gcc, тут тремя кликам по меню отделаться не получится). Сейчас делаю так: в Eclipse-е два проекта. Основной и загрузчик в виде статической библиотеки. Загрузчик имеет свою копию стандартной библиотеки. Чтобы при линковке не возникло совпадений имён, все символы статической либы переименовываются при помощи objcopy: Код: arm-none-eabi-objcopy --prefix-symbols=bootloader_ libbootloader-stm32f103ret6.a Также, в скрипте компоновщика основного проекта (скрипт, к слову, не маленький: ~250 строк) нужно явно сказать, что мы хотим. Сначала определяется дополнительный регион памяти для загрузчика. Регион основной памяти сдвигается. Потом прописывается, куда класть .text, .data и особливо таблицу прерываний для библиотеки загрузчика. Делается это путем копипасты и исправления И добавляются символы для кода, инициализирующего .data и .bss загрузчика. В общем, после такой "несложной" процедуры, у нас появляется загрузчик. Всё делается вручную, зато - полный контроль, Unix way. Остались мелочи: написать сам код. В коде можно использовать всё, что угодно. Думаю, скоро будет готово Как-то действительно сложно у Вас получилось. Обычно бутлоадер пишут как отдельный проект. А потом уже любую прошивку через него загружают в кристалл без какой-либо ручной настройки. Ваш бутлоадер сможет загрузить и запустить к примеру прошивку Пингвина? |
Автор: | Pingvin [ 08 дек 2015, 14:28 ] |
Заголовок сообщения: | Re: Система Caustic |
У меня так вообще три разных прошивки получается. 1. Мас сторадж (режим карт-ридера) 2. Бутлоадер 3. Непосредственно сама прошивка И ничего - все пучком! Хексы лью по очереди. |
Страница 58 из 108 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |