問題タブ [hal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
455 参照

linux-kernel - Hal が Linux デバイスを認識するには何が必要ですか?

Linuxカーネルのデバイスドライバーについて学習しようとしています。そのために、次の3つのモジュールを作成しました。

  • バスタイプ
  • デバイスドライバー
  • 今は何もしない偽のデバイスが登録されているだけです

バス、ドライバー、およびデバイスを作成するモジュールをロードできます。デバイスとデバイス ドライバーがバインドされていることを示すリンクを含め、すべてが sysfs に表示されます。

udevadm monitorまた、ドライバーとデバイスが読み込まれると、いくつかのイベントが発生することもわかります。

しかし、結局デバイスは hal に表示されません。hal に見えるようにするには、他に何が必要ですか?

0 投票する
3 に答える
2916 参照

ruby - USBデバイスが接続されているかどうかを確認します。LinuxのRuby

Ruby 1.8とLinux(UbuntuとSLAX)を使用していますが、特定のUSBデバイスがシステムに接続されているかどうかとUSBポート(0、1、2など)を確認するスクリプトをrubyで作成する必要があります。 。以前はHAL(hal-find-by-capability --capability serial)を使用して実行されていましたが、現在はこのアプローチを使用できません。/ var / log / messagesファイルを読み取ってUSBポートの番号を見つけようとしましたが、一部のシステムではこの番号が書き込まれない可能性があります。私が試した他のことは、/ devフォルダーをチェックしてttyUSB#ファイルを検索することですが、新しいデバイスがUSBに接続すると、一部のシステムでは表示されません。これを行う方法についてのアイデアをいただければ幸いです。

0 投票する
2 に答える
1140 参照

android - オンのときにAndroidデバイスにHALドライバーをインストールすることは可能ですか?

このタスクはAndroidエミュレーターの方が簡単だと思います。新しいイメージを作成し、エミュレータを再起動するだけです。エミュレータの起動には長いサイクルがかかりますが、安全です。しかし、私は疑問に思っています。デバイスにいくつかの.soファイルをアップロードして、HALドライバーをテストできますか?もしそうなら、エミュレーターでは遊ぶのに十分なハードウェアがないので、ドライバーをテストするのは素晴らしいことです。

ありがとう!

0 投票する
2 に答える
1326 参照

embedded - 組み込みデバイス ドライバー開発ノート

PIC32 と ARM で使用する HAL (ハードウェア アブストラクション レイヤー) を開発したいと考えています。

基本的に、一般的なピン アクセス、通信ライブラリ、デバイス I/O など、OS で通常利用できるコードを作成したいと考えています。

良い本やウェブサイトを教えてもらえますか?

数週間前に見つけたものから始めましょう: http://www.kalinskyassociates.com/OnLineLearning.html

ありがとう

0 投票する
2 に答える
1351 参照

c - C で ARM をゼロからプログラミングする

Embeded アーティストの LPC3141 開発者キットを持っており、ARM 用にコンパイルできる Eclipse ベースの無料の IDE を作成しました。付属のブリンカーの例を使用して IDE をテストしました。動作するスタートアップ コードとリンカー スクリプトがあり、今後はそれらを使用します。

今、自分のウインカー プログラムをゼロから始める方法を学びたいと思います。最初に何をプログラムする必要がありますか? それは GPIO レジスタ、タイマー レジスタ、uart レジスタ、... ??? 一番最初のことは何ですか?実際に書く必要があるのは HAL ですか? 私はすでにこの本を注文しましたが、どう思いますか?

ありがとうございました。

よろしくジガ

0 投票する
1 に答える
5624 参照

c - libudev のアドバイスが必要

私はプログラミング プロジェクトに着手しています。このプロジェクトでは、他のクールなことを行う前に、リムーバブル メディア (USB サム ドライブなど) のデバイス ID を確認する必要があります。

私の友人の何人かは、シリアル番号を使用するように私に指摘しました。そして、udevadm コマンドを使用した予備テストは、これが機能することを示しています。追加のチェックを行ったところ、ソフトウェアを libudev で動作させることができれば、(最小限) ubuntu、slackware、および gentoo でコンパイルする必要があるようです。これは非常にメリットがあります。

そこで、bing を使用してチュートリアルを見つけ、Signal 11 サイト (http://www.signal11.us/oss/udev/) を入手しました。これは非常によく書かれたチュートリアルです。実際、必要なものはすべて揃っているようです。コードをダウンロードします。プラットフォーム固有のバグをいくつか修正してからコンパイルします。ブーム!Gcc はエラーなしでコンパイルされます。ここまでは順調ですね。

しかし、実行しようとすると、いくつかのバグが発生します。バグを修正し、動作するソフトウェアを作成するには、libudev を十分に理解できるように、さらにチュートリアルを読む必要があることに気付きました。問題は、他のチュートリアル (私が見つけることができるもの) が実際にはなく、ライブラリ ドキュメントの (唯一の既知の?) サイトである kernel.org サイトが、最近のサーバー侵害の後にダウンしていることです。

system() に udevadm ディレクティブを発行して結果を解析することも考えましたが、それはソフトウェアをまとめる非常にハックな方法であり、書き終わったらコミュニティに公開する予定です。

では、libudevを学ぶにはどうすればよいでしょうか??

0 投票する
1 に答える
238 参照

netbeans - Neatbeans で HAL の例をコンパイルするにはどうすればよいですか?

Netbeans で HAL API の例をコンパイルしようとしています。Netbeans は、一部のヘッダー ファイルに関する警告とエラーを表示します。しかし、次のコマンド ラインを使用してサンプル コードをコンパイルできます。

このコマンドを Netbeans プロジェクトに適用するにはどうすればよいですか?

ここで私がコンパイルしようとしているコード:

アップデート:

使用したコマンドを作成し$$()、それを追加のコンパイラ設定に追加すると、問題が解決しました。

0 投票する
1 に答える
3123 参照

c - C/C++ でデバイスのマウント ポイントを見つけるにはどうすればよいですか?

libhal を使用してデバイス イベントを検出しています。追加または削除されたデバイスを検出できますが、デバイスのマウント ポイントを検出できません。機能libhal_volume_get_mount_point(volume)しません。

デバイスの追加を検出するコールバック関数があります。

libhal_volume_from_udi は NULL を返します。

Cでストレージデバイスのマウントポイントを検出する適切な方法を知っていますか?

アップデート

検索でデバイスのマウント ポイントを見つけることができました/etc/mtabが、まだ小さな問題が 1 つあります。デバイスには 1 つのパーティションしかないと仮定しています。

ストレージ デバイスのパーティションのリストを取得するにはどうすればよいですか? したがって、それぞれのマウントポイントを見つけることができます。

0 投票する
1 に答える
133 参照

c++ - グローバル名前空間の一連の関数は、オブジェクト指向設計にどのように適合しますか?

私の会社が作成したソフトウェアは、いくつかのレイヤーを持ち、2 つのプロジェクトに分かれています。「内側のレイヤー」は HAL レイヤーであり、私たちが製造するハードウェアのドライバーと直接やり取りします。これは、「xxxHAL」という Visual Studio プロジェクトにあります。このプロジェクトは、静的ライブラリに組み込まれています。他のレイヤーが一緒になってクライアント API を形成します。これらの「他のレイヤー」は、独自の個別の VS プロジェクトにあり、HAL lib ファイルを最初から静的にリンクします。それらは、クライアントが独自のソフトウェアを構築できるように、配布する DLL に組み込まれます。

私の質問:

  • HAL 関数を独自の静的ライブラリに分離する動機は何ですか?

  • これらすべての HAL 関数をグローバル名前空間に配置するのはなぜですか? これは OOP パラダイムにどのように適合しますか?

2 つのプロジェクト セット全体は、古い API をゼロから最近再設計したものであり、非常に系統的に構築されています。API の設計は非常にオブジェクト指向であり、少なくともかなりよく設計されているように見えます。エンドユーザーにとっては非常に使いやすく明快なので、API ユーザー側のソフトウェアをこのように構築する動機は理解できます。私が主に感じているのは、ソフトウェアを一から設計していたら、別のアプローチを取っていただろうということです。何かご意見は?

0 投票する
1 に答える
2474 参照

usb - USB HID デバイスの検出

Ubuntu (kernel-3.0) で USB HID デバイスにアクセスしようとしています。USB デバイスがバスに接続されるたびに通知できるプログラムを作成したいと考えています。つまり、USB デバイスが接続されるたびに監視できるイベントが生成されます。DBus と HAL を調査しましたが、成功しませんでした。しかし、デバイスが接続されているときに Linux に現在のモジュール (USBHID および HID) をロードさせたくありません。また、上記のモジュールが HID デバイスに使用されるデバイス ドライバーでもあるかどうかを確認したいと思います。

私の唯一の目的は、USB デバイスがバスに接続されるたびに、上記のモジュールを間接的に呼び出すスクリプトを実行することです。

私は C でコードを書いています。私は Linux を初めて使用します。誰かが私を正しい方向に向けることができれば、それは大きな助けになるでしょう。

ありがとう..