問題タブ [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.
embedded - VxWorks 6.3 で共有メモリ アンカー アドレスを計算する方法
私は、CompactPCI バックプレーンを介して接続された 3 台の SBS (現在の GE Fanuc) C2k シングル ボード コンピュータを継承しており、それらの間で共有メモリを起動して実行する必要があります。私の理解では、以前は の値SM_ANCHOR_ADRS
が最初に誰かによって「発見」され、PMC が交換されたり交換されたりするたびに、 の値SM_ANCHOR_ADRS
が再び機能するまでいじられていました。今回は、メモリ アドレスをランダムに突くのではなく、そもそもこの値がどのようにして得られるのかを知りたいと思います。
VxMP のマニュアルに、メモリ マップと既知のオフセットが与えられた場合に、VME のこのアドレスを計算する方法の説明があることに気付きました。C2k ユーザーズ マニュアルで同様のメモリ マップを探してみましたが、存在しません。(ボード サポート パッケージで見た PCI 自動構成に関するビットは、それと何か関係があるのでしょうか?)
また、役に立つ場合は、カーネル構成からの関連ビット:
マスター:
スレーブ カード:
この情報を使用して、CompactPCI バックプレーン上のデバイスの VxWorks の共有メモリ アンカー アドレスを計算するにはどうすればよいでしょうか?
network-programming - VxWorks etherOutputHookAdd の使用方法
etherOutputHookAdd() を機能させようとして困惑しています。その対応物である etherInputHookAdd() は正常に動作しているようです。問題の OS バージョンは VxWorks 5.4 です。
フック コードは次のようになります (実際に実行するコードはもっと複雑ですが、これは例として役立ちます)。
vxworks シェルから etherInputHookAdd を次のように接続できます。
これは 0 (STATUS OK) を返します。その後、「anCounter」変数を調べると、予想どおりのアクティビティが示されます。ただし、出力方向にはそのような運はありません。これらのコマンドラインの両方を試しました
どちらも OK を返しますが、フック ルーチンはまったく呼び出されていないようです。私の最善の仮説は、(1) 初期化ステップがないか、呼び出し方が間違っている、(2) etherOutputHookAdd の実装が単なるスタブである、(3) シェルから呼び出すことができない、または (4) たぶん私の nic ドライバーの実装にはバグがあります。
中心的な問題 (ボードから送信されたものを確認するにはどうすればよいか) を解決するアイデアを歓迎します。
linux - Linux/vxworksシグナル
私はvxworksのマニュアルで次のことに出くわし、なぜそうなるのか疑問に思いました。
信号はどのような種類の信号を実行して望ましくないものにしますか?
アプリケーションでは、シグナルはエラーおよび例外処理に最も適しており、汎用のタスク間通信には適していません。
vxworks - VxWorks 6.6 + / Wind River 3.0 での Googletest
WindRiver 3.0 / VxWorks 6.6 で googleTest をリアルタイム プロセスに正常に移植した人はいますか?
gtest をビルドすることはできますが、リンク時にいくつかのエラーが発生します。コードのこれらの特定のセクションを変更できますが、実行時エラーしか発生しません。
これが私が見ているものです: googleTest.so: isascii(int)'
googleTest.so: undefined reference to
gettimeofday への未定義の参照 googleTest.so: `strcasecmp' への未定義の参照
2 つの共有ライブラリ (.so) があります。1 つは gtest 用、もう 1 つは gtest_main 用です。テスト コードがある RTP (リアルタイム プロセス) が 1 つあります。
注: vxworks で googletest をコンパイルするには、いくつかのフラグを変更する必要がありました。
洞察やアドバイスは大歓迎です。
c - VxWorks sockLib は、winsock のように recv 呼び出しのタイムアウトを設定するために setsockopt で使用できる SO_RCVTIMEO オプションをサポートしていますか?
VxWorks sockLib は、winsock のように recv 呼び出しのタイムアウトを設定するために setsockopt で使用できる SO_RCVTIMEO オプションをサポートしていますか?
Windows での呼び出しの例を次に示します。
これに関する紛らわしい点は、setsockopt によって返されるステータスが不明なオプションからのエラーを示しておらず、SO_RCVTIMEO が sockets.h で定義されていることです。ただし、呼び出しはまだ目的のアクションを生成しません。サポートされていることを示すドキュメントは見つかりません。
サポートされていない場合、同等のアプローチの提案はありますか?
VxWorks 5.4 を使用しています。それ以降のバージョンで動作するかどうか知りたいです。
serial-port - vxworks のシリアル ポート アクセスが機能しない
vxworks のシリアル ポート経由でデータを送信する必要があります。次のコードを使用しています。しかし、それは機能していません.誰かが何がうまくいかなかったかを指摘できますか?
このコードを実行した後、データはシリアル ポート経由では受信されませんが、代わりに端末 (トルネード シェル) 経由で送信されます。システムには、/tyCo/1 と /tyCo/0 の 2 つのシリアル デバイスがあります。両方を試しましたが、問題は解決しません。
ありがとうございます。
c - vxworks でシリアル ポートのボー レートの設定が失敗する
シリアル ポート経由でデータを送信する vxworks タスクを作成しています。シリアルポートのオープンに成功。しかし、ioctl() システム コールを使用してポートのボー レートを設定しようとすると失敗します。私は以下のコードを与えています。誰かがそれに光を当てることができますか?2番目の機能は常に失敗しています...
c - TLB(Load Word)例外は、誤ったコンパイラオプションの使用によって引き起こされる可能性がありますか?
VxWorksでTLB(LoadWordまたはInstructionFetch)例外が発生します。さらに分析すると、参照されているメモリアドレスが有効なメモリ位置を指していないことがわかりました。
私の知る限り、この問題はメモリの破損(メモリの上書きの可能性)が原因で発生している可能性があります。ただし、浄化中のWindowsでのコードの分析と同じコードの実行では、メモリエラーは表示されません。
だから、コンパイラオプションがこれを引き起こしている可能性があるかどうか疑問に思っていますか?出来ますか?
また、そのような問題をデバッグする方法についてのポインタはありますか?
c++ - 割り込みハンドラでの浮動小数点演算 (PowerPC、VxWorks)
私が取り組んでいるソフトウェアで見た問題について、私が理解しようとしていることに正確に答えるリソースを見つけられなかったので、ここで天才に尋ねます!
まず、PowerPC プロセッサで VxWorks を実行しています。
別の問題をデバッグしようとして、割り込み処理ルーチンに簡単で汚れたデバッグ コードを投げてみました。関心のある値 (つまり、最後の割り込みが発生してからの経過時間) を格納するために、倍精度浮動小数点演算が必要でした。これは、実行中のスレッドのハンドラーの外側で後で使用しました。これには問題は見られませんでしたが (確かに、時間がかかりますが、時間的には余裕がありました。割り込みはそれほど速くはありません)、VxWorks は確かに気に入らなかったようです。そのコードに到達すると、一貫してクラッシュします。これは、システムを再起動する悪いクラッシュの 1 つです。問題の原因として double 操作を突き止めるのに少し時間がかかりました。割り込みで呼び出されたルーチンから一定の double を返すことでさえ、悲惨な失敗をしました。
PowerPC (またはその他の一般的なアーキテクチャ) では、割り込みハンドラで浮動小数点演算を実行し、割り込みハンドラによって呼び出される関数で浮動小数点 (または他のタイプ) の値を返す際に一般的に問題がありますか? これによりプログラムがクラッシュする理由がわかりません。
(回避策は、最後の割り込み以降の「ティック」から最後の割り込み以降の「時間」への変換を、コードがハンドラーの外に出るまで遅らせることでした。これは、長い整数操作をうまく処理しているように見えるためです。)