問題タブ [vxworks]
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 - acプログラムを使用してvxworksシェルにコマンドを書き込むにはどうすればよいですか?
LinuxでACプログラムを使用してシェルコマンドを実行したい場合は、
ウインドリバーvxworksでこれを達成する方法はありますか?
以下の例を見つけましたが、これを機能させるにはvxworksヘッダーファイルをインクルードする必要があるのでしょうか?私はそうしていると思いますが、どうすればどれを見つけることができますか?
例:
sockets - sendto が VxWorks で機能しない
以前にこの質問をしましたが、解決策がありませんでした (まだ問題があります)。関数がエラーなしで返され、データが送信されなかったため、困惑しています! このコードは Linux で動作します... VxWorks バージョンは動作しません (sendto は送信しませんが、エラーなしで返されます)。
概要 - 私は単純なエコー サーバーを書いています - サーバーは (x86 ボックスから) データを正常に受信し、正常に送信したと主張します。ただし、クライアント (x86 上の netcat) ではデータが受信されません。このコードは、PowerPC ボックスの VxWorks 5.4 で実行されています...
UDP データは何らかの方法でバッファリングされていますか?
別のタスクが sendto の送信を妨げている可能性はありますか? (ここで暴走するつもりはありませんが、通常の優先度でアプリケーションをタスク生成します。つまり、ネットワーク タスクなどのような重要なタスクの下にあるため、これで問題ありません)。
VxWorks が UDP データをバッファリングしている可能性はありますか?
ルーティング テーブルをセットアップしました ... ping が機能します。
私の知る限り、ファイアウォールはありません...
sendto のニュアンスと、データがクライアントに到達するのを妨げるものは何ですか...
c - vxworksでソケット記述子のステータスを見つける方法
vxworksのソケット記述子を使用してリモートエンドのステータスを確認するにはどうすればよいですか。TCP接続を使用しています。
c - クライアントサーバープログラムで接続数を制限する方法
最大1つの接続のみを受け入れ、他の接続を破棄するサーバープログラムが必要です。どうすればこれを達成できますか?
c - 静的ライブラリのサイズを縮小するためのコンパイラ オプションとその他のメカニズムは何ですか?
静的ライブラリのサイズを縮小するためのコンパイラ オプションとその他のメカニズムは何ですか?
OS : VxWorks コンパイラ : GCC 言語 : C
c - 未使用のシンボルが最終的な実行可能ファイルにリンクされていないことを確認するにはどうすればよいですか?
まず最初に、過去数日間に投稿された私の質問に従わなかった皆さんに謝罪します。-ffunction-sectionsと-fdata-sectionsに関連する質問をしていたので、これは少し繰り返しに聞こえるかもしれませんが、これは同じ行にあります。それらの質問とその回答は私の問題を解決しなかったので、ここで完全な問題を述べ、SOの専門家にそれについて熟考させることが最善であることに気づきました。以前にそうしなかったことをお詫びします。
だから、ここに私の問題があります:
私は多くの機能を提供する静的ライブラリのセットを構築します。これらの静的ライブラリは、多くの製品に提供されます。すべての製品が私のライブラリによって提供されるすべての機能を使用するわけではありません。問題は、ライブラリのサイズが非常に大きく、製品がそれを縮小することを望んでいることです。主な目標は、ライブラリ自体のサイズではなく、最終的な実行可能ファイルのサイズを減らすことです。
さて、調査を行ったところ、ソースファイルに4つの関数があり、そのうちの1つの関数だけがアプリケーションで使用されている場合、リンカーは残りの3つの関数をすべて最終実行可能ファイルに含めることがわかりました。同じオブジェクトファイルに属します。さらに分析したところ、-ffunction-sections、-fdata-sections、および-gc-sections(これはリンカーオプションです)によって、1つの関数のみがリンクされることが保証されることがわかりました。
しかし、私の制御が及ばないいくつかの理由でこれらのオプションは現在使用できません。
リンカが厳密に必要な関数のみをリンクし、同じオブジェクトファイル内にある場合でも他のすべての関数を除外することを保証できる他の方法はありますか?
問題に対処する他の方法はありますか?
注:コードはレガシーコードであり、大きなものであるため、コードの再編成はほとんど除外されています。
ここでは主にVxWorksとGCCを扱っています。
助けてくれてありがとう!
mutex - ISR からミューテックスを解放できない理由
Vxworks は、相互除外セマフォは次のように述べています。ISR 内で指定することはできませんが、バイナリおよびカウンティング セマフォでは条件が有効です。
理由も同じように理解できません。
ありがとう、ザックス。
c - グローバル変数は実行可能ファイルのサイズにどのように影響しますか?
グローバル変数があると、実行可能ファイルのサイズが大きくなりますか?はいの場合、どのように?データセクションのサイズだけを増やすのですか、それともテキストセクションのサイズを増やすのですか?
以下のようにグローバル変数と初期化がある場合:
さて、これはデータセクションに1024を追加し、テキストセクションに初期化文字列のサイズを追加しますか?
代わりに、この配列に静的にスペースを割り当てる場合、それをmallocしてから、memcpyを実行すると、データセクションのサイズのみが減少するか、テキストセクションのサイズも減少しますか?
vxworks - VxWorks で個々のソケットにキープアライブ オプションを設定する方法
vxworks で個々のソケット記述子にキープアライブを設定する方法はありますか? 私は、setsockopt関数の「SOL_TCP」オプションがLinuxでそのような恩恵をもたらすといういくつかの文書を読みました。そのような機能は VxWorks でも利用できますか? その場合は、インクルードする必要があるインクルード ファイルは何か、そのようなオプションの使用方法など、関連する詳細を提供してください。
c++ - new (ヒープ) の呼び出し後に予期しないアセンブラー コードによって例外がスローされる
newを呼び出すたびにコンパイラによって追加されるコードの一部からスローされる例外を追跡しています。これは標準の C++ newであり、ヒープからメモリを取得し、クラスのコンストラクターを呼び出す必要があります。
SH4プロセッサでGCC 2.95(または2.96は不明)でVxWorks 5.5.1を実行しています。SNiFF+ 4.1 パッチ 1 内でコンパイルされています。
C++ コードは次のようになります。
また、生成されたアセンブラー コードには、newの呼び出しの後に終了/削除/スロー処理があります。このパターンは、 newへのすべての呼び出しに適用されるようです。
この切り取られたコードは何に役立ちますか? スローが新しい関数内にないため、メモリがない状態のようには見えません。
なぜスローが呼び出されるのですか?そして誰から?コード アドレスをスタックに置くこのパターンは 2 回あり、後で実行するために使用される可能性があります。
ありがとう