我使用嵌入式linux的SOC通过SPI协议与另一个芯片通信,当我监视/var/log/kern.log文件时,我看到这些消息以较高的速度和速率写入该文件(此事件导致系统的空闲内存急剧减少):
2022-11-09T15:28:38.827661+00:00 mcu-v1 kernel: [ 513.748802] fsl_spi e0007000.spi:
fsl_spi_irq: events 300
2022-11-09T15:28:38.827758+00:00 mcu-v1 kernel: [ 513.748855] fsl_spi e0007000.spi:
fsl_spi_irq: events 300
2022-11-09T15:28:38.838743+00:00 mcu-v1 kernel: [ 513.759301] fsl_spi e0007000.spi:
fsl_spi_irq: events 300
2022-11-09T15:28:38.838843+00:00 mcu-v1 kernel: [ 513.759347] fsl_spi e0007000.spi:
fsl_spi_irq: events 300
2022-11-09T15:28:38.838885+00:00 mcu-v1 kernel: [ 513.759418] fsl_spi e0007000.spi:
fsl_spi_irq: events 300
2022-11-09T15:28:38.838921+00:00 mcu-v1 kernel: [ 513.759457] fsl_spi e0007000.spi:
fsl_spi_irq: events 300
2022-11-09T15:28:38.850540+00:00 mcu-v1 kernel: [ 513.769821] fsl_spi e0007000.spi:
fsl_spi_irq: events 300
2022-11-09T15:28:38.850703+00:00 mcu-v1 kernel: [ 513.769862] fsl_spi e0007000.spi:
fsl_spi_irq: events 300
2022-11-09T15:28:38.850753+00:00 mcu-v1 kernel: [ 513.769960] fsl_spi e0007000.spi:
fsl_spi_irq: events 300
2022-11-09T15:28:38.850788+00:00 mcu-v1 kernel: [ 513.770003] fsl_spi e0007000.spi:
fsl_spi_irq: events 300我将内核命令行中的log_level设置为2,以忽略这些消息(以防止内存消耗)!但这条消息还在写!我读了内核源代码(v4.14),但我不明白!
这条信息表明了什么?如何解决这个问题?
发布于 2022-11-28 02:09:27
这条消息表明了什么?
消息似乎是用于调试的,这是ISR处理一个事件的一个通知。在drivers/spi/spi-fsl-spi.c中
static irqreturn_t fsl_spi_irq(s32 irq, void *context_data)
{
...
/* Get interrupt events(tx/rx) */
events = mpc8xxx_spi_read_reg(®_base->event);
if (events)
ret = IRQ_HANDLED;
dev_dbg(mspi->dev, "%s: events %x\n", __func__, events); <== msg generator
...
return ret;
}每次执行ISR时都无条件地生成调试控制台消息。
和如何解决这个问题?
这些消息并不表示任何需要解决的“问题”。处理的每个SPI中断都会生成消息。是的,有点吵。
对于过多消息的问题,请检查内核配置。
启用CONFIG_SPI_DEBUG了吗?如果是,那么禁用它,并重新构建内核。
https://stackoverflow.com/questions/74589910
复制相似问题