问题标签 [qnx]

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 回答
1432 浏览

c++ - 如何在 2 个不同的共享库中调用具有相同符号的函数?

我有几个用 C++ 编写的同一个库的版本。我需要并排比较它们。这些库使用相同的命名空间、函数名并采用相同的参数。

当我同时链接两个或多个库时,是否有任何方法可以控制我使用哪个版本的库?

0 投票
1 回答
819 浏览

virtual-machine - 如何在 qnx 操作系统中加载 devnp-ncm.so?

650SP1VMplayer. 我想加载devnp-ncm.so驱动程序。

我尝试过以下事情 -

1) #io-pkt-v4-hc -d /lib/dll/devnp-ncm.so path=/dev/io-usb/io-usb -ptcpip verbose &

2) # io-pkt-v4-hc & #mount -T io-pkt devnp-ncm.so

请给我一些建议如何加载它。

0 投票
2 回答
1821 浏览

c++ - 线程在while循环中间随机停止

我有一个程序正在做一些非常有趣的事情。基本上我有三个主线程,所有线程都很忙,问题线程基本上有一个看起来像这样的 while 循环:

现在打印消息在前 400 轮中被打印,但在此之后线程停止运行。我已经尝试将此线程设为高优先级。我试过降低其他线程的优先级。最奇怪的是,这是以前工作的,而在调试另一个问题(仅使用 print 语句完成)时,它开始间歇性地发生。现在它已经成为永久性的,因为它每次都会发生。

暂时解决它的事情(然后它似乎再次停止工作)是:

  1. 降低其他线程中打印语句的级别。

  2. 降低其他线程的优先级。

  3. 在不同的时间运行。

作为免责声明,我正在使用一个名为 QNX 的实时操作系统,这可能会直接导致问题。我希望不是这样,否则我们有一个大核心 i7 并且无法使用线程。

不幸的是,代码很长而且是为了工作,所以我真的不应该发布它。我希望得到帮助,这将指向我自己解决问题的正确方向。有谁知道可能导致这些症状的问题?

0 投票
2 回答
1273 浏览

c++ - 具有相同编译器的相同程序代码导致不同的二进制文件

我的代码有一些非常奇怪的症状。

  1. 代码在我的电脑上编译,版本如下:

    一种。GCC 版本:4.4.2

    湾。CMAKE 版本:2.8.7

    C。QNX(操作系统)版本:6.5.0

并且代码在释放一些内存并退出函数时存在段错误(不会因任何代码而死,只是在函数退出时)。

这件事的奇怪之处在于:

  1. 代码在发布模式而不是调试模式下执行:

    一种。代码是线程化的,因此这表明存在竞争条件。

    湾。我无法通过将其置于调试模式进行调试。

  2. 在具有相同版本的所有东西的同事机器上编译的代码没有这个问题。

    一种。奇怪的是,同事的代码可以工作,而且在他的机器上编译创建的二进制文件也是一样的,大约大 6mB。

现在烦人的是我不能发布代码,因为它太大而且也不能工作。但是任何人都可以指出我解决这个问题的道路。

由于我使用的是 QNX,因此我的调试工具受到限制,因此我无法使用 Valgrind,并且由于 QNX 不支持它,因此 GDB 并没有真正的帮助。

我正在寻找遇到类似/相同问题以及原因是什么以及他们如何解决问题的任何人。

编辑:

Sooo...我发现了它是什么,但我仍然对它是如何发生的感到有点困惑。

罪魁祸首是这样的:

的定义getMinimumBoundingBox是这样的:

它返回一个 VectorXd,它总是初始化为VectorXd output(6, 1). 所以我立刻想到,这一定是因为 VectorXd 没有被初始化,而是将其更改为:

但这没有用。事实上,我必须通过将函数的定义更改为:

以及对此的呼吁

所以现在新的问题:

我勒个去?为什么第一个更改不起作用,而第二个更改起作用,为什么我必须通过引用传递?哦,还有一个大问题,当我的同事编译它并运行它时,这到底是怎么回事?它是一个直接的内存错误,当然它不应该取决于哪台计算机编译它,特别是因为编译器和所有其他重要的东西都是一样的!!??

谢谢你们的帮助。

0 投票
1 回答
2181 浏览

c++ - C++ Timer 类,也在 QNX 中与脉冲消息一起使用

我为我的项目编写了一个计时器类。我使用了标准的 C++ 函数调用。

我想创建一个计时器(开始、停止、暂停、继续、重置)并传递新的时间。

如果计时器在我停止之前触发,我想在给定通道上获取 qnx 脉冲消息。

这是标题:

...和实施:

1)我可以将计时器结构的值设置为零(以停止计时器)并按照我的方式将值备份到另一个后退结构中吗?或者计时器结构中的正在运行的计时器是否递减?

2)我可以用简单的方法轻松恢复旧的计时器值timer = backupTimer吗?

3)最后,如果我在函数中创建并启动计时器,如下所示:

...然后在堆栈上创建计时器,当我退出此函数(及其变量等)​​时不再有效。计时器还会倒计时并触发我的脉搏吗?或者我是否必须在我的头文件中为这个计时器使用分类器?

0 投票
1 回答
707 浏览

middleware - 机器人中间件(OpenRTM、OROCOS、RSCA、ASEBA 等)支持移植到 RTOS(Micrium、QNX、Keil、FreeRTOS?

我有问题要问你。

有一些开源机器人中间件,其中包含一些供机器人开发人员执行 I/O 工作的库。它们是非常强大的工具,可以节省大量时间。它们例如OpenRTMOROCOSRSCA等......

在一个项目中,我们将开发一个机器人轮椅,它可以执行一些自主行为,例如避障、move2goal、跟随走廊等。我们将使用 RTOS 来组织 I/O 内容和行为的选择操作。

我想知道是否有任何 RTOS(mcOS-II、QNX、Keil等)具有这些中间件的端口?我可以将它们安装到这些 RTOS 上吗?

对不起,我的英语不好。希望你明白我的意思。

我最诚挚的问候..

0 投票
3 回答
562 浏览

eclipse - 尝试在 QNX Momentics IDE(Eclipse IDE)中创建新项目时出错

我正在尝试在 QNX Momentics IDE 中创建一个新的 Blackberry Cascades C++ 项目,我以前能够这样做,但现在当我尝试这样做时,我收到一个错误消息对话框,上面写着“com. qnx.tools.bbt.appdescriptor.Configuration.getId()java/lang/String"

我关闭了计算机上的所有内容,然后重新启动它,然后再次尝试,但仍然出现该错误。

我之前能够创建新项目。

这在我尝试重命名项目后开始发生,但出现另一个错误弹出窗口,提示“资源‘MyProject’与文件系统不同步”,我重新启动了 QNX Momentics IDE,所以我不知道是不是这样有什么关系。

我什至尝试在我已经创建了许多其他 Blackberry Cascades 项目的工作区中创建一个新的 Blackberry Cascades 项目,但我遇到了同样的错误。这是怎么回事?我怎样才能解决这个问题?我需要重新安装 QNX Momentics IDE 吗?还是有其他方法?

0 投票
1 回答
1048 浏览

c - C 函数中的自赋值

将一些遗留 C 代码从 QNX(Photon C 编译器)移植到 Linux (GCC)。在几个地方我看到这样的代码:

显然,编译不需要此代码,它什么也不做。

我的问题是,你为什么一开始会这样做?

0 投票
1 回答
547 浏览

c++ - 如何在 QNX 上强制执行特定的线程序列?

我有 3 个线程:A、B 和 C,并且想在 QNX 实时操作系统上用 C++ 调度序列 A、B、B、C、C、C、B、B、A。我的方法是使用信号量并保存最后执行的线程(因为 B->C 和 B->A):

不幸的是,我无法测试我的代码,因为我没有安装 QNX。所以我的问题是:这会起作用吗?是否有更好的或内置的方法来做到这一点?

0 投票
1 回答
262 浏览

qnx - QNX 6.5 中的诊断 KVM 切换器

我有 KVM(ATEN CS 1642) 开关并连接到它的 usb 鼠标、usb 键盘和两个 dvi 显示器。KVM 控制两台计算机之间的切换 (QNX 6.5)。我需要获取有关连接的输入输出设备(鼠标、键盘、显示器)的信息。操作系统实用程序仅确定模拟的交换机设备。即调用 hidview 显示 Aten 鼠标和 Aten 键盘,即使它们实际上拉出 KVM。我可以通过编程获取实际连接的 IO 设备列表吗?谢谢。