|
|
  |
Замена FlashLoaderDemonstrator (STM32) |
|
|
|
Sep 21 2016, 08:51
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Всем привет! Кому не лень потестируйте программу для обновления памяти программ микроконтроллеров STM32F10x с объемом памяти до 128-ми килобайт с использованием встроенного в микроконтроллер аппаратного загрузчика. Байты опций не записывает, только читает. Программа открывает HEX-файл, проверяет его на соответсвие формату IntelHex, при соответствии определяет диапазон стираемых секторов, стирает, пишет, читает, верифицирует, выводит необходимые сообщения для отчета в окно. Отчет представлен "для пользователя", его можно сохранить через меню. Имеются настройки: COM-порт, скорость, таймаут, байт данных (в пакете на запись). Последовательность действий: 1) Настройки -> Настройки связи (выбрать порт, скорость, таймаут, количество байт). 2) Файл -> Открыть (выбираем HEX-файл); 3) Команды -> Поиск устройств. 4) Команды -> Обновить ПО устройства. В каталоге с программы файл настроек Settings.ini, других файлов программа не создает, никуда не лазит, вирусов нет, тестировалась с STM32F100C4 (PID=0x0420), скриншот Pic01.png. Заявлена поддержка PID= 0x0410, 0x0412 (но не тестировалась ввиду отсутствия микроконтроллеров). Если микроконтроллер не поддерживается, то записывать не будет, скриншот Unknown MCU.png. PS: Windows XP, NetFramework 3.5 и более новые системы.
Эскизы прикрепленных изображений
|
|
|
|
|
Sep 28 2016, 20:30
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 26-02-11
Пользователь №: 63 256

|
респект, как доберусь до контроллера тестону. только исходник бы еще. как я понимаю она еще под линухом в mono может работать?
|
|
|
|
|
Oct 3 2016, 11:09
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(batson @ Sep 28 2016, 23:30)  респект, как доберусь до контроллера тестону. только исходник бы еще. как я понимаю она еще под линухом в mono может работать? Исходник там на C#, написан и собран в Microsoft Visual Studio Express 2010, в системе Windows XP. Протокол известен, он описан в документации к STM32, и даже исходникик в Интернете есть, только на C++ и для консольной версии программы, есть еще три DLL-ки (API) для C под Windows. С DLL и исходниками на С++ моно поближе познакомиться после установки программы Flash Loader Demonstrator v.2.8.0 (последняя версия программы от ST). Отличительной особенностью исходников для C++ (по мнению разработчиков ПО) является то, что проект Flash Loader Demonstrator v.2.8.0 собран в Visual Studio 2013. Они не упоминают, что предыдущая версия v.2.6.0 была для Visual Studio 6. Т.е. старый проект перенесли в новую IDE, которая даже на Windows XP не устанавливается (при установке Visual Studio 2013 требует наличия Windows 7). Т.е. нельзя открыть проект для VSE2013 в VSE2010. И зачем это они так делают? Не знаю. Может, маркетинговый ход какой. Кстати, исходные коды производителя (на C++) не требуют вообще никакого Net Framework, поэтому могут работать даже под Windows Me и 98, но, вряд ли это можно считать достоинством, скорее - недостатком. Скорее это показывает уровень разработчиков (чем владели) или реальную дату разработки оригинальной версии проекта или - около 15 лет назад. Можно много говорить, но, если вам понадобились исходники, то вы - программист, поэтому вы легко можете воссоздать программу на основе логики её работы и документации производителя. Возможно, вы даже сможете чем-то со мной поделиться. PS: И еще один момент: у вас слишком мало сообщений с момента регистрации (т.е. вы - наблюдатель, а не производитель в данном случае), поэтому вам никак не может быть предоставлен исходный код.
Сообщение отредактировал Pridnya - Oct 3 2016, 12:44
|
|
|
|
|
Nov 2 2016, 09:25
|
Участник

Группа: Участник
Сообщений: 28
Регистрация: 26-02-11
Пользователь №: 63 256

|
попробовал, шьет вобщем без проблем
из плюсов проги - она коннектится к контроллеру даже когда графическая оболочка флэшлоадера этого делать не хочет по какой-то причине, поэтому я давно шью через командную строку.
из минусов -нет скорости 256к -все приходится делать через меню, надо бы вынести кнопки на все операции -открыть исходник, чтобы другие не изобретали велосипедов
|
|
|
|
|
Nov 3 2016, 07:44
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(batson @ Nov 2 2016, 12:25)  попробовал, шьет вобщем без проблем
из плюсов проги - она коннектится к контроллеру даже когда графическая оболочка флэшлоадера этого делать не хочет по какой-то причине, поэтому я давно шью через командную строку.
из минусов -нет скорости 256к -все приходится делать через меню, надо бы вынести кнопки на все операции -открыть исходник, чтобы другие не изобретали велосипедов Я её тестировал с физическим COM-портом, а он работает до 115200, поэтому совсем забыл, что виртуальный COM-порт в отличии от физического может работать на скоростях, превышающих 115200. Спасибо! Попробую добавить. Хотел сделать без лишних кнопок - получились лишние действия (лишние клики мышкой). Спасибо и за это. Исходники раскрывать рановато. Исходников на C# даже у производителя нет.  Я их исходники на старом C++ и DLL-ки Си-шные пытался приспособить к работе на C# (на C# написать обертку для работы с их тремя штуками Си-шных DLL-к) - немного стало получаться, но гемор страшный, как кал в доллары заворачивать и назвать конфетой. Бросил и переписал все на C#. Цитата(x893 @ Nov 2 2016, 12:44)  Можно просто добавить command line options и хоть в оконном, хоть в командном режиме. Ну и конечно исходники на github У меня только GUI-версия. Я пока даже не знаю, как писать программы, чтобы была и GUI и Console одновременно. Спасибо за совет.
|
|
|
|
|
Nov 3 2016, 10:01
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(smalcom @ Nov 3 2016, 12:33)  Не видели еще. Сейчас посмотрел, так этот опенсорц на Си больше для Linux, там в примерах и синтаксис для Linux, а я работаю только с Windows. Можно, конечно, попробовать собрать программу в Linux (я только с Ubuntu раньше работать пробовал), используя исходники на C# и IDE SharpDevelop, теоретически должно работать, если NetFramework портировали (в виде Mono). Но я не пробовал еще. Цитата Usage: ./stm32flash [-bvngfhc] [-[rw] filename] /dev/ttyS ... Вы какую мысль хотели донести? Всегда удивляет немногословность. Можно было и после ссылки знак ? напечатать.
Сообщение отредактировал Pridnya - Nov 3 2016, 10:07
|
|
|
|
|
Nov 3 2016, 20:15
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(smalcom @ Nov 3 2016, 15:33)  Интрига )) Хотел показать, что есть возможность использовать уже существующие наработки, чтобы с нуля всё не делать. IMHO: Неудачный у вас пример получился. Там несколько десятков Си-шных файлов, причем синтаксис не самый удачный: - многоуровневые типы данных без необходимости; - функции длиной до нескольких сотен строк (например в файле main.c); - привязка к консольному вводу-выводу. Для работы с последовательным портом в файле serial_w32.c используются функции CreateFile(). Этот синтаксис мне напоминает WinAPI, я лет 10 назад начинал с их использования, когда работал с последовательным портом, хотел свой класс для последовательного порта написать (обертку для функций WinAPI), но дело так и не дошло, классы для последовательного порта уже были. Вообще классы - полезная вещь, с ними код короче и понятнее, все лишнее скрыто. Короче: этот пример мне не нравится, он слишком старый(ему лет 15-20), хотя и выложен пару лет назад.
|
|
|
|
|
Nov 7 2016, 05:58
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(dimka76 @ Nov 7 2016, 00:16)  Хорошо же вы оцениваете собеседника лишь по количеству сообщений на форуме  И не только по количеству сообщений, но и по количеству созданных тем. Эта мысль сформировалась за долгие годы общения на разных форумах. Ведь есть пользователи, которые все 10 лет пребывания на форуме: 1) только читают; 2) постоянно спрашивает, но не отвечает другим; 3) только советует, но не создает тем, по крайней мере в последние лет 5 лет (как бы мудрец); 4) задает множество вопросов начального уровня; 5) и читает, и пишет, т.е. в теме и не потерял квалификацию. Т.е. должен быть "фильтр" ,который позволяет отсеить тех, кто не входит в 90% и тех, кто вчера зарегистрировался, а сегодня уже хочет исходники и лезет в друзья. Реальный пример: человек за 10 лет создал 6 тем, две из которых "анекдоты" и "вопрос о любезностях", две темы с нулем ответов - заданы не на тематическом форуме, одна с одним ответом, и одна на общефизические вопросы. Совет такого пользователя может быть крайне вреден, т.к. может создаться впечатление об авторитетности источника. Не зря же на форуме есть кнопка "темы пользователя".
Сообщение отредактировал Pridnya - Nov 7 2016, 06:06
|
|
|
|
|
Nov 7 2016, 12:21
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159

|
Цитата(bingo @ Nov 7 2016, 09:53)  Спасибо! Не видел этой статьи. Ознакомился. Чтобы воспользоваться этим способом, нужно: 1) добавить к микроконтроллеру мост USB-UART на микросхеме CP2103 (SiLabs), т.е. виртуальный COM-порт; 2) предварительно записать в FLASH-память программ STM32 нестандартный программный загрузчик; 3) с помощью EXE-шника (который сделан с использованием Delphi) записать оставшуюся память микроконтроллера. 4) и что-то EXE-шник предлагает выбрать не HEX, а BIN-файл, там даже фильтра нет *.*, похоже, что он не понимает IntelHex формат. Это я еще протокол обмена не ковырял. Будет время - посмотрю. Есть люди, которые о достоверности передачи данных не слышали, им только скорость нужна высокая. А вот с этим не согласен Цитата Штатная утилита и AN3155 не рекомендовали шить на скорости выше 115200 бод, Моя же программа могла шить даже 1000к бодах, но это давало прибавку к скорости всего в 2 раза (по сравнению с 115200). Последняя версия FlashLoaderDemonstrator v2.8.0 по сравнению с v2.6.0 имеет две дополнительные скорости 128000 и 256000, и при использовании виртального COM-порта (USB-RS232, или USB-RS485 при наличии в схеме микросхемы драйвера RS485 AutoDirection - MAX13412, не требующая третьей линии - управления направлением передачи данных) вполне нормально работает на скорости 256000 килобит И с этим тоже не согласен Цитата Стирать надо всю флеш, даже если размер прошивки 10к из доступных 1024к байт — в некоторых кристаллах были баги с частичным стиранием. Специально проверял, стирает ли аппаратный загрузчик заданные страницы. Стирает, вопросов не было. Итого: нестандартный программный загрузчик плюс мост USB-UART на CP2103, плюс ПО для Windows с поддержкой протокола нестандартного программного загрузчика, к аппаратному загрузчику микроконтроллера (протокол описан в AN3155) отношения не имеют.
Сообщение отредактировал Pridnya - Nov 7 2016, 12:38
Эскизы прикрепленных изображений
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|