请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:OMAP-L138 Thread 中讨论的其他器件:SYSBIOS
工具/软件:Linux
大家好、
我们的一些定制板发生了'Assertion failure:a_bufOverflow: buffer overflow'。 很少出现此问题 。 我们的 DSP 软件经常使用 std:vector 和 std:list、但我找不到它们的任何溢出。 我对 heaptrack 有疑问。
HeapTrack 使用双链接列表来重新获取缓冲区 alloc 通知。 但我发现在 BIOS_6_35_01_29/packages/ti/sysBIOS/KNL/Queue.c 中、Queue_put 使用 Hwi_disable 和 Hwi_restore 来确保操作原子 、但在 Queue_remove 中不是这样。 为什么? Queue_remove 原子仍然有效吗? 如果 Queue_remove 不是原子的、则当两个线程同时 HeapTrack_free 时、HeapTrack 队列可能具有错误的记录。
有人可以帮助提供支持吗?
谢谢