Pridnya 0 21 сентября, 2016 Опубликовано 21 сентября, 2016 · Жалоба Всем привет! Кому не лень потестируйте программу для обновления памяти программ микроконтроллеров 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
batson 0 28 сентября, 2016 Опубликовано 28 сентября, 2016 · Жалоба респект, как доберусь до контроллера тестону. только исходник бы еще. как я понимаю она еще под линухом в mono может работать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pridnya 0 3 октября, 2016 Опубликовано 3 октября, 2016 (изменено) · Жалоба респект, как доберусь до контроллера тестону. только исходник бы еще. как я понимаю она еще под линухом в 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: И еще один момент: у вас слишком мало сообщений с момента регистрации (т.е. вы - наблюдатель, а не производитель в данном случае), поэтому вам никак не может быть предоставлен исходный код. Изменено 3 октября, 2016 пользователем Pridnya Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
batson 0 2 ноября, 2016 Опубликовано 2 ноября, 2016 · Жалоба попробовал, шьет вобщем без проблем из плюсов проги - она коннектится к контроллеру даже когда графическая оболочка флэшлоадера этого делать не хочет по какой-то причине, поэтому я давно шью через командную строку. из минусов -нет скорости 256к -все приходится делать через меню, надо бы вынести кнопки на все операции -открыть исходник, чтобы другие не изобретали велосипедов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 33 2 ноября, 2016 Опубликовано 2 ноября, 2016 · Жалоба Можно просто добавить command line options и хоть в оконном, хоть в командном режиме. Ну и конечно исходники на github Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pridnya 0 3 ноября, 2016 Опубликовано 3 ноября, 2016 · Жалоба попробовал, шьет вобщем без проблем из плюсов проги - она коннектится к контроллеру даже когда графическая оболочка флэшлоадера этого делать не хочет по какой-то причине, поэтому я давно шью через командную строку. из минусов -нет скорости 256к -все приходится делать через меню, надо бы вынести кнопки на все операции -открыть исходник, чтобы другие не изобретали велосипедов Я её тестировал с физическим COM-портом, а он работает до 115200, поэтому совсем забыл, что виртуальный COM-порт в отличии от физического может работать на скоростях, превышающих 115200. Спасибо! Попробую добавить. Хотел сделать без лишних кнопок - получились лишние действия (лишние клики мышкой). Спасибо и за это. Исходники раскрывать рановато. Исходников на C# даже у производителя нет. :) Я их исходники на старом C++ и DLL-ки Си-шные пытался приспособить к работе на C# (на C# написать обертку для работы с их тремя штуками Си-шных DLL-к) - немного стало получаться, но гемор страшный, как кал в доллары заворачивать и назвать конфетой. Бросил и переписал все на C#. Можно просто добавить command line options и хоть в оконном, хоть в командном режиме. Ну и конечно исходники на github У меня только GUI-версия. Я пока даже не знаю, как писать программы, чтобы была и GUI и Console одновременно. Спасибо за совет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smalcom 0 3 ноября, 2016 Опубликовано 3 ноября, 2016 · Жалоба stm32flash видели? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pridnya 0 3 ноября, 2016 Опубликовано 3 ноября, 2016 (изменено) · Жалоба stm32flash видели? Не видели еще. Сейчас посмотрел, так этот опенсорц на Си больше для Linux, там в примерах и синтаксис для Linux, а я работаю только с Windows. Можно, конечно, попробовать собрать программу в Linux (я только с Ubuntu раньше работать пробовал), используя исходники на C# и IDE SharpDevelop, теоретически должно работать, если NetFramework портировали (в виде Mono). Но я не пробовал еще. Usage: ./stm32flash [-bvngfhc] [-[rw] filename] /dev/ttyS ... Вы какую мысль хотели донести? Всегда удивляет немногословность. Можно было и после ссылки знак ? напечатать. :rolleyes: Изменено 3 ноября, 2016 пользователем Pridnya Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smalcom 0 3 ноября, 2016 Опубликовано 3 ноября, 2016 · Жалоба Интрига )) Хотел показать, что есть возможность использовать уже существующие наработки, чтобы с нуля всё не делать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pridnya 0 3 ноября, 2016 Опубликовано 3 ноября, 2016 · Жалоба Интрига )) Хотел показать, что есть возможность использовать уже существующие наработки, чтобы с нуля всё не делать. IMHO: Неудачный у вас пример получился. Там несколько десятков Си-шных файлов, причем синтаксис не самый удачный: - многоуровневые типы данных без необходимости; - функции длиной до нескольких сотен строк (например в файле main.c); - привязка к консольному вводу-выводу. Для работы с последовательным портом в файле serial_w32.c используются функции CreateFile(). Этот синтаксис мне напоминает WinAPI, я лет 10 назад начинал с их использования, когда работал с последовательным портом, хотел свой класс для последовательного порта написать (обертку для функций WinAPI), но дело так и не дошло, классы для последовательного порта уже были. Вообще классы - полезная вещь, с ними код короче и понятнее, все лишнее скрыто. Короче: этот пример мне не нравится, он слишком старый(ему лет 15-20), хотя и выложен пару лет назад. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 6 ноября, 2016 Опубликовано 6 ноября, 2016 · Жалоба PS: И еще один момент: у вас слишком мало сообщений с момента регистрации (т.е. вы - наблюдатель, а не производитель в данном случае), поэтому вам никак не может быть предоставлен исходный код. Хорошо же вы оцениваете собеседника лишь по количеству сообщений на форуме ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pridnya 0 7 ноября, 2016 Опубликовано 7 ноября, 2016 (изменено) · Жалоба Хорошо же вы оцениваете собеседника лишь по количеству сообщений на форуме ;) И не только по количеству сообщений, но и по количеству созданных тем. Эта мысль сформировалась за долгие годы общения на разных форумах. Ведь есть пользователи, которые все 10 лет пребывания на форуме: 1) только читают; 2) постоянно спрашивает, но не отвечает другим; 3) только советует, но не создает тем, по крайней мере в последние лет 5 лет (как бы мудрец); 4) задает множество вопросов начального уровня; 5) и читает, и пишет, т.е. в теме и не потерял квалификацию. Т.е. должен быть "фильтр" ,который позволяет отсеить тех, кто не входит в 90% и тех, кто вчера зарегистрировался, а сегодня уже хочет исходники и лезет в друзья. Реальный пример: человек за 10 лет создал 6 тем, две из которых "анекдоты" и "вопрос о любезностях", две темы с нулем ответов - заданы не на тематическом форуме, одна с одним ответом, и одна на общефизические вопросы. Совет такого пользователя может быть крайне вреден, т.к. может создаться впечатление об авторитетности источника. Не зря же на форуме есть кнопка "темы пользователя". Изменено 7 ноября, 2016 пользователем Pridnya Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bingo 0 7 ноября, 2016 Опубликовано 7 ноября, 2016 · Жалоба А вдруг пригодится: https://habrahabr.ru/post/305800/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pridnya 0 7 ноября, 2016 Опубликовано 7 ноября, 2016 (изменено) · Жалоба А вдруг пригодится: 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) отношения не имеют. Изменено 7 ноября, 2016 пользователем Pridnya Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться