10

Linuxで割り込みを処理する必要があるプロジェクトを行っています。

私が使用しているボードは、Samsung の s3c6410 MCU (arm 11 プロセッサ) に基づく ARM9Board であり、次の I/O インターフェイスを備えています

ここに画像の説明を入力

画像が示すように、外部割り込み用のEINTxピンとGPIOピンとしてのGPxxピンがあり、それらのいずれを使用してもかまいませんが、それらの番号はありません!

EINTx ピンの場合:

私が電話するとき

int request_irq(unsigned int irq, void (*handler)(int, struct pt_regs *), 
unsigned long flags, const char *device); 

関数の最初のパラメーターとして渡す割り込み番号が必要です。たとえば、EINT16 ピンなどの irq 番号を取得するにはどうすればよいですか?

GPxx ピンの場合: これらの関数に渡すために GPIO ピン番号が必要なのと同じ話

int gpio_request(unsigned gpio, const char *label);
int gpio_direction_input(unsigned gpio);
int gpio_to_irq(unsigned gpio);

つまり、GPP8 ピンの GPIO 番号を知るにはどうすればよいですか?

ボードのドキュメントとデータシートを検索しましたが、それらの数値を取得する方法、アイデア、またはどこを見ればよいかについては何も含まれていません。

4

2 に答える 2

9

使用している組み込み Linux には#define、GPIO ピンのステートメントを含む GPIO ドライバーが必要です。次に、次のようなものを使用して、特定の GPIO の IRQ 番号を取得できます。

irq_num = gpio_to_irq(S3C64XX_GPP(8));

その特定のチップの Linux GPIO lib サポートは、次のファイルで利用できます。

linux/arch/arm/mach-s3c6400/include/mach/gpio.h

#defineそこには、さまざまな GPIO のすべてのステートメントがあります。

ドキュメントの GPIO 規則に関するセクションを参照してください。

http://www.kernel.org/doc/Documentation/gpio/gpio.txt

于 2012-06-26T17:45:17.667 に答える
0

私はGPIOピンにもいくつかの作業を行っていましたが、それは別のボード、AM335xにあります。お知らせしておきますが、それを行う方法はほとんどありません。私たちが使用している方法の 1 つは、メモリ ボードを使用して GPIO ピンにアクセス (書き込みまたは読み取り) することです。

これは、物事を機能させるのに役立つ本当に良い記事です。メモリ マッピングを介して Beaglebone の GPIO へのアクセスを登録する

于 2015-08-27T13:36:28.633 に答える