首页 > 解决方案 > VXWorks 向头文件添加函数

问题描述

我正在尝试将我自己的函数添加到 jobQueueLib 并逐步执行代码行,或者那里的任何函数(它们都是 EXTERN)。

如果我不放#include <jobQueueLib.h>,则单步执行.h函数调用直接进入汇编,这是指vxworks-6.9/target/h/wrn/coreip/jobQueueLib.h

添加包含后,进入相同的现有函数会导致分段违规。

更新:我的问题是 C、可下载的内核模块项目构建或组件相关(即使我检查它是 VIP 中包含的组件)——因为我在编译时收到无法解析模块符号的警告:jobQueueTerminate ,或对该 .h 文件中的任何函数的任何其他调用(它们都是 EXTERNS)。

检查删除的包含语句,我仍然无法从 vxworks-6.9/target/h/wrn/coreip/jobQueueLib.h 调用任何函数,所以我认为这是一个项目级别的包含问题。这是我的 DKM 项目包括(最后一个是多余的,但我看不到删除它的方法):

包括

如何让符号解析?

标签: cheader-filesvxworks

解决方案


最终获得了使用您自己修改的源代码运行 DKM 的流程:

在任何 C 文件中进行更改 -> 制作 VSB 并使用包含的源代码构建它 -> 制作基于此 VSB 的 VIP 并构建它 -> 使用此 VIP 的输出 VXWorks 二进制文件之一并“连接到目标模拟器” -> 让你的 DKM 从 VIP 引用(DKM 将是 VIP 的子项目) -> 最后,在之前建立的目标连接上执行 DKM!

PS 我使用 SIMLINUX 做 VIP 构建是 LINUX,我使用了构建 VIP 的 VXWorks Linux 二进制输出。


推荐阅读