📄 hal_drivers.s51
字号:
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 + -