1/ lecture de l'adresse en RAM de Ion::Storage::sharedStorage()::storage en utilisant la variable platform_infos, dont l'adresse dans delta est en 0x020001c4 (0x080001c4 dans le script de Maxime).
- Code: Select all
dfu-util -i0 -a0 -s 0x020001c4:0x48 -U platform.info
# lecture doit renvoyer sur n0110
# offset 0 0xDEC00DF0
# offset 0x14 adresse storage
# offset 0x18 taille
# offset 0x1C 0xDEC00DF0
(je n'ai pas compris les variantes du script de Maxime?)
Le source correspondant de Epsilon est dans ion/src/shared/platform_info.cpp
- Code: Select all
constexpr static uint32_t Magic = 0xDEC00DF0;
uint32_t m_header;
const char m_version[8];
const char m_patchLevel[8];
void * m_storageAddress;
size_t m_storageSize;
uint32_t m_footer;
...
m_header(Magic),
m_version{EPSILON_VERSION},
m_patchLevel{PATCH_LEVEL},
m_storageAddress(storageAddress),
m_storageSize(Ion::Storage::k_storageSize),
m_footer(Magic) { }
2/ echanges, le format de stockage etant decrit dans /ion/include/ion/storage.h
- Code: Select all
# pour recuperer le storage
dfu-util -i0 -a0 -s adresse:taille -U numworks.storage
# pour renvoyer le storage
dfu-util -i0 -a0 -s adresse:taille -D numworks.storage
Ca ne devrait donc pas etre tres complique d'ecrire une petite interface pour echanger de la Numworks sur son PC, sans avoir a passer par le web.
Je n'ai pas ma Numworks pour le moment, mais peut-etre que quelqu'un peut confirmer?