- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个在 ARM uC 上运行的 VxWorks 应用程序。
首先让我总结一下应用;
应用程序由第三方堆栈和网关应用程序组成。我们实现了操作系统抽象层来支持操作系统独立性。
底层堆栈有自己的内存管理和控制设施,它将内存块保存在双向链表中。
例如;我们不直接执行 malloc/new 、 free/delege 。而是调用 OSA 层的例程,它从 OS 获取内存并将其放入列表中,然后将此内存返回给应用程序。(例程: XXAlloc 、 XXFree、XXReAlloc)
释放内存时我们再次使用 XXFree。
事实上这个 block 是一个结构体
-指示内存块开始和结束的魔数(Magic Number)- 用户请求分配的大小-由于前一个和下一个指针的对齐问题而导致实际大小- 指向返回给应用程序的内存块的指针。显示应用程序中调用 xxAlloc 的链接寄存器。
使用此 block 结构堆栈可以检查 block 是否损坏。
我们还有 pthread 库,它是从 Linux 移植来的-创建/终止线程(目前有22个线程)-同步对象(事件,互斥体..)
有一个由taskSpawn调用的主任务,后来这个任务创建了其他线程。
这是应用程序及其 VxWorks 接口(interface)的描述。
问题是:
其中一个任务突然被 VxWorks 破坏,没有给出任何错误信息。我还有一个 jtag 调试器,它会命中 VxWorks taskDestoy() 例程,但调用堆栈不会提供 PC 或 r14 的任何信息。
我对代码中的特定例程表示怀疑,其中完成了巨大的 xxAlloc 但出现了问题非常零星,没有任何线索表明我可以将其映射到源代码。
我认为操作系统会检测到异常并默默地执行其处理。
任何帮助都会很棒
问候
最佳答案
解决了。
我做了一个单独的测试。使用 malloc 和 memset 分配 20MB 0x55 并停止我的应用程序的线程。
我写了另一个线程来检查我的 20MB 是否写入了 0x55 以外的任何数据。
请问什么!!属于CPU中其他组件(其他人开发的)的其他一些线程写入我分配的空间。
谢谢4你的帮助
关于exception - 如何确定任务销毁的原因,VxWorks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187689/
我意识到这可能是一个非常愚蠢的问题。请幽默一下: 对错:编译程序在 VxWorks 平台上运行的唯一方法是购买 WindRiver 的 Tornado 或 Workbench 等开发环境。 (我正在寻
我可以使用台式电脑来运行VxWorks作为操作系统吗?换句话说,可以使用标准PC作为目标处理器吗?我不是在谈论在同一台机器上托管 Workbench 和 VxSim。相反,我正在考虑在 PC 上仅运行
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我意识到这可能是一个非常愚蠢的问题。请幽默一下: 对错:编译程序在 VxWorks 平台上运行的唯一方法是购买 WindRiver 的 Tornado 或 Workbench 等开发环境。 (我正在寻
在 vxWorks 中,我可以在 shell 中发出“i”命令,并获得系统中的任务列表以及一些信息,如下例所示: 名称 条目 TID PRI 状态 PC SP ERRNO 延迟 ----------
在 Windows 或 Linux 中,我们经常将控制台输出重定向到一个文件,如下所示: window : dir > text Linux: ls -l > text 我想知道如何在 VxWorks
如果您在 Vxworks 中启用了循环,并且您的任务被更高优先级的任务抢占,那么剩余的时间片会发生什么? 最佳答案 您的任务将继续执行并完成剩余的时间片。 请注意,由于时间切片的粒度为 1 个时钟滴答
我们正在 VxWorks 6.x 中创建一个实时进程,我们想限制可以分配给堆的内存量。我们如何做到这一点? 最佳答案 通过 rtpSpawn() 创建 RTP 时,您可以指定控制堆行为的环境变量。 有
有没有办法在 vxworks 中为单个套接字描述符设置 keepalive?我在一些文档中读到,setsockopt 函数中的“SOL_TCP”选项会在 linux 中起到这样的作用。 VxWorks
在 vxworks 中,每个任务都应该使用 VX_FP_TASK 选项生成吗? 如果您的任务使用任何浮点运算,则需要 VX_FP_TASK 选项。但是一个人如何预测 future ——我的意思是,一个
是否有一个键可以单步执行过去的 vxworks v6.9 shell 解释器命令,例如 Windows 和 Linux? 'h' 显示命令历史列表。 我该如何逐步完成并选择? 最佳答案 它默认使用 V
想知道如何调用调度程序,以便它可以切换任务。就像它的抢占式调度或循环调度一样,调度器也应参与其中以执行任何类型的任务切换。假设低优先级任务有一个无限循环-调度程序何时进行干预并切换到较高优先级的任务?
我注意到在我的 vxWorks 6 平台上,调用套接字上的 write 成功完成并返回请求写入的字节数,而且还将 errno 从 0 转换为 19(ENODEV). 我发现这很令人惊讶。 运行成功后是
当我在 vmware 中构建一个 vxworks 时,它可以工作。但是,当我使用不同的 IP 分别创建另外两个 vxworks 时,第二个 vxworks 失败(日志来自 vxware.log): 2
我注意到在我的 vxWorks 6 平台上,调用套接字上的 write 成功完成并返回请求写入的字节数,而且还将 errno 从 0 转换为 19(ENODEV). 我发现这很令人惊讶。 运行成功后是
您发现哪些在线资源对了解 VxWorks 有用? 最佳答案 Tornado II/VxWorks FAQ是基本信息的良好来源,与 VxWorks 5.x 版本相关。 VxWorks Cookbook还
vxworks 任务如何在最短的时间内将 CPU 交给较低优先级的任务? 有没有一种方法可以让任务在不到 1ms 的时间内放弃 CPU? 我知道的让其他较低优先级任务运行的唯一方法是 taskDela
Vxworks 支持标准的 IP v4 和 IP v6 套接字,但套接字也用于其他目的。 还有哪些其他类型的 socket 可用? 最佳答案 您可以使用的套接字类型取决于您在其中创建套接字的通信域。
到目前为止我读过的所有文档似乎都表明我的 vxWorks (6.8) 版本中存在 posix 线程支持,但是一个简单的测试应用程序无法按预期执行。来源如下: tTest.h #include cla
我有一个在 ARM uC 上运行的 VxWorks 应用程序。 首先让我总结一下应用; 应用程序由第三方堆栈和网关应用程序组成。我们实现了操作系统抽象层来支持操作系统独立性。 底层堆栈有自己的内存管理
我是一名优秀的程序员,十分优秀!