1

我正在玩一个 STM32 µC 的项目。我在 Mac OSX 系统上使用SW4STM32工作台和 CubeMX。我的项目本身很好,一切都相应地编译并在设备上按预期运行。

为了进一步学习,我想使用CppuUTest框架来实现单元测试。我已经设置了一切,得到了我的测试目录和一个 makefile 来配置 MakefileWorker 变量。

但是,在执行 Makefile 时,我不断收到错误消息:

error: 
  register 'sp' unsuitable for global register variables on this target

此错误源自文件 syscalls.c(由 CubeMX 生成的文件)。导致错误的行是:

register char * stack_ptr asm("sp");

经过我的研究,似乎没有简单的解决方法来解决这个问题。源代码由 Cube 生成,在使用 sw4stm32 工具链(使用 mcu gcc 编译器)编译时可以正常工作。但是,CppUTest 工具链正在使用 clang,它无法处理全局寄存器变量(正如错误所说)。

我的问题是:

你们中的任何人在为 OSx 系统上的 sw4stm32 项目设置 CppUTest 时是否有同样的错误或更多经验?有谁知道如何解决这个问题?

如果您需要我的更多信息/代码片段,我很乐意分享。

非常感谢你们!任何帮助将不胜感激:-)

干杯,托比

4

0 回答 0