Удаление прошивки програмным путем

chervyachok
chervyachok аватар
Offline
Зарегистрирован: 22.12.2011

 Подскажыте, есть ли метод удаления прошивки (залитого скетча) из памяти. Тоесть функция которую можно вставить в код программы и которая при вызове очищала бы флеш (не епром) память и завершала работу мк. Ну и естественно чтоб после резета ничего не происходило. 

zhuki
Offline
Зарегистрирован: 12.10.2011

Очистить флеш память или после ресета ничего не происходит?. Как будете вызывать функцию?

Представьте себе функцию которая работает как киллер и самоубийца.

chervyachok
chervyachok аватар
Offline
Зарегистрирован: 22.12.2011

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

Мож кто знает как ето сделать или натыкался на подобное в нете.

Или на крайняк тупо очистить флеш каким то способом.

fiberline
Offline
Зарегистрирован: 07.04.2012

Если после такой очистки МК уже не нужен "заметаем следы" то лучшим вариантом будет встроить в код управление каким нибудь реле которое при срабатывании подаст например 12 вольт (или больше если есть) на заранее определённые выводы МК, при управлении реле нужно использовать схему включения самоблокировки реле.

Starpom
Offline
Зарегистрирован: 06.03.2011

 Возникают две идеи.

- мудрить с bootloader что-то

- подключать вторую Arduino, дергать ресет на первой и лить новый, пустой скетч.

RANDREY
Offline
Зарегистрирован: 10.06.2012

подавать с помощью реле питание на все ноги - сжечь... 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Почему нельзя обращаться?

1. Записать в EPROM набор набор байт подлиннее.

2. При старте программы сравнить EPROM и работать если совпало содержимое.

3. Когда надо - просто стереть EPROM

(Естественно выставить LOCK BITS на процессор)

И после рестарта можно даже долго и нудно пищать бузером...

А программу пусть стирает тот, кому понадобится кусок железа-процессор.

Можно его даже опустить (или поднять?) до уровня параллельного программирования запретив ресет и режим ISP .

 

Ну и в качестве совсем изуитской меры- поставить в корпус прибора фоторезистор на ножку процессора.

Откроет кто-то крышку на ярком свету- последствия описаны выше...

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Ну прям иезуиты все :)

Процессоры АВР поддерживают режим самопрограммирования (тут за подробностями - в даташит :) )

Бутлодырь - яркий пример программы, которая программирует флеш. Ничего сложного в том, чтобы стереть програму нет, есть сложность стереть стиратель :)

chervyachok
chervyachok аватар
Offline
Зарегистрирован: 22.12.2011

AlexFisher пишет:

Бутлодырь - яркий пример программы, которая программирует флеш. 

Логично! Спасибо что подсказали в какую сторону двигатся, сам как то не сообразил.

RANDREY
Offline
Зарегистрирован: 10.06.2012

возможно ли запускать кусок кода в оперативной памяти:?

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

в результате чистый флеш и чистая оперативка) обозвать скрипт HackZoneArduino) 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

RANDREY пишет:

возможно ли запускать кусок кода в оперативной памяти:?

 

Хитренький какой ;) Это тебе не STM, здесь нет единого адресного пространства, а оперативка - суть набор регистров.

Но есть ардуино и на STM32

RANDREY
Offline
Зарегистрирован: 10.06.2012

так левую оперативку присобачить и передать управление её, на асем. jmp ram,1024

 

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Ну... это уже будет специальная версия ардунины, писать придется на асме или на gcc... кажется это немножко выходит за рамки "создать скетч для адуино"

По-моему, будет достаточно програмно стереть критичный блок программы, можно еще бутлодырь потететь. И перед применением установить бит защиты программы через ICP-разъем программатором. Тогда и работать перестанет, и не прочитать ничего.

RANDREY
Offline
Зарегистрирован: 10.06.2012

может быть, хотя не понимаю почему назвали СКЕТЧ, а не программа, или прошивка,

как-то не обычно звучит. Хотя я пока не пишу под ардуино, хочу мегу взять. Пока есть 2 мотор-шилда, пытаюсь их с ЛПТ порта запустить. И изучаю руководства. Виртуальные проги (для кода и для самоделок шилдов)

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Все просто. Используется "местная" терминология в рамках используемого IDE. Смысл в том, чтобы использовать лайфрей ардуино (железяку и прилагаемые IDE и библиотеки) - максимально упрощенная для пользователя система, удобная для человека, плохо знакомого с программированием. Тут даже отладка не предусмотрена :)