Я тут совсем поехал и в качестве нового вида прокрастинации пытаюсь зареверс-инженирить алгоритм работы Xbee Digimesh (это такие out-of-the-box приёмопередатчики на ARM Cortex-M3 и IEEE 802.15.4, которые сами объединяются в mesh-сеть). Вот выдернул из официльной гуйни для этого устройства прошивку (у них она хранится в зашифрованном виде, лол, рядом с java-гуёй; пришлось развлекаться с декомпилятором), которая зашивается при обновлении по UART'у. Вот только я никак не могу понять, что это за формат файла такой. Файл разбит на несколько частей с помощью некоторого количества 0xFF между этими частями. При этом strings выдаёт адекватные строки (их можно загуглить и наткнуться на логи людей, которые с этой железкой управляли по uart'у), и находятся они в некоторой изоляции, в одной части файла. Это даёт надежду на то, что FF'ы разделяют секции, но вот только попытки натравить arm-none-eabi-objdump на любые отдельные секции этого файла с целью получить ассемблерный код ничего годного не выдают (ругается на слишком много неизвестных инструкций; пробовал с -marm и -Mforce-thumb, но лучше не стало).
Моя задача: получить возможность почитать асм, чтобы потихоньку переписать это дело на сишечку и вообще въехать в то, что они там творят и почему они так успешны. Собственно, поэтому к вам и обращаюсь: есть какие-нибудь мысли, как мне этот ассемблерный код получить из этого бинаря?
Тут вот даташиты есть на сам трансивер, mcu и сам бинарь:
https://www.digi.com/resources/documentation/digidocs/pdfs/90000991.pdf
https://www.silabs.com/documents/public/data-sheets/EM35x.pdf
http://dump.bitcheese.net/files/jaxafop/xbee-digimesh.bin/preview