問題タブ [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.
cvs - 完全な Tornado ツリーをバージョン管理下に置くべきですか?
ついに、ファームウェアの制御に興味を持っているハードウェア担当者ができました。
これは vxworks ファームウェア用です。tornado (2.2.1) GUI は、変更されたファイルのリストを含むプロジェクト ファイルを作成しますが、それらはディレクトリ ツリー全体からのもののようです。
そのため、これらのファイルを制御するだけに誘惑されます。
vxworks - VxWorks 5.5 と 6.x の間で互換性のあるコード環境をセットアップするにはどうすればよいですか?
既存の VxWorks 5.5 プロジェクトがあり、それを VxWorks 6.6 に移植したいと考えています。
VxWorks 6.x には多数の新機能 (MMU、RTP など) があり、移植作業が複雑になるため、現時点では使用したくありません。
5.5 と互換性のある環境が必要であることをどのように指定しますか?
namespaces - VxWorks でプログラムを複数インスタンス化する際の名前の競合を解決する方法
VxWorks で C プログラムの複数のインスタンスを実行する必要があります (VxWorks にはグローバル名前空間があります)。問題は、C プログラムがグローバル名前空間で競合するグローバル変数 (そのプログラムの特定のインスタンスで使用するためのもの) を定義していることです。これを機能させるために、プログラムに最小限の変更を加えたいと思います。すべてのアイデアを歓迎します!
よろしく
ところで... グローバル変数がベスト プラクティスではないことを言及するのは適切な時期ではありません。
vxworks - VxWorks プロジェクトで変数のアドレスを取得する方法
VxWorks ローカル変数のアドレスを取得してメモリの内容を確認する方法。
vxworks - Workbench から PXE 起動可能なブートローダーを構築するにはどうすればよいですか?
Workbench から PXE ブート可能な VxWorks ブート ローダーをビルドしようとしていますが、うまくいきません。私の環境の概要は次のとおりです。
- VxWorks 6.6 + 最新のパッチ
- Workbench 3.0 + 最新のパッチ
- モンテビーナ BSP リリース 2.0/1
ターゲットは Dell Precision M4400 ラップトップです。成功せずに私がやっていることは次のとおりです。
- プロファイル
VxWorks Image Project
を使用して、Montevina BSP に基づいて Workbenchで新規作成します。PROFILE_BOOTAPP
- 次のコンポーネントをカーネル構成に追加します (それ以外の場合、ビルドは失敗します):
-INCLUDE_TIMER_SYS
-INCLUDE_PCI_BUS
-INCLUDE_PCI_OLD_CONFIG_ROUTINES
-INCLUDE_PENTIUM_PCI
- コンソール表示用のカーネル構成にコンポーネントを追加し
INCLUDE_PC_CONSOLE
ます (ターゲットにシリアル ポートはありません)。 - ビルド仕様を に設定し、次の
default_romCompress
名前の新しいビルド ターゲットを追加します。vxWorks_romCompress.bin
vxWorks_romCompress.bin
ターゲットをビルドすると、対応するファイルが作成されます。- ファイルに PXE パディングを追加します。
cat $WIND_BASE/vxworks-6.6/target/config/montevina/pxeBoot.bin vxWorks_romCompress.bin > vxWorks_romCompress.pxe
- TFTP サーバーの適切な場所にコピー
vxWorks_romCompress.pxe
し、ターゲットから PXE ブートを実行します。
この時点で、ターゲットは TFTP サーバーからファイルを正常にダウンロードしますが、そこで停止し、何も出力されません。コンソールには何も表示されません。
およびは、Workbench プロジェクトで正しく設定されているように見えます (これらは、それぞれ および の従来の config.h ファイルの設定と一致しRAM_HIGH_ADRS
ます) 。RAM_LOW_ADRS
0x00108000
0x003080000
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 ブート可能にする適切な方法について、ドキュメントには何も記載されていません。
vxworks - バッチファイルの疑問
以下に示す .bat ファイルを使用して、IDE に存在するコンテンツ全体をテキスト ファイルにリダイレクトします。
部分的な出力しか取得できません。つまり、コンパイルまたはビルド プロセス中にスローされるエラーを取得できません。これは正しいですか、それとも他の方法を提案できますか??
どうもありがとうマディ
c++ - c /c++コードをVxWorksに移植する際の問題
Linux/Macをすでにサポートしているac/c++コードベースをVxWorksに移植する必要があります。私はVxWorksにかなり慣れていません。発生する可能性のある問題を教えてください。
vxworks - 問題を VxWorks に移植する
以前の質問に詳細を投稿しています。Linux/Mac を既にサポートしている ac/c++ コードベースを VxWorks に移植する必要があります。アプリケーションは、ソケット、pthread、mutex、およびクリティカル セクション処理 API を使用します。
私は VxWorks の初心者です。発生する可能性のある問題を教えてください。
vxworks - taskVarAddは同じ変数に対して2回使用されました
taskVarAdd()APIを使用してタスクにグローバル構造体を追加しました。
ただし、一部のシナリオでは、taskVarAdd()APIを使用して、同じグローバル構造体が同じタスクに再度追加されます。[つまり、taskVarAdd()が同じ変数のタスクから2回呼び出されます]。
この構造体は、そのタスクのtaskID、メッセージキューIDを維持します。
私の質問:
- タスク内で同じ変数に対してtaskVarAdd()を2回呼び出すと、動作はどうなりますか?
- 最初に追加された構造体変数が2番目の変数によって上書きされるかどうか?{これは上書きされると思います]
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 を使用しています
私の質問:
同じ変数に対して同じタスク内で2つの taskVarAdd() を使用するのは正しいですか?
同じタスク内の同じ変数に対して 2 つの taskVarAdd() が使用された場合の動作はどうなりますか?
プログラムの流れを教えてください