UART загрузчика для STM8S103F3 топик-ссылка

Писать в 2 места чревато ошибками, по этому только ссылка на статью с целью обратной связи. Кто протестирует - буду рад услышать результаты. Кто просто имеет идеи - тоже не возбраняется к высказыванию. Кратко: Загрузчик для STM8S*03F3 работает по UART с терминалом. Принимает файлы формата Intel HEX. Находиться в старших адресах памяти и не требует специальной сборки целевой прошивки (<= 7кБ исключая последний 1кБ Flash-памяти). Написано на ASM в STVD, проект полностью открытый.

Комментарии (26)

RSS свернуть / развернуть
Пожалуй, я возьму с тебя пример. Только молча буду минусовать не вопросы, а подобные ссылки.

Ну и по сабжу.
Во первых — а разве у STM8 нет своего, встроенного бутлоадера, который притом не жрет место в флеше?
Error duaring process.
«during» же.
Firmware missed.
По моему, несколько логичней было бы «No firmware».
0
  • avatar
  • Vga
  • 10 января 2013, 18:09
Смею заметить, что полезной информации (в виде блога) от Вас, не больше чем от любой другой ссылки. Лучше такая заметка, чем про сушку бутылочек. Я считаю, для того, чтобы поставить минус, топик должен быть бесполезный и бессодержательный… От меня +1
0
Смею заметить, что полезной информации (в виде блога) от Вас, не больше чем от любой другой ссылки
Да, я обленился и давно уже ничего не пишу. Но в моем блоге можно найти вполне приличное количество нормального материала (как и у Angel5a). Только от него такого материала уже не будет — только ссылки, как эта. А от меня, вероятно, будет.
Лучше такая заметка, чем про сушку бутылочек.
Возможно я тупой, но несколько лет мучался с сушкой бутылочек, прежде чем сообразил что с ними делать. Честно говоря, ожидал менее холодного приема заметки, лично на мой взгляд она гораздо полезней, чем мои же проплюсованные заметки с ней по соседству.

И мне не нравится конкретно эта форма. Так же, как ТС-у не нравятся вопросы в сообществе, против которых я ничего не имею.
0
Писать два зеркальных поста не вижу смысла: много проблем при исправлении опечаток/доработке материала. Везде это делать синхронно просто невозможно. Поэтому статья одна, либо тут, либо там. А там мне нравится больше:
— полная свобода форматирования (в том числе и таблицы, которых я по привычке избегаю);
— ни каких лимитов к количеству и объему прикрепленных файлов;
— я всегда имею бекап статьи в актуальном виде (надо бы архивчик отложить ещё один).
Так что именно:
Только от него такого материала уже не будет — только ссылки, как эта.

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

Ну а данный топик изначально содержал больше текста, и дополнился бы ещё, да «лимит 500 символов».
0
А можно ссылочку на ваш блог?
0
Или имелось ввиду блог в сообществе?
0
Он самый. Других не веду.
+1
Пожалуй, я возьму с тебя пример. Только молча буду минусовать не вопросы, а подобные ссылки.
Ваше право.
«during» же.
Благодарю, не обратил внимания даже. У себя поправил, пойдет в релиз.
0
Да, забыл:
Во первых — а разве у STM8 нет своего, встроенного бутлоадера, который притом не жрет место в флеше?
Конкретно у рассматриваемых STM8S103F3/STM8S003F3 встроенного загрузчика нет, ввиду их «простоты». В частности документ говорит:
Table 3. STM8 subfamilies without bootloader
STM8 group STM8 part numbers
STM8S-low density STM8Sx03xx
STM8L101-low density STM8L101xx
STM8T Ultra Low Power STM8TL5xxx

Ну а во-вторых, уж коли делаем свое, то делаем как нам удобно: избавляемся от специальных программ-программаторов. Intel HEX передается непосредственно МК.
А при желании можно написать и «специальную программу-программатор» как обертку (а вот обратный фокус не прокатит).
0
Вот как.
А что за семейство STM8T? Впервые о таком слышу.
А при желании можно написать и «специальную программу-программатор» как обертку (а вот обратный фокус не прокатит).
Я в итоге так и сделал в своем программаторе 2051. Хотя изначально тоже его под iHEX и управление с терминала делал.

P.S. «UART загрузчика» в заголовке — немного странно смотрится)
0
8T это контроллеры сенсорной клавиатуры. По сути даже не МК, а просто мс настраиваемая через SWIM
Луркать тут www.st.com/internet/mcu/subclass/1593.jsp
0
Ну, STM8TL подписаны как ultra low power 8-bit MCU. Любопытно.
0
Привет, angel5a.
Спасибо огромное за разбор проблемы. Редко бывает так что находится решение, которое 100% искалось…

У меня просто появился может быть глупый вопрос… что за магическое число 0х82?
Я так понимаю ведется проверка того, что была ли вообще записана прошивка. Если это проверка старшего байта точки входа, то почему тогда не 0х81. (Так как вектора заканчиваются на 0х80FF)
​ if( (PD_IDR & MASK_PD_IDR_IDR2) && ( *((const unsigned char*)RESET_VECTOR_ADDR) == 0x82) ) {
run();
}​
Спасибо.
0
  • avatar
  • ILON
  • 19 февраля 2015, 15:16
Это не адрес (т.к. фактическое начало программы может находится вообще по любому адресу). Это магическое число для таблицы векторов прерываний (тупо переход). Стандартный бут выполняет проверку на 2 значения 0x82 и 0xAC ( www.st.com/st-web-ui/static/active/en/resource/technical/document/user_manual/CD00201192.pdf )
0
В оригинале еще даже одно магическое число проверяется:
//if user application is not virgin — valid reset vector jump
if(
(*((u8 FAR*)MainUserApplication)==0x82)
|| (*((u8 FAR*)MainUserApplication)==0xAC)
){...}
что могут значить эти числа? (0х82 и 0хАС)
0
  • avatar
  • ILON
  • 19 февраля 2015, 15:46
Если это старший байт адреса первой инструкции в листинге после строчки __iar_program_start(для прошивки, которую кидаем по UART)… тогда нельзя такое оставлять как магическое число, потому как в зависимости от прошивки это может быть и 0x81 и 0x83 или даже больше!
0
  • avatar
  • ILON
  • 19 февраля 2015, 15:58
Похоже разобрался с 0х82:
The table has 32 4-byte entries: RESET, Trap, NMI and up to 29 normal user interrupts. Each entry consists of the
reserved op-code 0x82, followed by a 24-bit value: PCE, PCH, PCL address of the
respective Interrupt Service Routine.
Однако 0хАС пока так и остается загадкой :).
0
  • avatar
  • ILON
  • 19 февраля 2015, 16:14
Это такое же магическое число, толи для больших МК, толи не резерв. Давлно уже ковырялся в этом, не помню деталей.
0
Пусть и некропост.
Ссылки на страничке angel5a на архивы второй (бета) версии умерли.
Мужики, у кого-то сохранился архивы stm8boot_beta.zip stm8boot_beta_src.zip?
Спасибо.
+1
Простите, в именах залитых архивов ошибка: удвоенная буква t в слове beta.
Вот действующие ссылки: stm8boot_betta.zip и stm8boot_betta_src.zip
0
отлично.
осталось спросить — когда ждать «не betta»?
0
Скорее всего уже не будет. Я хобби забросил на несколько лет.
Для релиза там надо левые комменты удалить, нормальные написать. Протестировать на разных проектах. В идеале бы ещё сделать альтернативку на Motorola S-rec формат (уж коли на STVP, в котором он по дефолту). Добавить поддержку других сред разработки (но синтаксисы асм разные, так что пролёт). Написать GUI для прошвки в 1 клик.
А так, для пользования достаточно и текущей версии. В архиве файла лицензии нет, но подразумевается BSD-style: делайте, что хотите, никто-никому не обязан.
0
По такому описанию больше напосминает лицуху WTFPL)
0
Да. Но о неё я узнал позже.
Из существенных отличий BSD от WTFPL я считаю 3 пункт. Он является явной защитой от недобросовестных разработчиков. Первые 2 меня мало интересуют.
А вообще я ещё не подобрал лицензию для себя, что-то между BSD, MIT и WTFPL. То сочинять свое не хочется. Как будет годик-другой свободного времени, может и поразберусь в них :)
0
Добрый день. Очень заинтересовал ваш проект, скажите, могли бы вы внести в него несколько доработок за определенную плату? В частности: добавить двойную коммуникацию посредством работы с командной строкой или приложением С#. Контроллер проекта, для которого необходим bootloader — STM8S0003F3P. Оплата договорная. Если вас не затруднит, откликнитесь на почту info@nse-online.com или непосредственно под этим сообщением.
0
День добрый.
Извините, вынужден отказать. Но вы можете нанять другого разработчика и передать ему исходники этого проекта. Исходники и прошивку можно использовать и в комерческих проектах, без каких либо отчислений и отсылок. В комментариях имеются строки кода на C, для описания «что же тут имел ввиду разработчик» и упрощения портирования на другую среду разработки, так что STVD не является ограничением.

А что подразумевается под двойной коммуникацией?
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.