問題タブ [uclinux]
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++ - uclibc Linux でブーストを使用できますか?
uclibc ベースのシステムでブースト ライブラリを使用する C++ アプリケーションを実行した経験のある人はいますか? それは可能ですか?どの C++ 標準ライブラリを使用しますか? uclibc++ はブーストで使用できますか?
embedded - arm-linux-gcc と arm-elf-gcc の比較
arm-linux-xxx でカーネルをビルドし、arm-elf-xxx でユーザー アプリをビルドする uClinux システムを見ています。
アプリが Linux で実行されることを意図している場合は、すべてを arm-linux-xxx でビルドする方がよいのではないでしょうか?
全体的なuClinuxビルド構成でそのオプションをどこに設定しますか?
arm - フラッシュ NOR にプリロードされたコードの実行
NXP LPC2478 で実行する uClinux システムを構築しています。このチップには、コードを直接実行できる 512k のオンボード高速フラッシュがあります。通常の外部 SDRAM からユーザー アプリをロードして実行したいと考えています。しかし、オンボード フラッシュから実行するためにプリロードしたい特別なグラフィックス ライブラリがあります。
グラフィックス ライブラリをコンパイルしてメモリ (フラッシュ) 内の固定位置で実行し、それを使用するアプリをコンパイル/リンクして、そのライブラリへのすべての参照をフラッシュ内の適切な位置に固定する方法はありますか?
修正を手動で行うカスタム アプリ ローダーを作成する必要がある場合は、それを行います。
embedded - ROMFS を RAM にアタッチするとはどういう意味ですか?
uClinux 2.4 を実行する ARM プラットフォーム用のカーネルを構築しています。Linux 構成の「General Setup 」の下に、「 m68knommu-style attached romfs in RAM support 」というオプションがあります。私の ARM アセンブリ スキルは多少制限されていますが、このオプションを有効にすると、ROMFS がカーネル BSS の最後にコピーされます。
これの目的は何ですか?
c++ - ctags が stdio.h を正しく解析しない
VIM で ctags を使用しようとしていますが、両方の初心者です。ctags がどの程度役立つかをテストするために、非常に簡単なテストを行うことにしました。つまり、/usr/include のヘッダーを解析して、いくつかの非常に基本的な機能をオートコンプリートできるようにすることです。
コマンドを実行すると
次に、出力が印刷されます
したがって、ctags は fopen などの非常に明白な機能をいくつか見逃していましたが、fclose などの機能は含まれていました。ctags で解析しているときに欠けているオプションはありますか?
hardware - Coldfire/ucLinux での PIO のビットバンギング
ここに問題があります: PIO の 2 つのピン (1 クロック、1 データ) を介していくつかのハードウェアをプログラムする必要があります。タイミングの制約は厳しく、クロック サイクル タイムは 10ms です。もちろん、これはすべて、非常に高レベルのサービス (CAN バス、TCP/IP) を維持しながら行います。ダウンストリーム ユニットも、入力として構成された PIO ピンをハイにアサートすることによって ACK を返します。したがって、このループは読み取りと書き込みの両方を行う必要があります。シリアル ストリームで 16 ビットを送信する必要があります。
この種のことを行うための確立された方法はありますか、それとも単にハードウェア担当者に PIC などを追加してもらう必要がありますか。
この段階では、RTAI 拡張のような風変わりなものは避けたいと思います。私は一度、ユーザーモード IO への参照を見たことがあります。これは、割り込み駆動型ドライバーの可能性を暗示していましたが、それを見失っていました。
どんな指針も歓迎します。
c - 同じスレッドでミューテックスを複数回ロックする
組み込み Linux OS (uClinux) でアプリケーションを開発していますが、(同じスレッドで) ミューテックスを複数回ロックできるようにする必要があります。
次のように定義および初期化されたミューテックスとミューテックス属性があります。
しかし、ロックを 2 回取得しようとすると、2 回目のロックでブロックされます。
私はそれを間違って初期化していますか、それとも同じことを達成するためのより良い方法はありますか?
前もって感謝します。
結論:
- どうやら PTHREAD_MUTEX_RECURSIVE または PTHREAD_MUTEX_RECURSIVE_NP が機能しないため、再入可能ミューテックスを作成できません。
- try_lock もダメです。取得できる場合はロックを取得し、取得できない場合はエラーを返します。残念ながら、エラーはミューテックスが既に使用されていることを通知するだけで、現在のスレッドがすでにロックを所有しているかどうかを確認できません。
- 現在のスレッドにロックがある場合、pthread_mutex_lock はエラーを返す可能性がありますが、そのためにはタイプ PTHREAD_MUTEX_ERRORCHECK のミューテックスを作成する必要があり、作成することもできません。
linux - Olson タイム ゾーン ファイルを TZ 環境変数に変換する
ユーザーがタイムゾーンを選択するために "America/New_York" 規則を使用していますが、リソースに制約のあるシステムでは、実際の TZ 変数を手動で提供する必要があります。たとえば、ニューヨークの場合は次のとおりです。
ただし、これらの環境設定を提供することがわかったリソースには、すべての米国リージョンのサブセットしかありませんでした。残りのリージョンを構築しようとしています。たとえば、America/Kentucky/LouisvilleとAmerica/Boiseをビルドする必要があります。
これが構築されたリソース、または Olson 規則を TZ 環境変数に変換できる既存のスクリプトはありますか? 私はしばらくグーグルで調べましたが、何も見つかりませんでした (そして、自分でロジックを実装することに神経質になっています)。
ティア・マイク
python - uClinux に python パッケージを追加する
私はuClinuxのディストリビューションを持っており、「メニュー構成」を介してPythonをチェックし、コンパイル(「メイク」)します。
現在、チップにpythonがあります。バイナリ実行ファイル /bin/python があります。
しかし、python パッケージはどうでしょうか? sys、time などのいくつかの基本的なパッケージしかありません。たとえば、シリアル ポート用のパッケージ pyserial を追加したいと考えています。
コンパイルする前に、ファイル「setup」のディレクトリ /python/modules でいくつかのパッケージを選択できます。しかし、それらはすべて C で書かれています。どうすれば一般的に Python パッケージをディストリビューションに追加できますか?
アイデアをありがとう。