vxworks相关内容
..
3 条不同的消息以不同的速率发送到同一个端口: 消息 大小(字节) 每发送一次传输速度 高 232 10毫秒 100Hz 中等 148 20ms 50Hz 低
..
平面内存模型和受保护内存模型的区别?VxWorks 支持扁平内存模型,Linux 是否也支持扁平内存模型? 解决方案 为了给出一个有意义的答案,让我们先回顾一些概念. 大多数现代处理器都有一个用于多种用途的内存管理单元 (MMU). 一个目的是在虚拟地址(CPU“看到"的地址)和物理地址(芯片实际连接的地方)之间进行映射.这称为地址转换. 另一个目的是为某些虚拟内存位置设
..
想知道如何调用调度程序以便它可以切换任务.就像即使是抢占式调度或循环调度一样 - 调度程序应该参与进来以进行任何类型的任务切换.假设一个低优先级的任务有一个无限循环——调度器什么时候介入并切换到一个更高优先级的任务? 查询是:1. 谁调用调度程序?[在 VxWorks 中]2. 如果它被定期调用 - 该机制是如何实现的? 提前致谢. --阿什温 解决方案 简单的答案是 v
..
当我们执行 taskSpawn 时,会在 vxworks 中创建一个任务.实际上是什么任务.和线程有什么关系. 在我看来,vxworks 是基于线程的操作系统. 有人可以帮助我了解实际场景中任务/线程/进程之间的真正区别吗. 我在某处看到任务是指令集的执行.如果是这样,那么线程也有一些指令集,所以我们可以将线程称为任务. 请帮忙 解决方案 线程是一个通常用于支持进程
..
我正在尝试将我自己的函数添加到jobQueueLib中,并逐步执行该行的代码行或其中的任何函数(均为EXTERN). 如果不输入#include
..
我想通过CMake生成vxworks 6.x生成文件和工作区,并且在CMake中不支持VxWroks.如何为平台和正确的工具链创建相关的生成器? 我是CMake的新手.我设法创建了一些针对Windows VS 2015和Ubuntu生成的测试项目. 我尝试使用GNU和DIAB编译器为VxWorks 6.x创建一个,但是CMake不支持它. 我了解了一些称为工具链,交叉编译和平台文
..
如何使用内核映像(VIP)项目链接/加载DKM项目,以便我可以从内核映像项目的"usrAppInit.c"调用DKM项目(应用程序)的入口点功能,以使应用程序在启动时自动启动?有人可以描述一下步骤或向我指出任何文档吗? 解决方案 将DKM项目添加为VIP的子项目.您可以拖放或打开VIP项目属性,然后从“项目参考"中检查您的DKM项目 在usrAppInit.c中,调用DKM的入口点.您可
..
我正在使用 Nanopb 尝试从基于VxWorks的National Instruments发送protobuf消息紧凑型RIO(9025).我的交叉编译效果很好,甚至可以发送不需要额外编码的数据类型的完整消息.让我着迷的是回调.我的代码是通过LabVIEW交叉编译和调用的,基于Nanopb的基于回调的结构似乎在目标计算机上中断(错误,崩溃,目标重新启动等).如果我在没有任何回调的情况下运行它,则
..
我尝试使用vxWorks函数loadModule将代码文件加载到内存中,这给了我错误: Relocation value does not fit in 24 bits 我试图在编译器中添加-mlongcall标志,但是它不起作用. 解决方案 如果要使用 -mlongcall ,请确保针对 Active Build Spec 将编译器设置为GNU.强>.请记住,WindRiver
..
我正在尝试将所有串行数据重定向到VxWorks中的进程。使用以下代码 fd = open(“ / tyCo / 0”,O_RDWR,0); ioctl(fd,FIOSETOPTIONS,OPT_TERMINAL&〜OPT_7_BIT); read(fd,line,100); 提供正确的输入,除了不填充输入的第一个字符,而是将其打印到终端上。因此,如果我输入“ He
..
我在启用了该套接字的KEEPALIVE的应用程序中创建了一个TCP套接字.我可以看到keepalive数据包的频率是我在iptcp的系统变量中设置的keepalive间隔的频率,即30秒. 套接字创建: if( ( sockFD = socket( AF_INET, SOCK_STREAM, 0 ) ) == ERROR ) { DS_SWX_ERROR( "socke
..
我必须使用C ++和VxWorks将命令"ifconfig"的输出保存到char缓冲区中. 我该怎么办? 解决方案 下面是一个使用管道将ifconfig输出保存到缓冲区的示例. 在C解释器外壳程序上尝试-> pipe_test和-> puts &pipe_buf.祝你好运. char pipe_buf[128*256]; int pipe_test() { char *pi
..
这是我在这里的第一个问题:). 我一直在尝试将物理内存映射到vxWorks 6.8中的虚拟内存,但没有成功, 我正在尝试使用"vmMap"功能,但它总是以以下方式返回: errno = 0x30065 S_taskLib_NAME_NOT_FOUND. 我的代码是: int page_size=0; PHYS_ADDR GPIO_BASE_VIRTUAL_ADDR = 0x
..
在我的程序中,我正在使用malloc分配大量的内存(几百mb,一次一次在25mb至75mb的块中),随后我释放了一些块,然后再次重新分配了一些.我的问题是,当我使用free()释放内存时,它是否立即释放了相关的内存块,或者只是将其标记为要释放.如果只是标记以后要释放,是否有一些标准的C库函数强制将其立即释放. 实际上,我需要将程序开发为可在linux和vxworks之间移植的程序.在Vxwo
..
我有一个文件生成文件,并且已在ADA(一个简单的Hello world)中正确编译.我想使用taskpawn从C ++执行文件.o.为此,我已阅读到您必须在c ++中声明如下内容: ... #include /* Ada binder-generated main - ADA_MAIN is passed as a macro from the makefil
..
平面内存模型和受保护的内存模型之间的区别? VxWorks支持平面内存模型,Linux是否也支持平面内存模型? 解决方案 为了给出一个有意义的答案,让我们首先回顾一些概念. 大多数现代处理器都具有用于多种用途的内存管理单元(MMU). 一个目的是在虚拟地址(CPU“看到"的地址)和物理地址(实际连接芯片的位置)之间进行映射.这称为地址翻译. 另一个目的是为某些虚拟内存位置
..
在任务I 中: ... while (1) { if (running == false) break; ret = read(fd, buf, size); /* Or: ret = recvfrom(sock, buf, size, 0, NULL, NULL); */ ... } 在任务II 中: ... running = true; /* ioctl(
..
我们有一个vxWorks设计,需要一个任务来处理通过两个消息队列发送的高优先级消息和低优先级消息。 给定优先级的消息必须按照FIFO顺序进行处理。 例如,按照接收的顺序处理所有高优先级消息,然后处理低优先级消息。如果没有高优先级消息,则立即处理低优先级消息。 有没有办法? 解决方案 如果使用命名管道(pipeDevCreate(),write(),read())而不是消息
..
任何人都可以帮助我使用常用于RTOS的设计模式? 在VXworks中,哪种模式更可取? 解决方案 我们可以忽略您的问题的第二句话吗?这是无意义的,也许指向设计模式的误解。第一部分是有趣的。也就是说,我将其概括为覆盖实时系统而不是RTOS。 许多最熟悉的模式是机械性的,但是实时系统更高级的架构模式也很重要。 Bruce Powell Douglass 可能是实时系统模式
..