2017-08-02 90 views

回答

0
  1. 添加DKM项目作为VIP的子项目。您可以拖放或打开VIP项目属性,并从项目引用中检查DKM项目
  2. 在usrAppInit.c中,调用DKM的入口点。您可能需要包含适当的标头
  3. 根据需要修改VIP包含路径以包含标头文件。
  4. 如果需要,请将内核配置为使用DKM的正确构建目标。

使用这种方法,当你建立了VIP,它会先建立孩子DKM项目(这将生成的.out文件),那么VIP,生成包括.OUT文件VxWorks映像

+0

嗨,感谢您的解决方案,但不幸的是,这使得一个大型项目只有一个二进制文件。我的要求是单独使用DKM(.out),并使用构建规范宏“EXTRA_MODULES”将其链接到Kernel Image Project。我试过这个,但我得到了以下错误:dld:__dso_handle的重新声明 dld:_的重新声明 定义在../../INT-AC-DKM-18/CD1_AM437X_VSB_ARMARCH7diab/INT-AC-DKM-18/调试/ INT-AC-DKM-18.out 和ctdt.o dld:重新声明_dtors。任何想法如何解决这个冲突? – Sukum

+0

不,它会生成DKM .out - 在DKM生成文件夹中检查。我自己使用这个确切的过程。您得到的重新声明错误可能是由于将DKM作为子项目和EXTRA_MODULE包含在内。您可能还需要强制内核为DKM使用正确的buildspec – mjs

+0

您还需要使用ld(“DKM.out”)加载DKM,然后将输入函数作为extern – endTunnel

0

另一种解决这个问题而不需要项目棍棒的问题,需要指定DKM应用程序的部分图像“.o”目标文件路径到EXTRA_MODULES宏而不是“.out”路径。例如,如果应用程序是“myApp”,则应在宏中指定“myapp_partialImage.o”路径。如果需要连接多个应用程序,可以在宏中指定多个路径