Сергей Борщ 134 28 мая, 2021 Опубликовано 28 мая, 2021 · Жалоба Я не знаю, как внутри работает SWD. Но знаю, что openocd позволяет через SWD читать/писать любые регистры. В том числе и регистры, ответственные за запись в option bytes. Процедура записи option bytes из программы через эти регистры описана в руководстве пользователя, раздел 3.2.2 Flash memory program and erase operations, подраздел Option byte programming. Если вы умеете через SWD писать/стирать флеш - предполагаю, что вы делаете это именно через эти регистры. Что мешает прочесть еще ровно одну страницу руководства пользователя и реализовать чтение/запись option bytes через дерганье этих регистров посредством SWD в соответствии с описанной в руководстве пользователя процедурой? Или я не понял вопроса? Или вы тут уже третью страницу глумитесь над человеком за то, что он не смог сам найти это описание процедуры записи/стирания? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 29 мая, 2021 Опубликовано 29 мая, 2021 · Жалоба 27.05.2021 в 18:46, Ioann_II сказал: Стал пробовать сделать своё, на базе проекта с гитхаба. Ссылку на проект можно? Там немало есть подобного, но всё, что перепробовал - недоделанное. 27.05.2021 в 20:05, jcxz сказал: Зачем лепить свой лисапед, если существует готовое решение от Segger (J-Link)? Необходимость хоста + м.б. лицензионные соображения (не всякий J-Link можно использовать для mass production). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 29 мая, 2021 Опубликовано 29 мая, 2021 · Жалоба 1 час назад, Harbinger сказал: Необходимость хоста + м.б. лицензионные соображения (не всякий J-Link можно использовать для mass production). Какого "хоста"? О чём вы? И что значит "нельзя использовать для mass production" если эта функция там есть? Для чего тогда там эта функция предусмотрена производителем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 29 мая, 2021 Опубликовано 29 мая, 2021 · Жалоба 1 час назад, Harbinger сказал: Ссылку на проект можно? Там немало есть подобного, но всё, что перепробовал - недоделанное. Необходимость хоста + м.б. лицензионные соображения (не всякий J-Link можно использовать для mass production). https://github.com/XIVN1987/DAPProg Алгоритмы программирования выдёргиваются из Keil, выдёргивалка тут https://github.com/mbedmicro/FlashAlgo Это тоже сырое. Но запустить удалось. Со сбросом целевого МК пришлось немного повозиться смотрите файл swd_host.c, там функции swd_set_target_state, надо проверять state не только на RUN, но и на RESET_RUN - тогда работает. И странно выглядит функция swd_set_target_reset и её вызовы. 10 часов назад, Сергей Борщ сказал: Я не знаю, как внутри работает SWD. Но знаю, что openocd позволяет через SWD читать/писать любые регистры... Тут не openocd... Пока не разобрался ещё, доступны ли эти регистры, хотя собирался попробовать. Как тут пишется во FLASH - пока не докопал. Может, не внимательно смотрел. Через регистры собирался попробовать. Кстати, какой документ вы показали на картинке? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 29 мая, 2021 Опубликовано 29 мая, 2021 · Жалоба 7 часов назад, Ioann_II сказал: https://github.com/XIVN1987/DAPProg Рассматривал. В итоге отказался. Сделал некий гибрид из freedap (автор - участник этого форума) и нувотоновского mass storage бутлоадера. Но тут задача автономии не стояла. 7 часов назад, jcxz сказал: Какого "хоста"? О чём вы? И что значит "нельзя использовать для mass production" если эта функция там есть? Компьютера. В качестве которого и смартфон может выступать. Функция-то есть, но недёшево стоит. Может, это странно звучит - но таки столкнулся с необходимостью полной лицензионной чистоты всего и вся. И если разработка успешно ведётся в бесплатной среде, то тратить $500 дополнительно на каждое рабочее место регулировщика (J-Link Base Compact) как-то не очень. При том, что и там лицензия кастрированная - полноценный J-Flash признавать не хочет, только Lite. Стоп... имеются в виду Flasher? Но они тоже как бы не копеечные. Ну и скорость работы - немаловажная штука. Сейчас сотворённый мной девайс прошивает 128 кБ в целевом МК примерно за 12 секунд. Это возмутительно долго для серийного производства, придётся таки задействовать flash loader в RAM. (4 Ioann_II). А силабсовскую AN1011 не рассматривали? Там, правда, сделано через одно место. Вместо того, чтобы прикинуться "флешкой" для загрузки образа прошивки, оно наоборот, выступает хостом и хочет внешнего накопителя. Но вроде это несложно пофиксить. Как вариант - можно плясать от DAPlink, сделать автономным его тоже можно. Но структура проекта, с точки зрения меня, дилетанта - удручает. Дня два разбирался, что там к чему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 29 мая, 2021 Опубликовано 29 мая, 2021 · Жалоба 9 часов назад, Ioann_II сказал: Тут не openocd... А какая разница? На втором конце шнурка все равно SWD. Если это может делать один инструмент - то же самое (теоретически) должен мочь и второй. 9 часов назад, Ioann_II сказал: Кстати, какой документ вы показали на картинке? Наверняка есть и более свежий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 30 мая, 2021 Опубликовано 30 мая, 2021 · Жалоба 19 часов назад, Harbinger сказал: Компьютера. В качестве которого и смартфон может выступать. Прочитайте название темы: "Автономный программатор". "Автономный" - это значит умеющий работать без компа/etc. По ссылкам, которые я приводил, есть документация (даже на русском). Прочитайте в ней раздел про "автономное программирование", как оно производится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ioann_II 0 30 мая, 2021 Опубликовано 30 мая, 2021 · Жалоба Да, jcxz, по Вашим ссылкам программатор, судя по описанию, умеет прошивать наш МК. Жаль, что мы пошли не по тому пути (не тот программатор попробовали), но поиск выдал OffProg-1. Может быть, попробуем теперь тот, что вы указали. Но на данном этапе начал пробовать сделать сам, и думаю довести до конечного результата. Ну, во всяком случае, должен сделать попытку. Что на данном этапе и делаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 30 мая, 2021 Опубликовано 30 мая, 2021 · Жалоба 7 часов назад, jcxz сказал: По ссылкам, которые я приводил, есть документация (даже на русском). Да понял, что речь о Flasher, дописал в предыдущем сообщении, а по одной из ссылок - недорогой клон его. Который автору темы м.б. подойдёт, а мне нет, по лицензионным соображениям. :( Чисто в техническом плане к JetLink нет претензий, на позапрошлой работе только их и использовали, там не столь строгий подход был. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doc.a13x 0 7 октября, 2021 Опубликовано 7 октября, 2021 · Жалоба 29.05.2021 в 09:25, Ioann_II сказал: https://github.com/XIVN1987/DAPProg Добрый день. Воспользовался этой библиотекой, но столкнулся со странной проблемой: я без проблем могу читать\шить F1 и F4 семейства. А вот с L0 не работает ( были проверены L052C8 и L073RZ. L4 для проверки нет...). Ввиду специфики будущего использования, предусмотрен HW сброс. Все алгоритмы вытягивал из Кейла. Сталкивались ли вы с такой странной проблемой? Судя по дебагу, ошибка происходит в самом начале, на моменте инициализации "target_flash_init()" ... if (0 == swd_flash_syscall_exec(&flash_algo.sys_call_s, flash_algo.init, flash_start, 0, 0, 0)) { return ERROR_INIT; } ... На этом моменте уже вылетает ERROR_INIT. Может есть идеи куда копать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugeNNe 0 13 февраля Опубликовано 13 февраля · Жалоба Озадачился девайсом для автономной прошивки МК STM32. На Али Экспрессе приобрёл девайс показанный на картинке. Как пользоваться не совсем понятно. В Винде определяется как USB-устройство Luele.CMSIS-DAP. Keil его тоже видит как Luele.CMSIS-DAP. При попытке что то загрузить в чип в Keil ничего не происходит. Пишет что не обнаруживает SWD-девайса. Как использовать эту штуку в качестве офф-лайн загрузчика тоже не понятно. Может кто пользовал такой девайс. Расскажите что к чему... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 13 февраля Опубликовано 13 февраля (изменено) · Жалоба 5 часов назад, EugeNNe сказал: Как использовать эту штуку в качестве офф-лайн загрузчика тоже не понятно. А откуда такая уверенность, что оно это может? Китаезы нарисовать на коробочке могут что угодно, как на заборе))) Вскройте его, может там обычный МК без доп памяти стоит и работает, как простой USB-JTAG... Типа такого - https://aliexpress.ru/item/1005001376821868.html?sku_id=12000016385698710 Изменено 13 февраля пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugeNNe 0 13 февраля Опубликовано 13 февраля (изменено) · Жалоба 42 минуты назад, mantech сказал: А откуда такая уверенность, что оно это может? Китаезы нарисовать на коробочке могут что угодно, как на заборе))) Вскройте его, может там обычный МК без доп памяти стоит и работает, как простой USB-JTAG... Типа такого - https://aliexpress.ru/item/1005001376821868.html?sku_id=12000016385698710 Вроде как в описании обещают... https://aliexpress.ru/item/1005004442741480.html?sku_id=12000029195377928). Но вот выясняется что ПО надо под эту штуку, которое непросто раздобыть оказывается. А тот на который Вы ссылку привели, у меня имеется в инструментах. Вполне себе работает. Изменено 13 февраля пользователем EugeNNe Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 13 февраля Опубликовано 13 февраля · Жалоба 9 минут назад, EugeNNe сказал: Но вот выясняется что ПО надо под эту штуку, которое непросто раздобыть оказывается. Вот интересно, т.е. чтобы работать автономно, ему нужен комп с ПО?)) И что за "автономность" получается? Автономный в моем понимании, подключил к компу, залил прошивку или неск. прошивок, отключил, принес к устройству, запитался от него или батарейки встроенной, нажал кнопочку "прошить", там что-то замигало, потом загорелось зеленое - ок или красное ошибка, вот это автономность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasily_ 54 13 февраля Опубликовано 13 февраля · Жалоба 8 часов назад, EugeNNe сказал: Озадачился девайсом для автономной прошивки МК STM32. https://jet-link.ru/ Или как то так http://zdevs.ru/ru/zf-stm/user_guide.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться