您好!
客户有一些关于 spinlock 硬件的问题。 在 TRM 中、我们建议在使用自旋锁时、最大保持时间应小于200个 CPU 周期。 因此、我们建议仅将用于共享存储器存取保护。
如果该时间大于200个周期、会发生什么情况? 旋锁是否解锁?

基本上、它们想要使用自旋锁来保护多个内核想使用外设时的竞争。 例如:有多个内核希望使用同一个 FSI/UART 与外部器件交换信息。
1. Core1采用自旋锁。 (所需时间应小于200个周期)。
2. Core1通过使用 FSI/UART 启动传输,这需要超过200个周期。
3. Core2使用 FSI/UART 在 Core1期间尝试自旋锁。 发生时? 由于自旋锁被锁定了超过200个周期,因此 core2可以采取自旋锁吗?
如果硬件自旋锁不适合用于此目的、我们的建议是什么?
此致
Andre
