0

我正在尝试在 omap 处理器和 sam4l 处理器之间启动 spi 通信。我已经配置了spi协议,omap是master。现在我看到的是我发送的测试数据在 sam4l 上正确到达,我可以看到 isr 正在打印该数据。在 isr 中在这里和那里使用更多 printf 会使操作发生并且相应的操作发生,但是如果我删除所有 printfs 我看不到任何操作发生。这种异常的原因可能是什么?这是错误频率设置的常见情况还是什么?如果需要代码,我也会发布它,但它很大。谢谢

4

2 回答 2

0

我认为您正在尝试在驱动程序中打印消息。

由于在控制台上打印消息会降低驱动程序的速度,它可能会运行缓慢并且您的驱动程序运行良好。

使用pr_info()进行调试并通过将 /proc/sys/kernel/printk 编辑为 4 4 1 7 将设置更改为不在控制台上显示消息

-> 它将调试消息存储在缓冲区中。

-> 驱动程序不会因为屏幕上的打印信息而减速。

-> 稍后您可以通过键入dmesg命令来查看它。

然后找到可能导致错误的原始问题。

于 2015-05-20T12:00:37.077 回答
0

如果例程在“这里和那里”使用 printf 而不是其他情况,几乎可以肯定,问题在于存在时间问题。举个简单的例子,假设您写入 SPI 闪存,然后检查其内容。闪存写入需要一些时间,因此如果您立即检查,数据将无效,但如果您在其间插入 printf 调用,则可能需要足够的时间才能使回读现在有效。

于 2019-04-29T21:14:36.520 回答