alienwalker 3 лет назад
Родитель
Сommit
b002cfb64d

+ 10 - 3
bsp/air105/hal/core_timer.c

@@ -33,7 +33,7 @@ struct Timer_InfoStruct
 	void *Param;
 	void *Handle;
 };
-
+#define Timer_t struct Timer_InfoStruct
 typedef struct
 {
 	llist_head Head;
@@ -80,7 +80,7 @@ static void Timer_SetNextIsr(void)
 		}
 		else
 		{
-			PassTick = 5;
+			PassTick = SYS_TIMER_1US/4;
 		}
 		prvTimerCtrl.NextTick = Timer->TargetTick;
 		ISR_Clear(SYS_TIMER_IRQ);
@@ -120,7 +120,14 @@ static void SystemTimerIrqHandler( int32_t Line, void *pData)
 	volatile uint32_t clr;
 	clr = TIMM0->TIM[SYS_TIMER_TIM].EOI;
 	TIMM0->TIM[SYS_TIMER_TIM].ControlReg = 0;
-	do {
+
+	if (prvTimerCtrl.NextTick > GetSysTick())
+	{
+		DBG("%x, %llu, %llu", clr, prvTimerCtrl.NextTick, GetSysTick());
+		prvTimerCtrl.NextTick = GetSysTick();
+	}
+	do
+	{
 		Critical = OS_EnterCritical();
 		Timer = llist_traversal(&prvTimerCtrl.Head, Timer_CheckTo, NULL);
 		if (!Timer)

+ 7 - 2
bsp/common/include/bsp_common.h

@@ -172,9 +172,12 @@ enum
 #define CRC16_IBM_SEED	(0xffff)
 #define CRC16_CCITT_SEED		(0x1D0F)
 #define HANDLE			void *
+#ifndef BIT
 #define BIT(n)      (1UL << (n))
+#endif
+#ifndef MIN
 #define MIN(X,Y)	(((X) < (Y))?(X):(Y))
-
+#endif
 typedef void (* TaskFun_t)( void * );
 typedef void (* CommonFun_t)(void);
 typedef void(* CBDataFun_t)(uint8_t *Data, uint32_t Len);
@@ -232,7 +235,7 @@ HANDLE OS_MutexCreate(void);
 HANDLE OS_MutexCreateUnlock(void);
 void OS_MutexLock(HANDLE Sem);
 int32_t OS_MutexLockWtihTime(HANDLE Sem, uint32_t TimeoutMs);
-HANDLE OS_MutexRelease(HANDLE Sem);
+void OS_MutexRelease(HANDLE Sem);
 void OS_MutexDelete(HANDLE Sem);
 #endif
 uint32_t OS_EnterCritical(void);
@@ -463,9 +466,11 @@ void BytesPutDoubleToBuf(Buffer_Struct *Buf, double v);
 #define zalloc OS_Zalloc
 #define calloc OS_Calloc
 
+#ifndef ASSERT
 #if(defined(__DEBUG__) || defined(DEBUG))
 #define ASSERT( x ) if( ( x ) == 0 ) { __disable_irq(); DBG_Trace("\r\nassert %s,%d", __FUNCTION__, __LINE__); for( ;; ); }
 #else
 #define ASSERT( x )
 #endif
 #endif
+#endif

+ 0 - 0
bsp/air105/include/core_task.h → bsp/common/include/core_task.h


+ 1 - 1
bsp/common/src/bsp_common.c

@@ -338,7 +338,7 @@ int32_t OS_MutexLockWtihTime(HANDLE Sem, uint32_t TimeoutMs)
 	}
 }
 
-HANDLE OS_MutexRelease(HANDLE Sem)
+void OS_MutexRelease(HANDLE Sem)
 {
 	BaseType_t xHigherPriorityTaskWoken = pdFALSE;
 //	xSemaphoreGiveFromISR(Sem, &xHigherPriorityTaskWoken);

+ 0 - 0
bsp/air105/hal/core_task.c → bsp/common/src/core_task.c