J'ai écrit un exemple multicœur nu.
Le code, le schéma de circuit est ici - https://github.com/jeffreyantony/multipi/tree/master/Example_01
Dans mon exemple, il y a 3 LED connectées aux broches GPIO du raspberry Pi. Il y a totalement 4 cœurs dans Raspberry Pi 2. Chaque cœur est affecté à clignoter sa LED correspondante.
J'ai écrit l'adresse du code à exécuter par chaque cœur dans les adresses ci-dessous 0x4000009C pour le cœur 1 0x400000AC pour le cœur 2 0x400000BC pour le cœur 3
Après avoir compilé le code, seule la LED affectée au noyau 1 clignote (comme dans cet exemple, la LED jaune). D'autres non.
Cela signifie que le code pour Core 2 et 3 ne fonctionne pas (car les autres LED ne clignotent pas). J'ai également constaté que le code après le démarrage de tous les cœurs ne fonctionne pas, par exemple, core0_submain () - cette fonction devrait faire clignoter la LED ACT sur le Raspberry Pi
Quelqu'un pourrait-il me faire savoir quel est le problème? Est-ce parce que les 4 cœurs essaient d'écrire dans le même registre GPIO et que seul le cœur 1 gagne en écriture?
J'ai essayé d'ajouter " attribut ((nu));" pour core0_submain () mais il n'y avait aucune utilité.
J'utilise la chaîne d'outils de https://launchpad.net/gcc-arm-embedded
encore une fois le code - https://github.com/jeffreyantony/multipi/blob/master/Example_01/main.c
makefile - https://github.com/jeffreyantony/multipi/blob/master/Example_01/Makefile
Mise à jour 20 octobre 2015 : j'ai ajouté la prise en charge de JTAG. Mais pas réussi à obtenir l'interface de débogage
Mise à jour 25 octobre 2015 : le problème est résolu. Voir la réponse.