реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Замена FlashLoaderDemonstrator (STM32)
Pridnya
сообщение Sep 21 2016, 08:51
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 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 и более новые системы.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  blstm32f10x.zip ( 118.16 килобайт ) Кол-во скачиваний: 39
 
Go to the top of the page
 
+Quote Post
batson
сообщение Sep 28 2016, 20:30
Сообщение #2


Участник
*

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



респект, как доберусь до контроллера тестону. только исходник бы еще.
как я понимаю она еще под линухом в mono может работать?
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Oct 3 2016, 11:09
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 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
Go to the top of the page
 
+Quote Post
batson
сообщение Nov 2 2016, 09:25
Сообщение #4


Участник
*

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



попробовал, шьет вобщем без проблем

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

из минусов
-нет скорости 256к
-все приходится делать через меню, надо бы вынести кнопки на все операции
-открыть исходник, чтобы другие не изобретали велосипедов
Go to the top of the page
 
+Quote Post
x893
сообщение Nov 2 2016, 09:44
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 965
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Можно просто добавить command line options и хоть в оконном, хоть в командном режиме.
Ну и конечно исходники на github
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Nov 3 2016, 07:44
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(batson @ Nov 2 2016, 12:25) *
попробовал, шьет вобщем без проблем

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

из минусов
-нет скорости 256к
-все приходится делать через меню, надо бы вынести кнопки на все операции
-открыть исходник, чтобы другие не изобретали велосипедов

Я её тестировал с физическим COM-портом, а он работает до 115200, поэтому совсем забыл, что виртуальный COM-порт в отличии от физического может работать на скоростях, превышающих 115200. Спасибо! Попробую добавить.
Хотел сделать без лишних кнопок - получились лишние действия (лишние клики мышкой). Спасибо и за это.
Исходники раскрывать рановато. Исходников на C# даже у производителя нет. sm.gif Я их исходники на старом C++ и DLL-ки Си-шные пытался приспособить к работе на C# (на C# написать обертку для работы с их тремя штуками Си-шных DLL-к) - немного стало получаться, но гемор страшный, как кал в доллары заворачивать и назвать конфетой. Бросил и переписал все на C#.
Цитата(x893 @ Nov 2 2016, 12:44) *
Можно просто добавить command line options и хоть в оконном, хоть в командном режиме.
Ну и конечно исходники на github

У меня только GUI-версия. Я пока даже не знаю, как писать программы, чтобы была и GUI и Console одновременно. Спасибо за совет.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Nov 3 2016, 09:33
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 290
Регистрация: 26-06-07
Пользователь №: 28 718



stm32flash видели?
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Nov 3 2016, 10:01
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(smalcom @ Nov 3 2016, 12:33) *
stm32flash видели?

Не видели еще. Сейчас посмотрел, так этот опенсорц на Си больше для Linux, там в примерах и синтаксис для Linux, а я работаю только с Windows.
Можно, конечно, попробовать собрать программу в Linux (я только с Ubuntu раньше работать пробовал), используя исходники на C# и IDE SharpDevelop, теоретически должно работать, если NetFramework портировали (в виде Mono). Но я не пробовал еще.
Цитата
Usage: ./stm32flash [-bvngfhc] [-[rw] filename] /dev/ttyS
...

Вы какую мысль хотели донести? Всегда удивляет немногословность. Можно было и после ссылки знак ? напечатать. rolleyes.gif

Сообщение отредактировал Pridnya - Nov 3 2016, 10:07
Go to the top of the page
 
+Quote Post
smalcom
сообщение Nov 3 2016, 12:33
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 290
Регистрация: 26-06-07
Пользователь №: 28 718



Интрига ))
Хотел показать, что есть возможность использовать уже существующие наработки, чтобы с нуля всё не делать.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Nov 3 2016, 20:15
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(smalcom @ Nov 3 2016, 15:33) *
Интрига ))
Хотел показать, что есть возможность использовать уже существующие наработки, чтобы с нуля всё не делать.

IMHO: Неудачный у вас пример получился. Там несколько десятков Си-шных файлов, причем синтаксис не самый удачный:
- многоуровневые типы данных без необходимости;
- функции длиной до нескольких сотен строк (например в файле main.c);
- привязка к консольному вводу-выводу.
Для работы с последовательным портом в файле serial_w32.c используются функции CreateFile(). Этот синтаксис мне напоминает WinAPI, я лет 10 назад начинал с их использования, когда работал с последовательным портом, хотел свой класс для последовательного порта написать (обертку для функций WinAPI), но дело так и не дошло, классы для последовательного порта уже были. Вообще классы - полезная вещь, с ними код короче и понятнее, все лишнее скрыто. Короче: этот пример мне не нравится, он слишком старый(ему лет 15-20), хотя и выложен пару лет назад.
Go to the top of the page
 
+Quote Post
dimka76
сообщение Nov 6 2016, 21:16
Сообщение #11


developer
****

Группа: Свой
Сообщений: 825
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(Pridnya @ Oct 3 2016, 14:09) *
PS: И еще один момент: у вас слишком мало сообщений с момента регистрации (т.е. вы - наблюдатель, а не производитель в данном случае), поэтому вам никак не может быть предоставлен исходный код.


Хорошо же вы оцениваете собеседника лишь по количеству сообщений на форуме wink.gif


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Nov 7 2016, 05:58
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(dimka76 @ Nov 7 2016, 00:16) *
Хорошо же вы оцениваете собеседника лишь по количеству сообщений на форуме wink.gif

И не только по количеству сообщений, но и по количеству созданных тем. Эта мысль сформировалась за долгие годы общения на разных форумах.
Ведь есть пользователи, которые все 10 лет пребывания на форуме:
1) только читают;
2) постоянно спрашивает, но не отвечает другим;
3) только советует, но не создает тем, по крайней мере в последние лет 5 лет (как бы мудрец);
4) задает множество вопросов начального уровня;
5) и читает, и пишет, т.е. в теме и не потерял квалификацию.

Т.е. должен быть "фильтр" ,который позволяет отсеить тех, кто не входит в 90% и тех, кто вчера зарегистрировался, а сегодня уже хочет исходники и лезет в друзья.

Реальный пример: человек за 10 лет создал 6 тем, две из которых "анекдоты" и "вопрос о любезностях", две темы с нулем ответов - заданы не на тематическом форуме, одна с одним ответом, и одна на общефизические вопросы. Совет такого пользователя может быть крайне вреден, т.к. может создаться впечатление об авторитетности источника. Не зря же на форуме есть кнопка "темы пользователя".

Сообщение отредактировал Pridnya - Nov 7 2016, 06:06
Go to the top of the page
 
+Quote Post
bingo
сообщение Nov 7 2016, 06:53
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 9-04-12
Пользователь №: 71 256



А вдруг пригодится:
https://habrahabr.ru/post/305800/
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Nov 7 2016, 12:21
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 138
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(bingo @ Nov 7 2016, 09:53) *
А вдруг пригодится:
https://habrahabr.ru/post/305800/

Спасибо! Не видел этой статьи. Ознакомился.
Чтобы воспользоваться этим способом, нужно:
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
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2017 - 06:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01464 секунд с 7
ELECTRONIX ©2004-2016