diff --git a/Port/80251/port_80251.c b/Port/80251/port_80251.c deleted file mode 100644 index 3090672a..00000000 --- a/Port/80251/port_80251.c +++ /dev/null @@ -1,277 +0,0 @@ -/**************************************************************************//** - * @item CosyOS-III Port - * @file port_80251.c - * @brief 80251 Core Port File - * @author 迟凯峰 - * @version V2.3.1 - * @date 2026.03.01 - ******************************************************************************/ - -#include "os_var.h" -#ifdef __PORT_80251_H - -s_u16_t _SYS_MEM_ m_bsp_add = sizeof(s_taskhand_ts); -static s_u8_t xdata mVOID _at_ 0; - - -/* - * 全局临界区 - */ - -static bit m_oldirq; -static volatile s_u8_t _SYS_MEM_ m_glocri_counter/**/sZeroInstall; - -void mx_disable_irq(void) -{ - if(_testbit_(EA)){ - m_oldirq = 1; - } - else if(!m_glocri_counter){ - m_oldirq = 0; - } - m_glocri_counter++; -} - -void mx_resume_irq(void) -{ - m_glocri_counter--; - if(!m_glocri_counter){ - EA = m_oldirq; - } -} - - -/* - * 中断FIFO服务 - */ - -#if (MCUCFG_PENDSVFIFO_DEPTH > 0) - -#if (SYSCFG_PENDSVFIFO_MONITOR == __ENABLED__) -s_u8_t mPendSV_FIFO_DepthMAX/**/sZeroInstall; -s_u16_t mPendSV_FIFO_CountMAX/**/sZeroInstall; -#endif -bit m_sign_fifo = true; -static void _STATIC_MEM_ *mPendSV_FIFO_0[MCUCFG_PENDSVFIFO_DEPTH] _at_ 0x0100; -static void _STATIC_MEM_ *mPendSV_FIFO_1[MCUCFG_PENDSVFIFO_DEPTH] _at_ 0x0200; -static void _fifo_x_(void _STATIC_MEM_ *sv) -{ - (*sPendSV_FIFOHandler[*(const s_u8_t _STATIC_MEM_ *)sv])(sv); -} - -s_u8_t _SYS_MEM_ m_fifo_0_count = MCUCFG_PENDSVFIFO_DEPTH; -s_u8_t _SYS_MEM_ m_fifo_1_count = MCUCFG_PENDSVFIFO_DEPTH; - -#define mWriteCode(n) \ -bit m_sign_fifo_0_##n = true; \ -bit m_sign_fifo_1_##n = true - -mWriteCode(0); -mWriteCode(1); -mWriteCode(2); -mWriteCode(3); -mWriteCode(4); -mWriteCode(5); -mWriteCode(6); -mWriteCode(7); -#if (MCUCFG_PENDSVFIFO_DEPTH > 8) -mWriteCode(8); -mWriteCode(9); -mWriteCode(10); -mWriteCode(11); -mWriteCode(12); -mWriteCode(13); -mWriteCode(14); -mWriteCode(15); -#if (MCUCFG_PENDSVFIFO_DEPTH > 16) -mWriteCode(16); -mWriteCode(17); -mWriteCode(18); -mWriteCode(19); -mWriteCode(20); -mWriteCode(21); -mWriteCode(22); -mWriteCode(23); -#if (MCUCFG_PENDSVFIFO_DEPTH > 24) -mWriteCode(24); -mWriteCode(25); -mWriteCode(26); -mWriteCode(27); -mWriteCode(28); -mWriteCode(29); -mWriteCode(30); -mWriteCode(31); -#if (MCUCFG_PENDSVFIFO_DEPTH > 32) -mWriteCode(32); -mWriteCode(33); -mWriteCode(34); -mWriteCode(35); -mWriteCode(36); -mWriteCode(37); -mWriteCode(38); -mWriteCode(39); -#endif -#endif -#endif -#endif -#undef mWriteCode - -#define mWriteCode(m, n) \ -if(m_sign_fifo_##m##_##n){ i = n; goto __FIFO_##m##_END; } \ - m_sign_fifo_##m##_##n = true; \ - _fifo_x_(*(void _STATIC_MEM_ * _STATIC_MEM_ *)(mPendSV_FIFO_##m + n)) - -void mPendSV_FIFOHandler(void) -{ - s_u8_t i; - s_u16_t j = 0; - -__FIFO_0: - m_sign_fifo = false; - mWriteCode(0, 0); - mWriteCode(0, 1); - mWriteCode(0, 2); - mWriteCode(0, 3); - mWriteCode(0, 4); - mWriteCode(0, 5); - mWriteCode(0, 6); - mWriteCode(0, 7); - #if (MCUCFG_PENDSVFIFO_DEPTH > 8) - mWriteCode(0, 8); - mWriteCode(0, 9); - mWriteCode(0, 10); - mWriteCode(0, 11); - mWriteCode(0, 12); - mWriteCode(0, 13); - mWriteCode(0, 14); - mWriteCode(0, 15); - #if (MCUCFG_PENDSVFIFO_DEPTH > 16) - mWriteCode(0, 16); - mWriteCode(0, 17); - mWriteCode(0, 18); - mWriteCode(0, 19); - mWriteCode(0, 20); - mWriteCode(0, 21); - mWriteCode(0, 22); - mWriteCode(0, 23); - #if (MCUCFG_PENDSVFIFO_DEPTH > 24) - mWriteCode(0, 24); - mWriteCode(0, 25); - mWriteCode(0, 26); - mWriteCode(0, 27); - mWriteCode(0, 28); - mWriteCode(0, 29); - mWriteCode(0, 30); - mWriteCode(0, 31); - #if (MCUCFG_PENDSVFIFO_DEPTH > 32) - mWriteCode(0, 32); - mWriteCode(0, 33); - mWriteCode(0, 34); - mWriteCode(0, 35); - mWriteCode(0, 36); - mWriteCode(0, 37); - mWriteCode(0, 38); - mWriteCode(0, 39); - #endif - #endif - #endif - #endif - - j += MCUCFG_PENDSVFIFO_DEPTH; - #if (SYSCFG_PENDSVFIFO_MONITOR == __ENABLED__) - if(m_fifo_0_count > mPendSV_FIFO_DepthMAX){ - mPendSV_FIFO_DepthMAX = m_fifo_0_count; - } - m_fifo_0_count = MCUCFG_PENDSVFIFO_DEPTH; - #endif - goto __FIFO_1; - -__FIFO_0_END: - j += i; - #if (SYSCFG_PENDSVFIFO_MONITOR == __ENABLED__) - if(i > mPendSV_FIFO_DepthMAX){ - mPendSV_FIFO_DepthMAX = i; - } - #endif - -__FIFO_1: - m_sign_fifo = true; - mWriteCode(1, 0); - mWriteCode(1, 1); - mWriteCode(1, 2); - mWriteCode(1, 3); - mWriteCode(1, 4); - mWriteCode(1, 5); - mWriteCode(1, 6); - mWriteCode(1, 7); - #if (MCUCFG_PENDSVFIFO_DEPTH > 8) - mWriteCode(1, 8); - mWriteCode(1, 9); - mWriteCode(1, 10); - mWriteCode(1, 11); - mWriteCode(1, 12); - mWriteCode(1, 13); - mWriteCode(1, 14); - mWriteCode(1, 15); - #if (MCUCFG_PENDSVFIFO_DEPTH > 16) - mWriteCode(1, 16); - mWriteCode(1, 17); - mWriteCode(1, 18); - mWriteCode(1, 19); - mWriteCode(1, 20); - mWriteCode(1, 21); - mWriteCode(1, 22); - mWriteCode(1, 23); - #if (MCUCFG_PENDSVFIFO_DEPTH > 24) - mWriteCode(1, 24); - mWriteCode(1, 25); - mWriteCode(1, 26); - mWriteCode(1, 27); - mWriteCode(1, 28); - mWriteCode(1, 29); - mWriteCode(1, 30); - mWriteCode(1, 31); - #if (MCUCFG_PENDSVFIFO_DEPTH > 32) - mWriteCode(1, 32); - mWriteCode(1, 33); - mWriteCode(1, 34); - mWriteCode(1, 35); - mWriteCode(1, 36); - mWriteCode(1, 37); - mWriteCode(1, 38); - mWriteCode(1, 39); - #endif - #endif - #endif - #endif - - j += MCUCFG_PENDSVFIFO_DEPTH; - #if (SYSCFG_PENDSVFIFO_MONITOR == __ENABLED__) - if(m_fifo_1_count > mPendSV_FIFO_DepthMAX){ - mPendSV_FIFO_DepthMAX = m_fifo_1_count; - } - m_fifo_1_count = MCUCFG_PENDSVFIFO_DEPTH; - #endif - goto __END; - -__FIFO_1_END: - j += i; - #if (SYSCFG_PENDSVFIFO_MONITOR == __ENABLED__) - if(i > mPendSV_FIFO_DepthMAX){ - mPendSV_FIFO_DepthMAX = i; - } - #endif - -__END: - if(!m_sign_fifo_0_0 && j < MCUCFG_PENDSVFIFO_COUNT) goto __FIFO_0; - #if (SYSCFG_PENDSVFIFO_MONITOR == __ENABLED__) - if(mPendSV_FIFO_CountMAX < j) mPendSV_FIFO_CountMAX = j; - #endif -} -#undef mWriteCode - -#endif - - - -#endif