問題タブ [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.

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

cvs - 完全な Tornado ツリーをバージョン管理下に置くべきですか?

ついに、ファームウェアの制御に興味を持っているハードウェア担当者ができました。

これは vxworks ファームウェア用です。tornado (2.2.1) GUI は、変更されたファイルのリストを含むプロジェクト ファイルを作成しますが、それらはディレクトリ ツリー全体からのもののようです。

そのため、これらのファイルを制御するだけに誘惑されます。

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

vxworks - VxWorks 5.5 と 6.x の間で互換性のあるコード環境をセットアップするにはどうすればよいですか?

既存の VxWorks 5.5 プロジェクトがあり、それを VxWorks 6.6 に移植したいと考えています。
VxWorks 6.x には多数の新機能 (MMU、RTP など) があり、移植作業が複雑になるため、現時点では使用したくありません。

5.5 と互換性のある環境が必要であることをどのように指定しますか?

0 投票する
4 に答える
645 参照

namespaces - VxWorks でプログラムを複数インスタンス化する際の名前の競合を解決する方法

VxWorks で C プログラムの複数のインスタンスを実行する必要があります (VxWorks にはグローバル名前空間があります)。問題は、C プログラムがグローバル名前空間で競合するグローバル変数 (そのプログラムの特定のインスタンスで使用するためのもの) を定義していることです。これを機能させるために、プログラムに最小限の変更を加えたいと思います。すべてのアイデアを歓迎します!

よろしく

ところで... グローバル変数がベスト プラクティスではないことを言及するのは適切な時期ではありません。

0 投票する
2 に答える
1851 参照

vxworks - VxWorks プロジェクトで変数のアドレスを取得する方法

VxWorks ローカル変数のアドレスを取得してメモリの内容を確認する方法。

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

vxworks - Workbench から PXE 起動可能なブートローダーを構築するにはどうすればよいですか?

Workbench から PXE ブート可能な VxWorks ブート ローダーをビルドしようとしていますが、うまくいきません。私の環境の概要は次のとおりです。

  • VxWorks 6.6 + 最新のパッチ
  • Workbench 3.0 + 最新のパッチ
  • モンテビーナ BSP リリース 2.0/1

ターゲットは Dell Precision M4400 ラップトップです。成功せずに私がやっていることは次のとおりです。

  1. プロファイルVxWorks Image Projectを使用して、Montevina BSP に基づいて Workbenchで新規作成します。PROFILE_BOOTAPP
  2. 次のコンポーネントをカーネル構成に追加します (それ以外の場合、ビルドは失敗します):
    - INCLUDE_TIMER_SYS
    - INCLUDE_PCI_BUS
    - INCLUDE_PCI_OLD_CONFIG_ROUTINES
    -INCLUDE_PENTIUM_PCI
  3. コンソール表示用のカーネル構成にコンポーネントを追加しINCLUDE_PC_CONSOLEます (ターゲットにシリアル ポートはありません)。
  4. ビルド仕様を に設定し、次のdefault_romCompress名前の新しいビルド ターゲットを追加します。vxWorks_romCompress.bin
  5. vxWorks_romCompress.binターゲットをビルドすると、対応するファイルが作成されます。
  6. ファイルに PXE パディングを追加します。
    cat $WIND_BASE/vxworks-6.6/target/config/montevina/pxeBoot.bin vxWorks_romCompress.bin > vxWorks_romCompress.pxe
  7. TFTP サーバーの適切な場所にコピーvxWorks_romCompress.pxeし、ターゲットから PXE ブートを実行します。

この時点で、ターゲットは TFTP サーバーからファイルを正常にダウンロードしますが、そこで停止し、何も出力されません。コンソールには何も表示されません。

およびは、Workbench プロジェクトで正しく設定されているように見えます (これらは、それぞれ および の従来の config.h ファイルの設定と一致しRAM_HIGH_ADRSます) 。RAM_LOW_ADRS0x001080000x003080000

bootrom.pxe(Montevina BSP にはビルド済みのブート ローダーが同梱されいることに注意してください。これにより、私は PXE ブートに成功しました。ただし、ブート ローダーにいくつかのコンポーネントを追加する必要があります。従来の config.h メソッドではなく、Workbench 環境です。)

Workbench プロジェクトのカーネル構成に含まれるコンポーネントをミラーリングして、従来の config.h 設定に可能な限り一致させることも試みましたが、成功しませんでした。これらは追加されたコンポーネントです (これらの依存関係に加えて):

  • INCLUDE_PLB_BUS
  • DRV_NVRAM_FILE
  • INCLUDE_GENERICPHY
  • DRV_INTCTLR_IOAPIC
  • INCLUDE_GEI825XX_VXB_END
  • DRV_TIMER_IA_TIMESTAMP
  • INCLUDE_MII_BUS
  • DRV_INTCTLR_MPAPIC
  • DRV_SIO_NS16550
  • INCLUDE_FEI8255X_VXB_END
  • DRV_TIMER_LOAPIC
  • INCLUDE_SIO_UTILS
  • VXBUS_TABLE_CONFIG
  • INCLUDE_INTCTLR_LIB
  • INCLUDE_DMA_SYS
  • INCLUDE_PARAM_SYS
  • INCLUDE_SW_FPP

だから、それが私が今いるところです。問題は上記の手順 4 ~ 6 にあると思いますが、ワークベンチ内からブート ローダーを PXE ブート可能にする適切な方法について、ドキュメントには何も記載されていません。

0 投票する
3 に答える
1478 参照

vxworks - バッチファイルの疑問

以下に示す .bat ファイルを使用して、IDE に存在するコンテンツ全体をテキスト ファイルにリダイレクトします。

部分的な出力しか取得できません。つまり、コンパイルまたはビルド プロセス中にスローされるエラーを取得できません。これは正しいですか、それとも他の方法を提案できますか??

どうもありがとうマディ

0 投票する
4 に答える
3463 参照

c++ - c /c++コードをVxWorksに移植する際の問題

Linux/Macをすでにサポートしているac/c++コードベースをVxWorksに移植する必要があります。私はVxWorksにかなり慣れていません。発生する可能性のある問題を教えてください。

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

vxworks - 問題を VxWorks に移植する

以前の質問に詳細を投稿しています。Linux/Mac を既にサポートしている ac/c++ コードベースを VxWorks に移植する必要があります。アプリケーションは、ソケット、pthread、mutex、およびクリティカル セクション処理 API を使用します。

私は VxWorks の初心者です。発生する可能性のある問題を教えてください。

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

vxworks - taskVarAddは同じ変数に対して2回使用されました

taskVarAdd()APIを使用してタスクにグローバル構造体を追加しました。

ただし、一部のシナリオでは、taskVarAdd()APIを使用して、同じグローバル構造体が同じタスクに再度追加されます。[つまり、taskVarAdd()が同じ変数のタスクから2回呼び出されます]。

この構造体は、そのタスクのtaskID、メッセージキューIDを維持します。

私の質問:

  1. タスク内で同じ変数に対してtaskVarAdd()を2回呼び出すと、動作はどうなりますか?
  2. 最初に追加された構造体変数が2番目の変数によって上書きされるかどうか?{これは上書きされると思います]
0 投票する
1 に答える
487 参照

vxworks - 同じ変数に対して taskVarAdd が 2 回使用されました

taskVarAdd() API を使用してグローバル構造体をタスクに追加しました。

ただし、一部のシナリオでは、同じグローバル構造体が taskVarAdd() API を使用して同じタスクに再度追加されます。[つまり、同じ変数に対してタスクから taskVarAdd() が 2 回呼び出される]。

この構造体は、そのタスクの taskID、メッセージ キュー ID を維持します。

以下は、シナリオを説明するために Benoit によって書かれたサンプル プログラムです。

int v1;

void tvl()

{

int i = 0;

v1 = 1;

taskVarAdd(0, &v1);

v1 = 2;

taskVarAdd(0, &v1);

v1 = 3;

タスク遅延 (1);

printf("初期 v1 = %d\n", v1);

for(i = 0;i<10;i++)

{

}

}

トルネードを使用してコードをテストしたところ、プログラムを実行するたびに異なる結果が得られました

//最初の試行 -> tv1

初期 v1 = V1 = 3

V1 = 3

V1 = 2

V1 = 4

V1 = 4

V1 = 3

V1 = 5

V1 = 5

V1 = 5

V1 = 6

// 2 回目の試行

-> tv1

初期 v1 = V1 = 1

V1 = 3

V1 = 4

V1 = 2

V1 = 4

V1 = 5

V1 = 3

V1 = 5

V1 = 6

しかし、2番目の taskVarAdd() にコメントしてテストすると、次のように一貫した期待される結果が得られます

//最初の試行

-> tv1

初期 v1 = 3

V1 = 4

V1 = 5

V1 = 6

V1 = 7

V1 = 8

V1 = 9

V1 = 10

V1 = 11

V1 = 12

V1 = 13

//2 回目の試行

-> tv1

初期 v1 = 3

V1 = 4

V1 = 5

V1 = 6

V1 = 7

V1 = 8

V1 = 9

V1 = 10

V1 = 11

V1 = 12

V1 = 13

VxWork 5.5 を使用しています

私の質問:

  1. 同じ変数に対して同じタスク内で2つの taskVarAdd() を使用するのは正しいですか?

  2. 同じタスク内の同じ変数に対して 2 つの taskVarAdd() が使用された場合の動作はどうなりますか?

  3. プログラムの流れを教えてください