gpt4 book ai didi

stm32 - STM32 单元测试

转载 作者:行者123 更新时间:2023-12-04 13:40:52 25 4
gpt4 key购买 nike

我正在寻找有关如何在我的 STM32F7 平台上进行单元测试的建议。人们过去做了什么?你有哪些恐怖故事?你将做点什么不同的?我目前的计划有什么问题?

我的设置

  • STM32 Nucleo-144 带有定制载体 PCB
  • arm-atollic-eabi-gcc编译器(暂时没有 C++)
  • 使用 Atollic TrueStudio 作为 IDE
  • 从 Ubuntu 16.04 完成的开发
  • 在板上运行 FreeRTOS

  • 我的测试计划

    有不同级别的测试;我特别谈论的是对不依赖于外部硬件的库/功能集进行单元测试。诸如“我的环形缓冲区实现是否正确处理滚动而没有内存泄漏”和“这种位移操作是否导致结果变量的字节序正确”之类的事情?所以我专注于这些类型的测试。
  • 将我的项目转换为使用 C++ 编译(以及所有相关的 extern C 必需)
  • 将我的代码重构为“库”部分和“应用程序”部分。
  • 构建 googletest (这是我们用于系统其他部分的内容)并将我的库链接到其中进行测试。
  • 在通过 Atollic 运行调试 session 的同时在设备上运行单元测试。
  • 最佳答案

    如果您真的必须在嵌入式目标上进行单元测试,那么您应该重新审视这个问题,因为您编写了单元测试计划(像往常一样)以进行测试

    • a set of functionality that does NOT depend on external hardware.

    • Things like "does my ring buffer implementation correctly handle rolling over without memory leaks?" and "does this bit-shift operation result in the correct endianness in the resulting variable?"



    这些(潜在)错误将在 PC 架构(x86,...)上以与 STM32 上几乎相同的方式发生。

    同时,你应该问问自己,在执行过程中会意外发生多少错误?

    • Convert [the] project to compile with C++ (and all the associated extern C required)
    • Refactor my code into a "library" portion and an "application" portion.


    不要误会我的意思 - 如果做得好(并且在项目的理想阶段),后一点可能会大大提高软件的质量。

    多年来,我一直在开发具有功能安全相关性(IEC61508、SIL3)的软件 - 虽然可能存在一些特殊情况,当您无法将所有单元测试移动到不同的硬件平台(您的 PC)时,我从未遇到过我自己就是这样的例子。
    相反,我们总是可以在某些 PC 上执行我们的单元测试,并通过在原始硬件上进行某种集成测试来补充这些单元测试。
    请注意,在此类(补充)集成测试中,您不必再关注库内部逻辑错误,而主要关注硬件/软件集成和系统集成。

    关于stm32 - STM32 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57415026/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com