1

Linux ドライバー開発の経験は 2 週間しかありませんが、組み込み C プログラミングの経験は豊富です。Linuxでキャラクターデバイスドライバーのみを試しました。ここで、GPIO に接続された一連の LED のデバイス ドライバーを試してみたいと思います。BeagleBone Black を使用しています。ドライバーを呼び出すだけでなく、レジスターレベルからアクセスしたいと考えています。(基本を学ぶためにやっています)

ドライバーの GPIO アクセス コードを以下のようにしたい

void SetLED(unsigned char LED,unsigned char Status){
    //Read the port register
    //BitWise Operation according to function parameters
    //Write back to the register
}

しかし、Linuxでレジスタに直接アクセスする方法について助けが必要です。データシートからポート OUT レジスタの実際のアドレスを 0x4804C13C として取得しました。

私の質問で基本を破っている場合は、ご容赦ください。私はLinuxが初めてです。

4

1 に答える 1

0

ドライバーが電話する必要があります

struct resource *request_mem_region(unsigned long start, unsigned long len, char *name);

そのメモリ領域への排他的アクセスを登録します。

次に、、、などと、、、などを使用ioread8()する必要があります。ioread16()iowrite8()iowrite16()

于 2014-09-30T14:16:32.620 に答える