問題タブ [embedded-linux]
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.
c - CPU 使用率の決定
Linux で現在または平均のCPU 使用率(マルチプロセッサ環境の場合)を取得するコマンドまたはその他の方法はありますか?
小規模システムで組み込み Linux を使用しています。基本的に、CPU 使用率を判断する必要があります。これにより、CPU 使用率が高い場合は、メイン プロセッサで実行するのではなく、システム内の別のコントローラーに新しいプロセスを迂回させることができます。メイン プロセッサは、より重要なプロセスでビジー状態になる可能性があります。
この質問は単にプロセスの優先順位付けに関するものではありません。他のコントローラーは新しいプロセスを十分に処理できますが、メイン プロセッサーがビジー状態でない場合は、それを実行することをお勧めします。
c++ - ALSA: ループ音の問題
Embedded Linux ボードで ALSA ライブラリをテストする小さなプログラムを作成しました。プログラムは ALSA を構成し、1 つのサウンドを再生してから、1 分間待機してから終了します。
これが私が観察していることです。サウンドを再生した後、静かな一時停止があり、サウンドが再び再生されます。プログラム自体が再び再生されないことは 100% 確信しています。
さらに調査するために、別の実験を行いました。同じボードで aplay を使用して、別のサウンドを再生しました。これはうまくいきました。次に、hello world プログラムを再度実行しました。今回は周期的な音に加えて、aplay が奏でる音以外にも名残を聴かせてもらいました。
alsa-lib またはサウンド ドライバのいずれかのバッファがクリアされていないと思われます。または、ソフトウェア パラメータを正しく設定していない可能性があります。snd_pcm_dump は、次の情報を吐き出します。
また、Ubuntuで実行しているため、これが表示されないことにも言及する必要があります。
embedded - 組み込み Linux による USB ポートからのビデオの読み書き
USB ポート経由でビデオを読み込み、そのビデオにいくつかの変更 (圧縮など) を加えてから、できれば同じ USB ポート経由でホストに送り返す必要がある組み込み Linux プロジェクトがあります。また、ビデオ圧縮レベルなどを変更するコマンドをホストからデバイスに送信できれば、好ましい機能です。
ホストは、あるバージョンの Linux を実行するデスクトップであると想定できます。このビデオ処理を実際に実行するデバイスは、組み込み Linux を実行する Gumstix です。
このプロジェクトをどうやって始めようか、Linuxの入出力分割で何を研究しようか、基本的に迷っています。まず、ビデオの読み取り、ビデオの書き込み、およびコマンドの送信の両方を同じ USB ポートで行うことは可能でしょうか? ビデオは、特にデバイスによる圧縮後は比較的小さいため、帯域幅は問題になりません。主な問題は、このプロジェクトの研究をどこから開始するかを知ることです。ホストとデバイスの間で複数の接続を開いてデータを転送できる、USB 用の TCP/IP のようなものはありますか?
独自の USB デバイス ドライバを作成する必要がありますか? 独自のプロトコルを開発しますか、それとも USB は同じポートで複数のことを比較的簡単に行うことをサポートしますか?
Linux ドライバー、ユーザー レベルのプログラミングと API、または USB プロトコルの調査を開始する必要がありますか? それともまったく違うもの?
私はコンピューター エンジニアリングの上級生なので、経験レベルは C、C++、Java、Verilog、TCL などのプログラミングの混合です。ほとんどすべてのソケット関連のプログラミングは Java (OS に依存しない) で行われているので、よくわかりません。そのようなタスクを実行する Linux アプリケーションの作成を開始する場所。私はマイクロプロセッサ プログラミング (AVR、coldfire) についてかなりの経験を積んできましたが、必要なものに近いにもかかわらず、どこから始めればよいかを理解するのにあまり役に立ちません。
embedded-linux - 組み込み Linux - 接続中にモデムの信号強度を取得する
Embedded Linux で PPP 経由で USB セル モデムを実行しています。minicom 経由で AT コマンドを使用してモデムに接続し、PPP 接続がアクティブでないときに信号強度 (AT+CSQ) を調べることができます。ただし、アクティブな場合、これは不可能です。
PPP 接続が使用されているときに、PPP 接続された USB セルモデムから信号強度を取得する方法はありますか? 私は、API または利用可能なその他の方法に対してオープンです。
daemon - 組み込みLinuxLED点滅デーモン:存在しますか?
ボードがまだコードを実行していることを示すためにハートビートのように点滅するLEDを備えた組み込みボードを見たことがあります。作業中の組み込みLinuxボードで同様のことをしたいと思います。かなり些細なコードであることを考えると、誰かがこれを行うLinux用のデーモンをすでに作成しているように思われますが、証拠を見つけることができませんでした。
OSXServerのハートビートと高可用性Linuxハートビートデーモンは私が探しているものではないことに注意してください。どちらもIPネットワークなどでシステムの可用性を調整します。
私が探しているものが存在しないと仮定して、リソースの使用を最小限に抑えながらピンを切り替えるデーモンを作成する方法についてのアドバイスにも興味があります。cronはどの更新レートで愚かなアイデアになりますか?
(それが何らかの理由で関連していると思われる場合は、眠っているMacBook ProのLEDについての噴出も聞きたくない。)
ありがとう。
c - busybox の L_* マクロとは何ですか?
busybox をクロスコンパイルしようとしていますが、リンク段階で「未定義の参照」が発生しています。を使用すると、実際にはライブラリ ファイル (私の場合nm
は libbb.a) にシンボルがありませんでした。#ifdef L_
. これらのマクロが何であるか知っている人はいますか? ソースを調べましたが、それらが定義されている場所が見つかりません。
unit-testing - 組み込みデバイスでチェック テスト ユニット フレームワークを使用していますか?
クロスコンパイルも必要な組み込みデバイスのユニットテストフレームワークとしてチェックを使用した人はいますか?
それは良い考えですか、それとも何か他のもの (embunit など) を使用する必要がありますか?
その場合、Makefile.ams と configure.ac はどのように記述すればよいですか? そもそもautotoolsを使用していないため、このクロスコンパイルのすべては確かに役に立ちません...
1 つまたは 2 つの環境でしかコンパイルしないため、実際の構成チェックをすべてスキップすることもできますが、ターゲットへのコンパイル チェックは必要ですか? 実際のフレームワークをテスト コードにリンクする方法が説明からわかりません。
必要な最小限のファイルは何ですか? 例はすべての構成を行いますが、何を省略できるかわかりません。
c - sh/bash がコマンド置換を実行しないようにする方法はありますか?
C プログラムから、ファイル名をパラメータとしてシェル スクリプトを呼び出したいと考えています。ユーザーはファイル名を制御できます。Cは次のようなものです(初期化/エラーチェックは省略):
ターゲット デバイスは実際には組み込みシステムなので、悪意のあるユーザーを心配する必要はありません。明らかに、これは Web 環境での攻撃ベクトルになります。それでも、たとえば名前に逆引用符が含まれるファイル名がシステムにある場合、シェルが名前の展開を実行するため、コマンドは失敗します。コマンド置換を防ぐ方法はありますか?
embedded-linux - 腕の中のulibcのバックトレース
セグメンテーション違反をデバッグするためにシグナルハンドラーで使用できる、アーム内のuclibcのバックトレース実装に使用できるポーティングがあるかどうかを知りたいと思いました。
ここで便利なコードに出くわし 、シグナルハンドラー内で使用しようとしましたが、最初のチェックで失敗し、そこから戻ります。
また、(current_frame_p)-3)を使用してNULLになり、(current_frame_p)-1)を出力するまで単純に再帰する再帰バックトレース関数を試しました。これも私に問題を与えるようです。私が得るのは、ハンドラーのアドレスといくつかのガベージビッグアドレス(シグナルアドレスである可能性があると思います)だけです。しかし、私はそれを超えません。私の痕跡はそれを超えて欲しい。
クラッシュするコードは、間接参照および無効なアドレスへのデバッグ用に意図的に記述されています。
どんな助けでも大歓迎です。
よろしくお願いします。
-Keshav
linux-kernel - Linuxカーネルの関数呼び出し元
Linuxカーネルで関数呼び出し元を取得する方法はありますか?__func__が実行中の関数名を返すことは知っています。「 __func__」という関数を探しています