Перейти к содержанию
    

Можно ли прошить STM32 по SWD с андроид телефона?

Можно ли прошить STM32 по SWD с андроид телефона?

Есть програматор versaloon, с компа через openocd все шьется. Есть желание делать то же самое с андроид телефона, лень бук в поля тащить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не ставит защиту от чтения. Прошил zflash защиту поставил stlinkp.

Изменено пользователем viakon

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, viakon сказал:

Не ставит защиту от чтения.

А у вас софт сам себя не закрывает? Сочувствую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Vasily_ said:

А у вас софт сам себя не закрывает? Сочувствую.

Защита ставится при программировании, как-то так сложилось. А с телефона прошивка, чтоб в поля ноутбук не тащить. Вариант с автоустановкой защиты хорош. А есть флаг какой, чтоб программа знала что идет отладка и не ставила защиту? Или только компиляциями DEBUG RELEASE. Т.е. если есть подключение по swd, то не ставить защиту, если нет, то ставить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

46 минут назад, viakon сказал:

А есть флаг какой, чтоб программа знала что идет отладка и не ставила защиту?

Не разбирался, проще вручную вырубить когда нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/16/2019 at 12:48 PM, viakon said:

А есть флаг какой, чтоб программа знала что идет отладка и не ставила защиту?

C_DEBUGEN

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0337e/CEGCJAHJ.html

Но у меня руки не дошли проверить...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/16/2019 at 12:48 PM, viakon said:

А есть флаг какой, чтоб программа знала что идет отладка и не ставила защиту?

Флаг есть, но все ровно будет не удобно. Проблема в том что как только вы запустили прошивку без отладочной сессии(а во время разработки на столе такое может легко произойти), прошивка включит защиту и чтобы потом что то отдебажить придется заново все стирать и прошивать, да работать можно но удобнее иметь две сборки (DEBUG\RELEASE) или отдельную команду на установку защиты.

 

bool bsp_is_debug_session(void) {

    return (CoreDebug->DHCSR & CoreDebug_DHCSR_C_DEBUGEN_Msk) == 0U ? false : true;
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

debug/release хорошо, но можно в один прекрасный момент вместо релиза прошить дебаг и все, защиты нет.  Тогда уж ставить защиту и в проге и программатором.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 часов назад, Integro сказал:

Флаг есть, но все ровно будет не удобно. Проблема в том что как только вы запустили прошивку без отладочной сессии(а во время разработки на столе такое может легко произойти), прошивка включит защиту и чтобы потом что то отдебажить придется заново все стирать и прошивать, да работать можно но удобнее иметь две сборки (DEBUG\RELEASE) или отдельную команду на установку защиты.

ИМХО, работая с Debug или Release версиями, автоблокировка чтения должна быть и там, и там. И ставиться при отсутствии подключения отладчика (битом C_DEBUGEN).

 

Я бы сделал так:

1. После старта программы проверяем C_DEBUGEN. Если он в 1, значит подключен отладчик. Снимаем защиту от чтения (при понижении уровня защиты с 1 на 0 произойдет автоматическое стирание Flash). Теперь можно работать под отладчиком, можно прошивать/стирать/читать, отлаживать либо тупо прошить и запустить.

2. Если же C_DEBUGEN все-таки в 0, то наоборот, ставим защиту от чтения в уровень 1.

Естественно, перед снятием/установкой Option Bytes в области Readout Protection нужно убедиться, что защита уже не снята/поставлена, чтобы не делать лишних операций по программированию регистров. Благо они Read-accessible.

 

Таким образом, при подключении программатора злоумышленник не сможет прочитать прошивку, а сможет только изменить ее полностью. Устройство поддается прошивке и отладке на столе, и не нужно заботиться о ручной установке защиты. При отключении программатора устройство автоматически устанавливает защиту от чтения, поэтому при следующем подключении программатора устройство автоматически сотрет свою Flash.

Безопасность превыше всего!:buba:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 minutes ago, Arlleex said:

ИМХО, работая с Debug или Release версиями, автоблокировка чтения должна быть и там, и там

Чем тогда по Вашему должны отличаться Release и Debug сборки, уровнем оптимизации? Наличием логов? Все это, наверняка сделано для личного удобства, для того чтобы Вам было удобно работать! А mass erase при отладке только отнимает удобство. Например:
 - Напомню, флеш контроллера может содержать какие либо пользовательские настройки, потеря которых может свести повторяемость бага на "не могу воспроизвести баг"!
 - Кроме того, флеш контроллера может иметь логическое разделение на регионы например под бутлодер или буфер констант типа шрифтов или картинок, которые прошиваются отдельно, не из текущего проекта.
 - Используя данный функционал, Вы теряете возможность подключится отладчиком "на лету", я лично часто использую данную фичу.

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

И так, если у вас простой проект и вы можете тестировать данное устройство не отключая его от отладчика, то подход @Arlleex имеет право на жизнь, в противном случае, это трата времени и нервов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 22.01.2019 в 09:16, Arlleex сказал:

Я бы сделал так:

поделитесь пожалуйста кодом если есть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...