⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hal_drivers.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 3 页
字号:
        CFI DPH0 Frame(CFA_SP, 5)
        LCALL	?BCALL               ; Banked call to: DPTR()
??Subroutine0_0:
        POP	DPH
        CFI CFA_SP SP+-4
        CFI DPH0 SameValue
        POP	DPL
        CFI CFA_SP SP+-3
        CFI DPL0 SameValue
        LJMP	?BRET
        CFI EndBlock cfiBlock2
//  133 
//  134 
//  135 /**************************************************************************************************
//  136  * @fn      Hal_ProcessEvent
//  137  *
//  138  * @brief   Hal Process Event
//  139  *
//  140  * @param   task_id - Hal TaskId
//  141  *          events - events
//  142  *
//  143  * @return  None
//  144  **************************************************************************************************/

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  145 uint16 Hal_ProcessEvent( uint8 task_id, uint16 events )
Hal_ProcessEvent:
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function Hal_ProcessEvent
//  146 {
        FUNCALL Hal_ProcessEvent, HalLedUpdate
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL Hal_ProcessEvent, osal_msg_deallocate
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL Hal_ProcessEvent, osal_msg_receive
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL Hal_ProcessEvent, HalKeyPoll
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL Hal_ProcessEvent, osal_start_timerEx
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        MOV	A,#-0xa
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
        MOV	A,R2
        MOV	R6,A
        MOV	A,R3
        MOV	R7,A
//  147   uint8 *msgPtr;
//  148 
//  149   if ( events & SYS_EVENT_MSG )
        MOV	A,#-0x80
        ANL	A,R7
        MOV	R1,A
        CLR	A
        JNZ	??Hal_ProcessEvent_0
        MOV	A,R1
??Hal_ProcessEvent_0:
        JNZ	??Hal_ProcessEvent_1
//  150   {
//  151     msgPtr = osal_msg_receive(Hal_TaskID);
//  152 
//  153     while (msgPtr)
//  154     {
//  155       /* Do something here - for now, just deallocate the msg and move on */
//  156 
//  157       /* De-allocate */
//  158       osal_msg_deallocate( msgPtr );
//  159       /* Next */
//  160       msgPtr = osal_msg_receive( Hal_TaskID );
//  161     }
//  162     return events ^ SYS_EVENT_MSG;
//  163   }
//  164 
//  165   if ( events & HAL_LED_BLINK_EVENT )
        MOV	A,R6
        ANL	A,#0x2
        JZ	??Hal_ProcessEvent_2
//  166   {
//  167 #if (defined (BLINK_LEDS)) && (HAL_LED == TRUE)
//  168     HalLedUpdate();
        ; Setup parameters for call to function HalLedUpdate
        MOV	DPTR,#(HalLedUpdate & 0xffff)
        MOV	A,#((HalLedUpdate >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  169 #endif /* BLINK_LEDS && HAL_LED */
//  170     return events ^ HAL_LED_BLINK_EVENT;
        MOV	A,#0x2
??Hal_ProcessEvent_3:
        XRL	A,R6
        MOV	R2,A
        MOV	A,R7
??Hal_ProcessEvent_4:
        MOV	R3,A
        SJMP	??Hal_ProcessEvent_5
//  171   }
??Hal_ProcessEvent_6:
        ; Setup parameters for call to function osal_msg_deallocate
        MOV	DPTR,#(osal_msg_deallocate & 0xffff)
        MOV	A,#((osal_msg_deallocate >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
??Hal_ProcessEvent_1:
        ; Setup parameters for call to function osal_msg_receive
        MOV	DPTR,#Hal_TaskID
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(osal_msg_receive & 0xffff)
        MOV	A,#((osal_msg_receive >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,R2
        JNZ	??Hal_ProcessEvent_7
        MOV	A,R3
??Hal_ProcessEvent_7:
        JNZ	??Hal_ProcessEvent_6
        MOV	A,R6
        MOV	R2,A
        MOV	A,#-0x80
        XRL	A,R7
        SJMP	??Hal_ProcessEvent_4
//  172 
//  173   if (events & HAL_KEY_EVENT)
??Hal_ProcessEvent_2:
        MOV	A,R6
        MOV	C,0xE0 /* A   */.0
        JNC	??Hal_ProcessEvent_8
//  174   {
//  175 
//  176 #if (defined HAL_KEY) && (HAL_KEY == TRUE)
//  177     /* Check for keys */
//  178     HalKeyPoll();
        ; Setup parameters for call to function HalKeyPoll
        MOV	DPTR,#(HalKeyPoll & 0xffff)
        MOV	A,#((HalKeyPoll >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  179 
//  180     /* if interrupt disabled, do next polling */
//  181     if (!Hal_KeyIntEnable)
        MOV	DPTR,#Hal_KeyIntEnable
        MOVX	A,@DPTR
        JNZ	??Hal_ProcessEvent_9
//  182     {
//  183       osal_start_timerEx( Hal_TaskID, HAL_KEY_EVENT, 100);
        ; Setup parameters for call to function osal_start_timerEx
        MOV	R4,#0x64
        MOV	R5,#0x0
        MOV	R2,#0x1
        MOV	R3,#0x0
        MOV	DPTR,#Hal_TaskID
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(osal_start_timerEx & 0xffff)
        MOV	A,#((osal_start_timerEx >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  184     }
//  185 #endif // HAL_KEY
//  186 
//  187     return events ^ HAL_KEY_EVENT;
??Hal_ProcessEvent_9:
        MOV	A,#0x1
        SJMP	??Hal_ProcessEvent_3
//  188   }
//  189 
//  190 #ifdef POWER_SAVING
//  191   if ( events & HAL_SLEEP_TIMER_EVENT )
//  192   {
//  193     halRestoreSleepLevel();
//  194     return events ^ HAL_SLEEP_TIMER_EVENT;
//  195   }
//  196 #endif
//  197 
//  198   /* Nothing interested, discard the message */
//  199   return 0;
??Hal_ProcessEvent_8:
        MOV	R2,#0x0
        MOV	R3,#0x0
??Hal_ProcessEvent_5:
        MOV	R7,#0x2
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock3
//  200 
//  201 }
//  202 
//  203 /**************************************************************************************************
//  204  * @fn      Hal_ProcessPoll
//  205  *
//  206  * @brief   This routine will be called by OSAL to poll UART, TIMER...
//  207  *
//  208  * @param   task_id - Hal TaskId
//  209  *
//  210  * @return  None
//  211  **************************************************************************************************/

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  212 void Hal_ProcessPoll ()
Hal_ProcessPoll:
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function Hal_ProcessPoll
//  213 {
        FUNCALL Hal_ProcessPoll, HalTimerTick
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 0
//  214 
//  215   /* Timer Poll */
//  216   HalTimerTick();
        ; Setup parameters for call to function HalTimerTick
        MOV	DPTR,#(HalTimerTick & 0xffff)
        MOV	A,#((HalTimerTick >> 16) & 0xff)
        LJMP	?Subroutine0 & 0xFFFF
        CFI EndBlock cfiBlock4
//  217 
//  218   /* UART Poll */
//  219 #if (defined HAL_UART) && (HAL_UART == TRUE)
//  220   HalUARTPoll();
//  221 #endif
//  222 
//  223 }

        END
//  224 
//  225 
//  226 /**************************************************************************************************
//  227 **************************************************************************************************/
//  228 
// 
// 217 bytes in segment BANKED_CODE
//   1 byte  in segment XDATA_Z
// 
// 217 bytes of CODE  memory
//   1 byte  of XDATA memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -