问题标签 [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

目标是戴尔 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. 复制vxWorks_romCompress.pxe到我的 TFTP 服务器的适当位置,然后从我的目标执行 PXE 引导。

此时,目标成功地从 TFTP 服务器下载文件,但停在那里没有输出。控制台上没有显示任何内容。

和似乎在 Workbench 项目中设置正确(它们分别与旧 config.h 文件的设置匹配和RAM_HIGH_ADRS)。RAM_LOW_ADRS0x001080000x003080000

(请注意,Montevina BSP 确实附带了一个预构建的bootrom.pxe引导加载程序,我已经能够成功地进行 PXE 引导。不过,我需要向引导加载程序添加几个组件,并且真的更喜欢通过Workbench 环境,而不是旧的 config.h 方法。)

我还尝试镜像 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 中,但我在文档中没有看到任何关于从 Workbench 中使引导加载程序 PXE 可引导的正确方法。

0 投票
3 回答
1478 浏览

vxworks - 批处理文件疑问

我有一个如下所示的 .bat 文件,我想在其中将 IDE 中存在的全部内容重定向到某个文本文件。

我只能得到一些部分输出,即我无法得到在编译或构建过程中抛出的错误。这是正确的还是任何人都可以建议任何其他方式?

非常感谢麦迪

0 投票
4 回答
3463 浏览

c++ - Issues in porting c/c++ code to VxWorks

I need to port a c/c++ codebase that already supports Linux/Mac, to VxWorks. I am pretty new to VxWorks. Could you let me know what are the possible issues that could arise?

0 投票
1 回答
1454 浏览

vxworks - 将问题移植到 VxWorks

我正在发布我以前的问题的详细信息。我需要将已经支持 Linux/Mac 的 ac/c++ 代码库移植到 VxWorks。该应用程序使用套接字、pthread、互斥锁和临界区处理 API。

我对 VxWorks 很陌生。你能告诉我可能出现的问题吗?

0 投票
1 回答
342 浏览

vxworks - taskVarAdd 对同一个变量使用了两次

我使用 taskVarAdd() API 将全局结构添加到我的任务中。

但是在某些情况下,使用 taskVarAdd() API 再次将相同的全局结构添加到相同的任务中。[即,taskVarAdd() 从同一个变量的任务中被调用两次]。

该结构将维护该任务的任务 ID、消息队列 ID。

我的问题:

  1. 如果我们在一个任务中为同一个变量调用 taskVarAdd() 两次,会发生什么行为?
  2. 第一个添加的struct变量是否会被第二个变量覆盖?{感觉这个会被覆盖]
0 投票
1 回答
487 浏览

vxworks - taskVarAdd 对同一个变量使用了两次

我使用 taskVarAdd() API 将全局结构添加到我的任务中。

但是在某些情况下,使用 taskVarAdd() API 再次将相同的全局结构添加到相同的任务中。[即,taskVarAdd() 从同一个变量的任务中被调用两次]。

此结构将维护该任务的任务 ID、消息队列 ID

以下是 Benoit 编写的用于解释该场景的示例程序,

诠释v1;

无效的电视()

{

诠释 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++)

{

}

}

当我使用 tornado 测试代码时,每次执行程序时都会得到不同的结果

//第一次尝试 -> tv1

初始 v1 = V1 = 3

V1 = 3

V1 = 2

V1 = 4

V1 = 4

V1 = 3

V1 = 5

V1 = 5

V1 = 5

V1 = 6

//第二次尝试

- >电视1

初始 v1 = V1 = 1

V1 = 3

V1 = 4

V1 = 2

V1 = 4

V1 = 5

V1 = 3

V1 = 5

V1 = 6

但是当我评论第二个 taskVarAdd() 并对其进行测试时,我得到了一致的预期结果,如下所示

//第一次尝试

- >电视1

初始 v1 = 3

V1 = 4

V1 = 5

V1 = 6

V1 = 7

V1 = 8

V1 = 9

V1 = 10

V1 = 11

V1 = 12

V1 = 13

//第二次尝试

- >电视1

初始 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. 在同一个任务中为同一个变量使用两个 taskVarAdd() 是否正确?

  2. 如果两个 taskVarAdd() 用于同一个任务中的同一个变量,会有什么行为?

  3. 请解释您的程序流程