将HAL库存入STM32单元测试中

时间:2019-11-28 15:15:22

标签: c++ unit-testing stm32 hal

要使单元测试适用于STM32项目,我正在模拟Hal库。 到目前为止,我们已经设法模拟了它并创建了虚拟文件。但是我遇到了一个问题。 到目前为止,我们有3个.h文件,一个用于#defines,一个用于函数,另一个是HAL文件的直接副本。该程序似乎已编译,并给我链接错误。

给出的错误是“多个定义”,但不是一个错误。大约是200。在hal_stub_functions.h中的所有函数上均给出错误 它甚至似乎循环了几次。我们已经检查了所有文件。没有一个包含错误的文件或彼此包含。所有文件都包含If / Def / Endif。这三个文件互不包含。功能文件包含#Defines文件。 我不知道从哪里开始寻找这个。尝试了一般的东西,如提到的检查包括。项目设置都是正确的。 如果有人有任何帮助或想法,请非常感谢。

编辑: 想想我可能发现了一些奇怪的东西。 Image here 好像Eclipse两次发现每个函数。在同一地点。我该如何解决?

编辑2: 我认为一般的问题是链接器以某种方式两次查找文件。

预先感谢 :)

1 个答案:

答案 0 :(得分:0)

解决方案: 使所有功能静态。 由于包括.h文件的多个文件,它们不断地重新定义功能。甚至使用了#ifdef。 #pragma曾经也没有帮助。