USBデバイスドライバ[閉じる]

USBデバイスドライバ[閉じる]

STM32h7用のUSBデバイスドライバを作成し、Struct gpio_chip構造を使用してデバイスをGPIOとして登録しました。私の質問はここにあります:

NUCLEO-H743ZIボードのUSB周辺機器をQUBE-MX経由で通信するCUSTUM HID CLASsで構成しました。このクラスは、Linux USBドライバとデバイスのUSBポート間の通信が行われることを意味します。この種のコミュニケーションにもそれは本当ですか?

以下を使用してGPIO(gpio496など)をカーネルスペースにエクスポートする場合:

echo 496 > /sys/class/gpio

それでは方向を決めたい

echo out > /sys/class/gpio/gpio496

プロセスが終了し、Ubuntuが中断され、デバイスが切断された後にデバイスが接続されます。

私の問題は何ですか?ここに画像の説明を入力してください。

ベストアンサー1

STM32h7用のUSBデバイスドライバを作成し、Struct gpio_chip構造を使用してデバイスをGPIOとして登録しました。私の質問はここにあります:

私はあなたがカーネルドライバ(.ko)を書いたと仮定します...そうですか?

echo 496> /sys/class/gpioを使用してGPIO(gpio496など)をカーネルスペースにエクスポートするときは、echo out> /sys/class/gpio/gpio496を使用して方向を設定しようとしています。

読むこの文書、あなたが正しいと思われます。

プロセスが終了し、Ubuntuが中断され、デバイスが切断された後にデバイスが接続されます。私の問題は何ですか?

カーネルパニックやカーネルエラーを引き起こすデバイスドライバコードのバグかもしれません。詳細を確認/取得するには、以下を試してください。 1.テキストコンソールで直接テストを開始します(ctrl-alt + F1が機能する必要があります)。カーネルはコンソールにエラーをダンプするので、これを見ることができます。 または 2. root IDを使用してカーネルログをターミナルウィンドウにダンプしますcat /dev/kmsg

2.はいくつかの要因によって動作しない場合があります。可能であれば1.を好みます。

おすすめ記事