squalylLe 10/03/2010 à 10:28
elle est pas si compliquée en interne: une flash et une RAM sur l'espace mémoire. Il a juste dû désassembler pas mal de trucs pour comprendre les ports I/O et l'adresse de l'écran, et il a déja codé d'autres émus, donc un ému ARM de plus ça a pas dû lui faire peur.
eternels respects +1 en tout cas.
hmm en fait le premier truc qu'il a dû faire c'est exécuter du code en pas à pas et quand tu vois que quelque part, on pushe l'adresse d'une string, c'est qu'on est pas trop loin de DrawStr() qui a une structure "simple" et qui appelle forcément putchar(), donc cette routine a de fortes chances d'avoir une référence quelque part au buffer écran. Une fois que ça c'est fait, tu peux déja émuler le début de la machine et voir ce qu'elle affiche. Ensuite tu mets des breakpoints sur les accès mémoires non mappés, et tu trouves les adresses des ports... Il reste plus qu'a analyser le code autour (et avoir pas mal de chance) pour trouver a quoi ils servent.
Ca a l'air super facile comme ça.
Je pense que ce qui l'a aidé c'est son expérience passée des emus. Suffit de voir comment il a codé les accès mémoire avec des lookup tables de fonctions appelées selon les bits de poids fort de l'adresse, c'est bô!