HardEgor 80 10 февраля, 2018 Опубликовано 10 февраля, 2018 · Жалоба Где взять описание алгоритма SWD? Увидел я тут датчик BMF055 от BOSCH. Внутри Cortex-M0, для программирования используется SWD, корпус 3x4 мм - разъем для программирования получается больше процессора. Но на плате всяко будет какой-нибудь управляющий контроллер, который сможет залить прошивку в BMF055. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 10 февраля, 2018 Опубликовано 10 февраля, 2018 (изменено) · Жалоба Большая часть описана в IHI0031A_ARM_debug_interface_v5.pdf Если хочется готовый код, то у меня есть пара проектов в тему. Первый - https://github.com/ataradov/free-dap - это реализация CMSIS-DAP отладчика, что включает реализацию SWD. И второй - https://github.com/ataradov/edbg - это CMSIS-DAP программатор для МК от Atmel, но предварительные шаги одинаковые для всех, а конкретный алгоритм программирования нудно будет поменять под этот МК. У меня где-то еще есть более интегрированная версия, но я ее не могу найти сейчас. Если найду - опубликую тоже. Изменено 10 февраля, 2018 пользователем ataradov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 80 10 февраля, 2018 Опубликовано 10 февраля, 2018 · Жалоба О, спасибо! Более новая версия ARM Debug Interface Architecture Specification ADIv5.0 to ADIv5.2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 13 февраля, 2018 Опубликовано 13 февраля, 2018 · Жалоба Вот нашел реализацию более готовую к прямому применению. Пример программирует Atmel SAM D21 через SWD. embedded_swd.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mcheb 0 13 февраля, 2018 Опубликовано 13 февраля, 2018 · Жалоба Где взять описание алгоритма SWD? Я этим пользовался Serial_Wire_Debug.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 17 июля, 2019 Опубликовано 17 июля, 2019 · Жалоба Подниму тему. Сходу не смог разобраться, как читать-писать регистры контроллера. Задача: мелкий cortex-m через SWD подключен к "большому". Необходимо загрузить в RAM некий кусок кода и передать ему управление. Первая часть задачи готова (большое спасибо Александру (Алексею?) Тарадову - freedap работает и довольно быстро портируется). А вот дальше - проблемы: готовых примеров не вижу, описание ADI какое-то мутное (детально прописано, что это такое, но как оно сопрягается с ядром, я не разобрался)... UPDATE. А всё потому, что обращение к регистрам ядра там ооочень непрямое. Спасибо Energy Micro за документ и mcheb за ссылку. Код из приложения к AN0062: /********************************************************** * Writes a value to a CPU register in the target. * * @param reg * The register number to write to * * @param value * The value to write to the register **********************************************************/ void writeCpuReg(int reg, uint32_t value) { /* Wait until debug register is ready to accept new data */ waitForRegReady(); /* Write value to Data Register */ writeAP(AP_TAR, (uint32_t)&(CoreDebug->DCRDR)); writeAP(AP_DRW, value); /* Write register number ot Selector Register. * This will update the CPU register */ writeAP(AP_TAR, (uint32_t)&(CoreDebug->DCRSR)); writeAP(AP_DRW, 0x10000 | reg); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MasterElectric 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба esaulenka Можно вопрос, если мы заняли интерфейс отладки для подключения к другому МК, то отлаживать уже никак не выйдет? только через USART. Я хотел бы вторым МК мониторить состояние некоторых переменных и принимать сообщения RTT. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 18 minutes ago, MasterElectric said: esaulenka Можно вопрос, если мы заняли интерфейс отладки для подключения к другому МК, то отлаживать уже никак не выйдет? только через USART. Я хотел бы вторым МК мониторить состояние некоторых переменных и принимать сообщения RTT. Я занимаю интерфейс только во время обновления прошивки. В этот момент - да, отладчик не работает (и я не проверял, будет ли в принципе работать обновление с подключенным отладчиком). Всё остальное время ноги хост-контроллера в z-state, и отладке особо не мешают (только как дополнительная нагрузка, разве что). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MasterElectric 0 18 июля, 2019 Опубликовано 18 июля, 2019 (изменено) · Жалоба esaulenka почему-то вначале подумал что подключаемся к SWD хоста, а там ногодрыг. А у вас STM32, вы портировали работу с DAP? Не поделитесь? (Собираюсь портировать силабсовский пример) Изменено 18 июля, 2019 пользователем MasterElectric Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба 2 hours ago, MasterElectric said: esaulenka почему-то вначале подумал что подключаемся к SWD хоста, а там ногодрыг. А у вас STM32, вы портировали работу с DAP? Не поделитесь? (Собираюсь портировать силабсовский пример) Хост - STM, девайс - NRF. В качестве отправной точки брал https://github.com/adafruit/Adafruit_DAP, а они, в свою очередь, взяли реализацию у Алекса Тарадова. Я оттуда выкинул к чертям промежуточный уровень (сложить в буфер команду, а потом сразу же разобрать). Портирование собственно на STM примитивное - там требуются только функции "установить вход/выход", "установить 0/1", "прочитать" для трёх ножек. Выкладывать, пожалуй, не буду - это я на работе делал... И, да, надо сразу настраиваться, что оно медленное. Я уж не знаю, как устроен JFlash, но пара сотен кило зашивается две минуты. Вот, собственно, и собираюсь переделать - загружать этим методом в ОЗУ пару килобайт загрузчика, а дальше по UART'у... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 55 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба Вызвать System Bootloader и потом через UART (протокол известен и реализован) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MasterElectric 0 18 июля, 2019 Опубликовано 18 июля, 2019 · Жалоба esaulenka Спасибо за информацию! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться