From 255c51174a0571340ef470184064a5c75d261d27 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期三, 22 一月 2025 15:06:27 +0800
Subject: [PATCH] 加入一开始不广播升级    中断触发gpio后广播升级  10分钟自动退出

---
 01_SDK/nimble/controller/pan107x_spark/include/utils/fifo.h |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/01_SDK/nimble/controller/pan107x_spark/include/utils/fifo.h b/01_SDK/nimble/controller/pan107x_spark/include/utils/fifo.h
index 6b3034b..9a6009b 100644
--- a/01_SDK/nimble/controller/pan107x_spark/include/utils/fifo.h
+++ b/01_SDK/nimble/controller/pan107x_spark/include/utils/fifo.h
@@ -92,6 +92,9 @@
 static inline buf_num_t FIFO_Length(fifo_t *pFifo)
 {
 #if FIFO_NEW_EN
+	if(pFifo->w < pFifo->r){
+		return (buf_num_t)(pFifo->num + pFifo->w - pFifo->r);
+	}
 	return (buf_num_t)(pFifo->w - pFifo->r);
 #else
 	return (buf_num_t)(pFifo->w - pFifo->r);
@@ -154,11 +157,11 @@
 		return NULL;
 	}
 
-	pFifo->w++;
-
 #if FIFO_NEW_EN
+	pFifo->w = (++pFifo->w) % pFifo->num;
 	return pFifo->pBuf + pFifo->size * (pFifo->w % pFifo->num);
 #else
+	pFifo->w++;
 	return pFifo->pBuf + pFifo->size * (pFifo->w & pFifo->numMask);
 #endif
 }
@@ -174,11 +177,11 @@
 		return NULL;
 	}
 
-	pFifo->w--;
-
 #if FIFO_NEW_EN
+	pFifo->w = (--pFifo->w) % pFifo->num;
 	return pFifo->pBuf + pFifo->size * (pFifo->w % pFifo->num);
 #else
+	pFifo->w--;
 	return pFifo->pBuf + pFifo->size * (pFifo->w & pFifo->numMask);
 #endif
 }
@@ -193,7 +196,11 @@
 	if(pFifo == NULL)
 		return;
 
+#if FIFO_NEW_EN
+	pFifo->w = (++pFifo->w) % pFifo->num;
+#else
 	pFifo->w++;
+#endif
 }
 
 /**
@@ -221,7 +228,14 @@
  */
 static inline void FIFO_MoveToNextReadBuf(fifo_t *pFifo)
 {
+	if(pFifo == NULL)
+		return;
+
+#if FIFO_NEW_EN
+	pFifo->r = (++pFifo->r) % pFifo->num;
+#else
 	pFifo->r++;
+#endif
 }
 
 /**

--
Gitblit v1.9.3