2015-03-12 2 views
0

J'essaie d'écrire un pilote Compact Flash pour le RouterBoard 800, pour FreeBSD, et de rencontrer des problèmes. L'emplacement CF est géré par le contrôleur de bus local (LBC) de la CPU (MPC8544E), à l'aide du module UPM (User Programmable Machine) et tout accès à la zone de mémoire où se trouve le CF bloque le thread (le CPU peut toujours être interrompu, mais le fil ne continue jamais). Même les accès factices, lors de la programmation ou de la lecture de l'UPM, se bloquent. Maintenant, la question est, ce qui causerait le thread à se bloquer lors de l'accès à la région gérée par UPM, même si c'est un accès factice, qui ne devrait pas réellement affirmer le bus?Qu'est-ce qui provoquerait le blocage d'un accès à une région gérée par LBC?

Je sais que la carte CF et l'emplacement fonctionnent eux-mêmes, car le noyau lui-même démarre à partir de la carte, chargé par le chargeur de démarrage RouterBoard.

Répondre

0

Pour la postérité, le mpc8544E (probablement la plupart des séries mpc85xx) a le concept de Windows d'accès local (LAW). Si une adresse n'existe pas dans l'une des 10 fenêtres créées, elle est supprimée sur le sol, sans exception, ni retour des données parasites. Cela est vrai pour toutes les régions d'adresse, y compris la RAM externe.