Sur de nombreux systèmes embarqués, une grande partie de la communication avec les périphériques se fait par la lecture et l'écriture d'adresses d'E / S mappées en mémoire (MMIO) dans le logiciel. En supposant que j'ai accès à l'appareil physique et à une copie du micrologiciel que je peux charger dans IDA, comment puis-je savoir quels appareils se trouvent à quelles adresses?
Jusqu'à présent, je viens de faire devine en regardant le code, les références de chaîne (par exemple, si une fonction imprime "Initialisation de l'interruption de la minuterie", je peux deviner que certaines des adresses sont peut-être pour configurer une minuterie). Mais sûrement quelque chose doit savoir où tous les périphériques vivent en mémoire, car quelque chose est responsable du routage des lectures / écritures de la mémoire vers le bon périphérique.
Alors, y a-t-il un moyen plus systématique pour obtenir ces informations?