c - 嵌入式系统上中断密集型代码的单元测试

标签 c unit-testing avr avr-gcc

我正在为 AVR 编写 C 代码芯片。代码重在 interrupt service routines (ISRs) 在串行端口上等待,ADCs和定时器。 ISR 写入缓冲区,主循环在到达缓冲区时对其进行检查。

我设计缓冲区以便 ISR 可以在主循环读取它们时更新它们。我想验证这是否有效。我有单元测试来验证基本操作,但我不清楚如何测试如果在主循环读取缓冲区时触发中断会发生什么情况。

我的单元测试非常基础——main() 函数中的一些代码。我在我的 Linux 机器上运行测试。

最佳答案

线程?

启动一个高优先级线程,以类似于真实事物的某种速率调用您的 ISR。 然后在您的主程序中,循环一遍又一遍地读取缓冲区。验证缓冲区读取未损坏。

(也许这更像是一个集成测试,而不是一个纯单元测试。)

关于c - 嵌入式系统上中断密集型代码的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360038/

相关文章:

bind() 套接字可以连接到远程地址吗?

c# - 使用静态记录器、静态帮助程序类进行依赖注入(inject)

php - 如何从 Laravel 的数据库中重新加载/刷新模型?

c# - 是否有必要为 n 层架构上的每一层编写单元测试代码?

c - ATMega8 中的浮点类型值

c - DDS 插值 - 8 位 Atmel AVR ASM 到 12 位 DAC

c socket编程,一次只接收一行

C通过命名管道发送分配的字符串 - linux

android - 从手机控制嵌入式系统。 Android 还是 iOS?请提出建议和解释

c - 此 C 代码对 (unsigned) 和 (long) cast 做了什么