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