【发布时间】:2014-07-25 20:25:13
【问题描述】:
我交了一个嵌入式控制器代码,它有一堆.c 文件和一些头文件以及许多用于嵌入式处理器的相关文件,它是一个摩托罗拉 MC9S12DT256,它使用了一个不太好的编译器 - Cosmic .我使用 Visual Studio(只是一个 txt 编辑器)来修改代码,它会更改正在刻录到处理器的 hex 文件。
我本周早些时候得到了它,大部分时间都花在了它上面,它对于小的更改(更改代码中的值并再次编译进行了必要的更改)工作正常。现在我必须进行一些重大更改。该代码调用了某些函数,这些函数在我得到的所有 .hpp/.h/.cpp 中的任何地方都找不到。也没有关联的 dll。我试图找到一些基本链接并将其放在 .sln 中,但仍然无法识别大多数数据(因为我无法去声明 defn)。 所以我的问题是 - 如何在 VS 空白时将函数定义到调用它的位置。查找所有参考资料也无济于事
谢谢 下午
【问题讨论】:
-
什么样的函数(如果没有更多的名字?)也许它们是与编译器一起打包的库中的助手?考虑使用递归搜索工具来扫描整个安装/构建机器的名称。最终,如果您发现没有源代码的二进制实现,您可能需要做出明智的猜测并从中制作新的原型。
-
如果你提到了你找不到的功能,你几乎肯定会得到一个更好的答案。你搜索过编译器提供的包含目录吗?
-
函数是 can_init0(), can_init1(这些是特定于代码的,因为它用于控制器是 nw 库)所以我相信这些不是编译器内在函数。它们可以存在于静态库中,我认为一方面是 Visual Studio 静态库扩展,因为宇宙中的大多数 def 将具有不同的扩展。在 make 文件中,我包含了所有头文件路径 - 这就是为什么使用先前的微小更改编译代码的原因,我可以对我的嵌入式开发人员进行编程,该开发人员在更改后按预期工作。扫描所有以前的版本后
标签: c++ function embedded call motorola