問題タブ [dragonboard]

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 投票する
3 に答える
1362 参照

uwp - VS 2017 コミュニティ: 既存のプロジェクトのターゲットを ARM に変更

ARM (具体的には Dragonboard 410c) で Windows 10 IoT 用の既存のデスクトップ アプリを再パッケージ化しようとしています。

VS 2017 Community エディション (15.9.6) をインストールしました。このプロジェクトのデスクトップ バージョンのソースがありますが、それについてはよくわかりません。

現在、x86 / x64 (どちらも正常に動作) をターゲットにしていますが、ARM オプションは利用できません。

VS にコンポーネントを追加したり、ARM 用にコンパイルできるように何かを手動で編集したりする必要がありますか?

Dragonboard をリモート ターゲットとして設定すると、当然のことながら次のエラーが発生します。

「エラー DEP3308: 配置ターゲット '192.168.1.119' は、X86 プラットフォームを対象とするプロジェクトをサポートしていません。サポートされているプラ​​ットフォーム: ARM.」

必要に応じてより多くの情報を提供させていただきます。

ありがとう、R

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

android - poll(2) または select(2) サービス コールを使用して、Kotlin で変更された疑似ファイルを監視する方法

Android 5.1 と Kotlin を使用して DragonBoard 410C を使用し、40 ピンの低電力コネクタの GPIO ピンを試しています。私が使用しているライブラリは、GPIO ピンと対話するために sysfs インターフェイスを使用しています。これには、/sys/class/gpio/ディレクトリ ツリーでさまざまな疑似ファイルを開き、それらのファイルの値を読み書きする必要があります。Android を実行している DragonBoard 410C で GPIO 低電力コネクタにアクセスするを参照してください。

私の理解では、GPIOピンを入力およびエッジトリガーとしてプロビジョニングできるため、瞬間的な接触スイッチを備えた単純な回路を配線し、スイッチが押されたことを検出できます。

ただし、私が見つけたドキュメントは、エッジがいつ検出されるかを検出するために、使用している GPIO ピンの疑似ファイルのファイル記述子でpoll(2)システム サービスまたはselect(2)/valueシステム サービスを使用する必要があることを示しています。が検出され/sys/class/gpio/gpio910/valueます。

Kotlin のファイル記述子でpoll(2)またはシステム サービスを使用するにはどうすればよいですか? の方法と同じselect(2)ですか?poll(2)ready()FileReader

おそらく、Java の機能に似たものWatchServiceが必要でしょうか? http://www.java2s.com/Tutorials/Java/java.nio.file/WatchService/0060__WatchService.poll_.htm

これが間違ったアプローチでない限り、私が計画しているのは、次のようなユーティリティ関数を持つことです。

https://www.kernel.org/doc/Documentation/gpio/sysfs.txt

「値」 ... 0 (低) または 1 (高) として読み取ります。GPIO が出力として設定されている場合、この値を書き込むことができます。ゼロ以外の値は高値として扱われます。

ピンが割り込みを生成する割り込みとして構成でき、割り込みを生成するように構成されている場合 (「エッジ」の説明を参照)、そのファイルで poll(2) を実行すると、割り込みが発生するたびに poll(2) が返されます。引き金になった。poll(2) を使用する場合は、イベント POLLPRI および POLLERR を設定します。select(2) を使用する場合は、exceptfds にファイル記述子を設定します。poll(2) が戻った後、lseek(2) で sysfs ファイルの先頭に移動して新しい値を読み取るか、ファイルを閉じて再度開いて値を読み取ります。

"edge" ... "none"、"rising"、"falling"、または "both" のいずれかを読み取ります。これらの文字列を書き込んで、"value" ファイルの poll(2) を返す信号エッジを選択します。

このファイルは、ピンを割り込み生成入力ピンとして構成できる場合にのみ存在します。

その他の注意事項

注 1:adbユーティリティを使用しshellて、DragonBoard 410C に接続し、物理ピン 26、GPIO971 を にdirection設定しin、にedge設定してテストしましたrising。物理ピン 23、GPIO938 に接続されたブレッドボード上の単純な LED 回路を使用し、物理ピン 26 から物理ピン 23 によって管理される LED にワイヤを追加すると、LED をオンにしてecho 1 > gpio938/valueからcat gpio971/value、物理ピン 26 の値が高くなり、1. 次に、物理ピン 23 に接続されている LED をオフにするecho 0 > gpio938/valueと、期待どおりcat gpio971/valueの値が返さ0れました。

ただし、この実験では、LED をオンにしてオフにしたときにオンpoll(2)の変化が示されるかどうかはわかりません。gpio971/value

注 1a:サービス呼び出しを実装するネイティブ C++ JNI 関数の最初のバージョンがありpoll(2)、DragonBoard 410C でテストしています。私が見ているのは、関数が両方でpoll(2)すぐに返され、配列のメンバーに設定されていることです。POLLINPOLLERRreventsstruct pollfd

テストでは、ブレッドボードの列に接続された物理ピン 26 を使用し、LED の 1 つの足が物理ピン 23 に接続されており、オンとオフを切り替えることができます。10000 ミリ秒のタイムアウトでポーリングをオンにしようとすると、LED が点灯しているか (ピン 26 の値が 1)、点灯していないか (ピン 26 の値が 0) の両方のインジケーターが設定されているかどうかにかかわらず、呼び出しはすぐに返されます。

edgeに設定したので、LED が消灯してからオンにするか、10 秒経過した場合にのみ戻りrisingが見えるはずです。poll(2)

アプリの Kotlin 側で記述したネイティブ C++ 関数の使用方法に問題がある可能性があるため、調査を続けています。

注 2:WatchService Kotlin アプリケーションで使用しようとしたところWatchService、API レベル 26 が必要なエラーが発生しました。Android Studio での最小ターゲットは API レベル 22 ですWatchService。DragonBoard が Android 5.1 であるのに対し、Android 8.0 (Oreo) が必要なようです。 (Lollipop) を使用WatchServiceしてファイルの状態を監視することはできません。