реклама на сайте
подробности

 
 
6 страниц V  « < 2 3 4 5 6 >  
Reply to this topicStart new topic
> stm32F10x- защита от чтения , использование flash как eeprom и собственный бутлоадер, нюансы реализации.
Aner
сообщение Apr 19 2013, 15:51
Сообщение #46


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



QUOTE (k000858 @ Apr 19 2013, 17:34) *
загрузчик у меня уже написан, все работает, прошивку принимает по TFTP, вопросы остались только по битам защиты и криптованию

... по TFTP я не подписался, из-за отсутствия проверок, низкой надежности. Он же совсем маленький, ну ...для AVR может и подойдет,
ресурсов мало, но не для ARM.


QUOTE (PoReX @ Apr 19 2013, 17:43) *
Например, у нас для таких целей будет сервер, висящий в интернете, т.к. устройства могут находиться даже в другой стране. Получается если bootloader узрел в прошивке неладное, то конектится к серверу и тянет нужную прошивку.

Что у вас за стеки такие? У меня bootloader с uip стеком весит 17кБ и при этом умеет отзываться по UDP, перепрошиваться по TCP, получать IP по DHCP и получать IP сервера по его имени от DNS.

У вас могут быть проблемы. 1) Нужен всё время сервер, накладно. 2) Из-за проблем в инете ваше устройство может некоторое или все время находиться в режиме bootloader_а. 3) В это время оно не будет функционировать.
А вот моё выкачивает абдейт, не прекращая работу, и перешивается за короткое время, еще использую внешнюю память, LwIP, поскольку еще и WEB сервер нужен.

QUOTE (Serj78 @ Apr 19 2013, 18:04) *
Я усматриваю тут "подводный камень"
1. Если мы не завершили программирование и загрузчик еще не установил бит защиты от чтения - и сняли питание- программа у нас почти зашита, а бит защиты от чтения- нет.

Нет, по другому, почитайте внимательнее об этой процедуре в Datasheet.
Вами писаный загрузчик под коде-протектом все время. Коде-протект можно стереть вместе со всей программой только. Запись во внутреннюю флешь происходит из вашего загрузчика. Защита от записи/чтения во флешь это другая отдельная процедура, с коде-протектом не связана!

QUOTE (Serj78 @ Apr 19 2013, 18:04) *
2. встроенным загрузчиком кажется, можно стирать память постранично- это работает в случае установленного бита защиты от чтения?

записать какой либо кусок встроенным загрузчиком после записи бита защиты от чтения, получается, нельзя- это потенциальные ворота для ввоза троянского коня..

можно записать во флешь при коде-протектнутом чипе, если программа загрузчика позволяет. Но может и запретить, через определенное время, если кому то это нужно.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Apr 19 2013, 17:24
Сообщение #47


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Golikov A., Aner, предупреждаю обоих последний раз о недопустимости перехода на личности.
Модератор.
Go to the top of the page
 
+Quote Post
Allregia
сообщение Apr 20 2013, 10:12
Сообщение #48


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Народ, сорри за дурацкий вопрос - а чем вы далете исходный файлдля загрузчика (Перед криптованием)?
Я всегда пользовался hex2bin.exe, но на хексы от Кейла для стм32ф4 он ругается. Может он у меня посто старый (95г)?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 20 2013, 10:59
Сообщение #49


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Allregia @ Apr 20 2013, 13:12) *
Народ, сорри за дурацкий вопрос - а чем вы далете исходный файлдля загрузчика (Перед криптованием)?
Криптующая программа кушает прямо hex.
QUOTE (Allregia @ Apr 20 2013, 13:12) *
Я всегда пользовался hex2bin.exe, но на хексы от Кейла для стм32ф4 он ругается. Может он у меня посто старый (95г)?
Возможно проблема в том, что программа расположена с адреса 0x0800xxxx и утилите не хватает памяти? Страшно даже представить размер .bin из такого .hex


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Petka
сообщение Apr 20 2013, 11:44
Сообщение #50


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(Allregia @ Apr 20 2013, 14:12) *
Народ, сорри за дурацкий вопрос - а чем вы делаете исходный файл для загрузчика (Перед криптованием)?
...

srec-cat:
http://srecord.sourceforge.net/
Go to the top of the page
 
+Quote Post
Allregia
сообщение Apr 20 2013, 15:15
Сообщение #51


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(Petka @ Apr 20 2013, 13:44) *


Спасибо, но как этим пользоваться я не понял - эти юниксоиды вечно пишут неюзабельные программы sad.gif
Наверное таки проще будет хекс грузить в свою программу криптования.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Apr 20 2013, 16:11
Сообщение #52


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Allregia @ Apr 20 2013, 18:15) *
Наверное таки проще будет хекс грузить в свою программу криптования.

Проще всё-таки bin грузить.
Go to the top of the page
 
+Quote Post
PoReX
сообщение Apr 20 2013, 19:01
Сообщение #53


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518



Цитата(Aner @ Apr 19 2013, 19:51) *
У вас могут быть проблемы. 1) Нужен всё время сервер, накладно. 2) Из-за проблем в инете ваше устройство может некоторое или все время находиться в режиме bootloader_а. 3) В это время оно не будет функционировать.
А вот моё выкачивает абдейт, не прекращая работу, и перешивается за короткое время, еще использую внешнюю память, LwIP, поскольку еще и WEB сервер нужен.

1) Сервер есть всегда, т.к. он выполняет не только функцию обновления прошивок. Как у вас происходит удаленная перепрошивка? Сервера нет?
2) Да, есть такой минус. Поэтому в следующей версии запланирована возможность загрузки прошивки основной программой.
А теперь представьте, что вы выкачали новую прошивку, перепрошились и в ней оказался баг, из-за которого невозможно обновлять прошивки. Что делать в такой ситуации, если, на сколько я понял, ваш boot loader не умеет обновляться по интернету/ethernet'у.

Цитата(Allregia @ Apr 20 2013, 14:12) *
Народ, сорри за дурацкий вопрос - а чем вы далете исходный файлдля загрузчика (Перед криптованием)?
Я всегда пользовался hex2bin.exe, но на хексы от Кейла для стм32ф4 он ругается. Может он у меня посто старый (95г)?

Для создания бинарников использую стандартную кейловскую утилиту - fromelf.


--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Go to the top of the page
 
+Quote Post
Allregia
сообщение Apr 20 2013, 19:43
Сообщение #54


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(PoReX @ Apr 20 2013, 21:01) *
Для создания бинарников использую стандартную кейловскую утилиту - fromelf.


О, слона-то я и не приметил! То что надо, спасибо!

И вызывается в User Run: fromelf.exe --bin --output "@L.bin" "#L"
Go to the top of the page
 
+Quote Post
Aner
сообщение Apr 20 2013, 21:58
Сообщение #55


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



QUOTE (PoReX @ Apr 20 2013, 22:01) *
1) Сервер есть всегда, т.к. он выполняет не только функцию обновления прошивок. Как у вас происходит удаленная перепрошивка? Сервера нет?

Я же писал, поддержен WEB и по HTTP, абдейт в ручном и автоматическом режиме. В проекте не было необходимости программе следить за абдейтами на сервере в непрерывном режиме. Всё же инет не столь надежная штуковина.

QUOTE (PoReX @ Apr 20 2013, 22:01) *
2) Да, есть такой минус. Поэтому в следующей версии запланирована возможность загрузки прошивки основной программой.
А теперь представьте, что вы выкачали новую прошивку, перепрошились и в ней оказался баг, из-за которого невозможно обновлять прошивки. Что делать в такой ситуации, если, на сколько я понял, ваш boot loader не умеет обновляться по интернету/ethernet'у.

Если сами пишите софт на C/C++ для ARM, то какую то нереальную представлялку пишите. Допустить такой баг можно в начале пути или по неопытности. Но есть тестовые устройства на которых делается прогон, контроль новой прошивки. Только затем абдейт. Обычно в новой добавляется какой либо функционал не влияющий на режим перехода в загрузчик.
Мои загрузчики умеют по UDP, TCP/IP, HTTP еще может и по USB, RS, CAN, I2C. Много было разных проектов с собственными загрузчиками на STM32Fxx у всех свои особенности.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 21 2013, 12:15
Сообщение #56


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(kolobok0 @ Apr 18 2013, 19:19) *
о как. а более подробно не осветите аспект?
А тут и освещать-то нечего.
Прислали платку с производства уже зашитую и залоченную.
Я с ней пык-мык - не шьётся... Но стирается и чип прекрасно виден jlink'ом.
При этом в среде keil нет никаких возможностей для снятия лока.
Почитал доку на jlink - и всё решилось за 1 сек при помощи утилиты j-flash.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Aner
сообщение Apr 21 2013, 13:42
Сообщение #57


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Чип прекрасно виден jlink'ом и стирается. Это так, поскольку только доступ отладочных средств и программаторов закрыт. Во всех средах нет, по крайней мере я не нашёл из того что описано и доступно. Поскольку проц виден jlink_ом, и есть его исходники, можно предположить как открыть
проц не стирая программу. Снятие защиты и стирание флеша делается ~ следующим образом: 1) стирается сам флеш 2) затем тот самый байт защиты. Если пропустить, не дать выполниться 1), то второе снимит защиту и проц прочитается. Не проверял, работаетли это или есть защита и от этого.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Apr 21 2013, 14:09
Сообщение #58


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(Aner @ Apr 21 2013, 17:42) *
Снятие защиты и стирание флеша делается ~ следующим образом: 1) стирается сам флеш 2) затем тот самый байт защиты. Если пропустить, не дать выполниться 1), то второе снимит защиту и проц прочитается. Не проверял, работаетли это или есть защита и от этого.


Это не работает, читайте доку... При снятии защиты от чтения флеш будет автоматически стерт.
Go to the top of the page
 
+Quote Post
Aner
сообщение Apr 21 2013, 14:29
Сообщение #59


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Дока -докой. А сам механиз защиты там софтовый и во флеше живёт. demiurg_spb же пишет ... и всё решилось.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 21 2013, 14:44
Сообщение #60


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



а вы не предполагаете что байт защиты стирается после окончания стирания флэш?
то есть когда вы стираете байт защиты сначала стирается флэш, потом байт защиты.
Дергай питания не дергай, в итоге либо байт защиты стоит, либо флэши нет...
Go to the top of the page
 
+Quote Post

6 страниц V  « < 2 3 4 5 6 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th July 2025 - 20:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01497 секунд с 7
ELECTRONIX ©2004-2016