connectivity kit?
Posted: 28 Jul 2020, 07:02
Apres une analyse des scripts webdfu de Maxime et des sources de Epsilon, il me semble que l'acces en lecture/ecriture aux fichiers de la Numworks N0110 pourrait se faire en local avec dfu-util de la maniere suivante:
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).
(je n'ai pas compris les variantes du script de Maxime?)
Le source correspondant de Epsilon est dans ion/src/shared/platform_info.cpp
2/ echanges, le format de stockage etant decrit dans /ion/include/ion/storage.h
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?
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?