在 CRS 中测试最新 B0 硅 RTD 期间,闪存操作会在以下情况下导致总线故障:
1.在 1000 毫秒操作系统任务中,将触发对扇区大小为 256Kb 的外部闪存的读取操作。该请求在 1000ms 任务中不断循环处理,直至操作完成。
2.在处理 1000ms 任务的读取操作期间,一个优先级更高的 0.5ms 任务正在取消该读取操作。在优先级较高的任务中,取消该读取操作是成功的。但是,当上下文恢复到启动读取操作的 1000 毫秒任务时,内核会出现总线故障。
客户让 main 进入 while 循环,直到当前工作处理完毕。他们总是可以在 RDB 上重现这种情况。
你好,我是@郝月燕、
根据您所描述的客户情况。我想出现这个问题的原因是他们在读取和取消任务中都调用了 MemAcc_Mainfunction。它们应仅在一个任务中定期调用 MemAcc_Mainfunction(如配置的 MemAcc MainFunction Period)。
顺祝商祺!
丹
你好,我是@郝月燕、
您能告诉我他们的流程代码吗?
例如:
顺祝商祺!
丹
你好,丹、
请参见所附的 .xdm文件如果无法下载,请告诉我。
你好,丹、
感谢您的回复。
你好@郝月燕、
看起来这个问题与操作系统环境有关,而不是 RTD 驱动程序。
1. 您是否启用了"Mem MainFunction Period" ,以便在操作系统环境中使用?
2. 您的图像非常模糊,我看不清细节。你能再发送更大尺寸的图像吗?
3. 你使用的 RTD 代码包版本是什么?
顺祝商祺!
丹