Прошивка arduino по радио: подготовка кода к отправке
- Войдите на сайт для отправки комментариев
День добрый!
Поскольку перепрошивать через провод десятки ардуин лень, запилил вчера из интернета код в optiboot загрузчик, позволяющий писать программе во флеш, т.е. перезаписывать программу "на лету".
Поскольку,все заработало с первого раза, на повестке следующий пункт: подготовка кода к отправке.
Т.е. нужно придумать, как удобно (!) вырезать из прошивки ту часть, которую нужно отправить по радио.
Желательно, чтобы часть кода, ответственную за загрузку по радио и запись во флеш, не переписывалась никогда. Чтобы при сбое питания, arduino снова перешел к ожиданию загрузки по радио.
Пока не придумал ничего путного.
В моем atmega328p страница флеша составляет 128 байт.
Могу записывать в любое место, избегая записи туда, где размещена загрузка с радио.
Но вот как это все организовать?
Наверное, начну с дезассемблирования и попыток понять как зафиксировать кусок кода во флеше по конкретным адресам.
Пока нашел загрузчик optiboot с заливкой флеша по nrf24l01+ без шифрования тут.
1. спасибо за ссылку
https://github.com/balrog-kun/optiboot/blob/master/README.md
2. там написано, что после настройки процесс прошивки почти не отличается от обычного в среде Ардуино.
Так что загрузчик отвечает за правильность прошивки, вычислять вручную блоки не нужно. Загрузчик не может затереть себя.
3. зачем "дизассемблировать"? исходники же все доступны.
1. пожалуйста.
2.мне нужно прошивать по своему протоколу, незачем stk500 повторять. При этом, по-простому хочу шифровать.
Взял за основу. Пока отлаживаю между двух ардуин. Как отлажу - запихну полученное в optiboot. Съест 2Кб флеша.
3.Да, дезассемблировать уже не актуально. Пока смотрел ассемблер в lst, увидел как неоптимально выглядит мой код :(
3. Да вы эстет.
4. Я как-то видел документ от атмел о расшировке и проверке подписи прошивки в бутлоадере. Посмотрите.
5. Читал на одном форуме, о защите, есть либа вроде aeslib
6. Накой свой протокол? Будет ли он лучше?
3. да, знаю, беда. после просмотра фильма das boot (когда после всего пережитого солдаты по-глупому погибли по прибытию), получаю удовольствие от того, что делаю. иначе, высок риск прожить в мужских пустых трудах на благо обманщикам и паразитам:)
5.знаю, но там фиксир длина пакета, а мне нужно переменную, чтобы не лучить всех зазря.
6.никуда не денешься. жизнь так устроена. свое всегда ремонтнопригодно и лучше всего подходит под задачу. если бы так большая часть населения работала, мир не стал бы сейчас свалкой для одноразовых вещей.
расплата неподъемна для большинства - на свое нужно много времени и отсутствие привычки к эксплуатации других людей.