2016-06-19 1 views
1

J'écris un pilote GPIO pour mon système d'exploitation RPI2. Et je naviguais très longtemps à ce sujet, mais je n'ai trouvé que des données linux. Comment dois-je faire des fonctions telles queTravailler avec GPIO sur bcm2836

void gpio_set(int pin); 
void gpio_clr(int pin); 

en C pour le pilote. Ou, peut-être que cela peut être fait en raison de l'assemblage en ligne?

Répondre

2

Comme expliqué here

L'architecture sous-jacente BCM2836 est identique à BCM2835. La seule différence significative est la suppression du processeur ARM1176JZF-S et son remplacement par un cluster Cortex-A7 quad-core.

La documentation disponible pour le BCM2836 ne détaille pas le disque dur périphérique, uniquement l'A7. Au lieu de cela, vous avez besoin de la documentation pour le BCM2835. La section peripheral specification traite du GPIO. Les registres sont mappés en mémoire de sorte que vous pouvez leur écrire directement en C.

+0

Merci beaucoup U! –

0

Il est très simple à implémenter en C. Gardez à l'esprit que l'adresse périphérique RPi2 est 0x3F000000 au lieu de 0x20000000 (RPi). La documentation disponible est pour RPi (BCM2835) mais applicable sur RPi2 ainsi qu'avec certains changements d'adresse mémoire et de changement de processeur (Cortex-A7). Pour un saut rapide, vous pouvez voir valver's blog pour le développement nu-métal.