MKdemiurg 1 22 июня, 2023 Опубликовано 22 июня, 2023 · Жалоба Здравствуйте. Вопрос, как можно прошить STM32F без STLink через SWD. Может есть какие то готовые решения на Python ? Задача простая - прошить одним контроллером c Linux другой Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 22 июня, 2023 Опубликовано 22 июня, 2023 · Жалоба OpenOCD + linuxgpiod? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 22 июня, 2023 Опубликовано 22 июня, 2023 · Жалоба 38 minutes ago, MKdemiurg said: Здравствуйте. Вопрос, как можно прошить STM32F без STLink через SWD. Может есть какие то готовые решения на Python ? Задача простая - прошить одним контроллером c Linux другой Ответ https://support.google.com/websearch/answer/134479?hl=ru https://www.pcbway.com/blog/technology/OpenOCD_on_Raspberry_Pi__Better_with_SWD_on_SPI.html https://codensolder.com/blog/rip-swd-programmer Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EdgeAligned 79 23 июня, 2023 Опубликовано 23 июня, 2023 · Жалоба Во-первых, микроконтроллер можно прошить через UART, переведяе го в режим запуска системного загрузчика (ножка Boot0). Во-вторых, можно раскопать на st.com документацию по SWD и написать самостоятельно прошивальщик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 23 июня, 2023 Опубликовано 23 июня, 2023 · Жалоба От участника этого же форума. 7 часов назад, EdgeAligned сказал: Во-вторых, можно раскопать на st.com документацию по SWD На arm.com, собственно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 6 июля, 2023 Опубликовано 6 июля, 2023 · Жалоба On 6/23/2023 at 9:33 PM, Harbinger said: От участника этого же форума. На arm.com, собственно. о, благодарю . Я ж так понимаю, что все Cortex поддерживают CMSIS-DAP, включая китайские GD32 и AD32 ? Это же модуль ядра? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_3m 7 7 июля, 2023 Опубликовано 7 июля, 2023 · Жалоба 16 часов назад, MKdemiurg сказал: Я ж так понимаю, что все Cortex поддерживают CMSIS-DAP, включая китайские GD32 и AD32 ? Это же модуль ядра? Отладчик это модуль ядра. Прошивкой он не занимается. Флэш прошивается либо путем загрузки небольшого кода прошивальщика в RAM либо манипулированием регистрами контроллера флэш через отладчик. У каждой модели МК свой собственный алгоритм прошивки, это никак не стандартизировано ARM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 13 июля, 2023 Опубликовано 13 июля, 2023 · Жалоба On 7/7/2023 at 1:03 PM, _3m said: Отладчик это модуль ядра. Прошивкой он не занимается. Флэш прошивается либо путем загрузки небольшого кода прошивальщика в RAM либо манипулированием регистрами контроллера флэш через отладчик. У каждой модели МК свой собственный алгоритм прошивки, это никак не стандартизировано ARM. Это понятно. Вопрос в унификации DAP интерфейса. Я же шью GD32 как STM32 - значит сам интерфейс то унифицирован, а разница только в периферии? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 13 июля, 2023 Опубликовано 13 июля, 2023 · Жалоба 1 hour ago, MKdemiurg said: Вопрос в унификации DAP интерфейса. Когда-то давным-давно я использовал вышеупомянутый код Алекса для прошивки NRF52. А он его под Atmel'овские кортексы писал. Так что да, SWD довольно стандартный. Проблема, правда, в том, что SWD ногодрыгом получается довольно медленный. Я в итоге сделал микро-загрузчик, который SWD пишет в RAM, а вся основная прошивка передаётся по UART. Какая магия используется в JLink / STLink, я не разбирался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 18 июля, 2023 Опубликовано 18 июля, 2023 · Жалоба В 13.07.2023 в 11:29, esaulenka сказал: Проблема, правда, в том, что SWD ногодрыгом получается довольно медленный. Я в итоге сделал микро-загрузчик, который SWD пишет в RAM, а вся основная прошивка передаётся по UART. Там проблема не в ногодрыге как таковом, а в многократном обращении по SWD к регистрам контроллера FLASH. В J-Link и полноценном CMSIS-DAP это обходят похожим образом - Flashloader пишется в RAM и обращается к регистрам непосредственно. По SWD только команды и данные получает. В 13.07.2023 в 11:29, esaulenka сказал: Какая магия используется в JLink / STLink, я не разбирался. Попытался с помощью Ghidra, но забросил - времени на это баловство порядочно нужно. ST-Link с виду проще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 19 июля, 2023 Опубликовано 19 июля, 2023 · Жалоба После разбирательств с OpenOCD выяснил следующее. Можно использовать готовые интерфейсы системных вызовов Linux. sysfsgpio linuxgpiod Но возник вопрос...А что такое remote BitBang в OpenOCD? https://github.com/openocd-org/openocd/blob/master/contrib/remote_bitbang/remote_bitbang_sysfsgpio.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 19 июля, 2023 Опубликовано 19 июля, 2023 · Жалоба 2 hours ago, MKdemiurg said: А что такое remote BitBang в OpenOCD? Удалённое махание ногами (BitBang) через внешний сервер (программу) через TCP. Используется с реально удалёнными железками и с симуляторами (Spike в частности использует) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MKdemiurg 1 19 июля, 2023 Опубликовано 19 июля, 2023 · Жалоба 39 minutes ago, xvr said: Удалённое махание ногами (BitBang) через внешний сервер (программу) через TCP. Используется с реально удалёнными железками и с симуляторами (Spike в частности использует) Это чтото типа TCP канала на JLINKе ? А ещё вопрос . Для использования linuxgpiod - мне достаточно переопределить ноги в dln-2-gpiod.cfg интерфейсе OpenOCD ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 19 июля, 2023 Опубликовано 19 июля, 2023 · Жалоба 8 minutes ago, MKdemiurg said: Это чтото типа TCP канала на JLINKе ? Я не в курсе, что такое 'TCP канала на JLINKе', а этот работает так: 1. Там, где подключена желеэка для програмирования (или отладки) запускается специальный сервер, который как раз заведует физическими проводами. 2. Отдельно запускается OpenOCD и ему дают IP адрес (и порт) сервера из п1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться