Прошивка arduino по радио: подготовка кода к отправке

osetroff
Offline
Зарегистрирован: 27.08.2014

День добрый!

Поскольку перепрошивать через провод десятки ардуин лень, запилил вчера из интернета код в optiboot загрузчик, позволяющий писать программе во флеш, т.е. перезаписывать программу "на лету".

Поскольку,все заработало с первого раза, на повестке следующий пункт: подготовка кода к отправке.

Т.е. нужно придумать, как удобно (!) вырезать из прошивки ту часть, которую нужно отправить по радио.

Желательно, чтобы часть кода, ответственную за загрузку по радио и запись во флеш, не переписывалась никогда. Чтобы при сбое питания, arduino снова перешел к ожиданию загрузки по радио.

Пока не придумал ничего путного.

В моем atmega328p страница флеша составляет 128 байт.

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

Но вот как это все организовать?

Наверное, начну с дезассемблирования и попыток понять как зафиксировать кусок кода во флеше по конкретным адресам.

 

 

 

osetroff
Offline
Зарегистрирован: 27.08.2014

Пока нашел загрузчик optiboot с заливкой флеша по nrf24l01+ без шифрования тут.

toc
Offline
Зарегистрирован: 09.02.2013

1. спасибо за ссылку
https://github.com/balrog-kun/optiboot/blob/master/README.md

2. там написано, что после настройки процесс прошивки почти не отличается от обычного в среде Ардуино.
Так что загрузчик отвечает за правильность прошивки, вычислять вручную блоки не нужно. Загрузчик не может затереть себя.

3. зачем "дизассемблировать"? исходники же все доступны.

osetroff
Offline
Зарегистрирован: 27.08.2014

1. пожалуйста.

2.мне нужно прошивать по своему протоколу, незачем stk500 повторять. При этом, по-простому хочу шифровать.

Взял за основу. Пока отлаживаю между двух ардуин. Как отлажу - запихну полученное в optiboot. Съест 2Кб флеша.

3.Да, дезассемблировать уже не актуально. Пока смотрел ассемблер в lst, увидел как неоптимально выглядит мой код :(

toc
Offline
Зарегистрирован: 09.02.2013

3. Да вы эстет.
4. Я как-то видел документ от атмел о расшировке и проверке подписи прошивки в бутлоадере. Посмотрите.
5. Читал на одном форуме, о защите, есть либа вроде aeslib
6. Накой свой протокол? Будет ли он лучше?

osetroff
Offline
Зарегистрирован: 27.08.2014

3. да, знаю, беда. после просмотра фильма das boot (когда после всего пережитого солдаты по-глупому погибли по прибытию), получаю удовольствие от того, что делаю. иначе, высок риск прожить в мужских пустых трудах на благо обманщикам и паразитам:)

5.знаю, но там фиксир длина пакета, а мне нужно переменную, чтобы не лучить всех зазря.

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

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