2016-06-19 2 views
1

私はRPI2 OS用のGPIOドライバを作成しています。そして私はそれについて本当に長い時間サーフィンをしていましたが、Linuxのデータしか見つかりませんでした。ドライバのためのCのような機能をどのようにしてbcm2836でGPIOを使用する

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

とするべきですか?それとも、インラインアセンブリーのおかげですか?

答えて

2

としては、BCM2836で、基礎となるアーキテクチャは、BCM2835と同一であるhere

を説明します。唯一の大きな違いは、ARM1176JZF-Sプロセッサの取り外しとクアッドコアCortex-A7クラスタへの置き換えです。

BCM2836の入手可能なドキュメントには、周辺ハードナリ、A7のみが記載されています。代わりにBCM2835のドキュメントが必要です。 peripheral specificationセクション6はGPIOを扱います。レジスタはメモリマップされているため、C言語で直接書き込むことができます。

+0

ありがとうございました! –

0

Cで実装するのは非常に簡単です。周辺アドレスRPi2は0x20000000(RPi)ではなく0x3F000000です。使用可能なドキュメントはRPi(BCM2835)用ですが、メモリアドレスの変更やプロセッサの変更(Cortex-A7)などRPi2にも適用されます。クイックジャンプの場合は、ベアメタル開発の場合はvalver's blogです。

関連する問題