📄 hal_drivers.s51
字号:
// 80
// 81 }
SJMP ??Subroutine0_0
CFI EndBlock cfiBlock0
// 82
// 83 /**************************************************************************************************
// 84 * @fn Hal_DriverInit
// 85 *
// 86 * @brief Initialize HW - These need to be initialized before anyone.
// 87 *
// 88 * @param task_id - Hal TaskId
// 89 *
// 90 * @return None
// 91 **************************************************************************************************/
RSEG BANKED_CODE:CODE:NOROOT(0)
// 92 void HalDriverInit (void)
HalDriverInit:
CFI Block cfiBlock1 Using cfiCommon0
CFI Function HalDriverInit
// 93 {
FUNCALL HalDriverInit, HalTimerInit
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL HalDriverInit, HalAdcInit
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL HalDriverInit, HalDmaInit
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL HalDriverInit, HalAesInit
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL HalDriverInit, HalLcdInit
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL HalDriverInit, HalLedInit
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
// 94 /* TIMER */
// 95 HalTimerInit();
; Setup parameters for call to function HalTimerInit
MOV DPTR,#(HalTimerInit & 0xffff)
MOV A,#((HalTimerInit >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 96
// 97 /* ADC */
// 98 #if (defined HAL_ADC) && (HAL_ADC == TRUE)
// 99 HalAdcInit();
; Setup parameters for call to function HalAdcInit
MOV DPTR,#(HalAdcInit & 0xffff)
MOV A,#((HalAdcInit >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 100 #endif
// 101
// 102 /* DMA */
// 103 #if (defined HAL_DMA) && (HAL_DMA == TRUE)
// 104 // Must be called before the init call to any module that uses DMA.
// 105 HalDmaInit();
; Setup parameters for call to function HalDmaInit
MOV DPTR,#(HalDmaInit & 0xffff)
MOV A,#((HalDmaInit >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 106 #endif
// 107
// 108 /* AES */
// 109 #if (defined HAL_AES) && (HAL_AES == TRUE)
// 110 HalAesInit();
; Setup parameters for call to function HalAesInit
MOV DPTR,#(HalAesInit & 0xffff)
MOV A,#((HalAesInit >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 111 #endif
// 112
// 113 /* LCD */
// 114 #if (defined HAL_LCD) && (HAL_LCD == TRUE)
// 115 HalLcdInit();
; Setup parameters for call to function HalLcdInit
MOV DPTR,#(HalLcdInit & 0xffff)
MOV A,#((HalLcdInit >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 116 #endif
// 117
// 118 /* LED */
// 119 #if (defined HAL_LED) && (HAL_LED == TRUE)
// 120 HalLedInit();
; Setup parameters for call to function HalLedInit
MOV DPTR,#(HalLedInit & 0xffff)
MOV A,#((HalLedInit >> 16) & 0xff)
CFI EndBlock cfiBlock1
REQUIRE ?Subroutine0
; // Fall through to label ?Subroutine0
// 121 #endif
// 122
// 123 /* UART */
// 124 #if (defined HAL_UART) && (HAL_UART == TRUE)
// 125 HalUARTInit();
// 126 #endif
// 127
// 128 /* KEY */
// 129 #if (defined HAL_KEY) && (HAL_KEY == TRUE)
// 130 HalKeyInit();
// 131 #endif
// 132 }
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
CFI Block cfiBlock2 Using cfiCommon0
CFI NoFunction
CFI CFA_SP SP+-5
CFI DPL0 Frame(CFA_SP, 4)
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
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
XRL A,R6
MOV R2,A
MOV A,R7
??Hal_ProcessEvent_3:
MOV R3,A
SJMP ??Hal_ProcessEvent_4
// 171 }
??Hal_ProcessEvent_5:
; 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_6
MOV A,R3
??Hal_ProcessEvent_6:
JNZ ??Hal_ProcessEvent_5
MOV A,R6
MOV R2,A
MOV A,#-0x80
XRL A,R7
SJMP ??Hal_ProcessEvent_3
// 172
// 173 if (events & HAL_KEY_EVENT)
??Hal_ProcessEvent_2:
MOV A,R6
MOV C,0xE0 /* A */.0
JNC ??Hal_ProcessEvent_7
// 174 {
// 175
// 176 #if (defined HAL_KEY) && (HAL_KEY == TRUE)
// 177 /* Check for keys */
// 178 HalKeyPoll();
// 179
// 180 /* if interrupt disabled, do next polling */
// 181 if (!Hal_KeyIntEnable)
// 182 {
// 183 osal_start_timerEx( Hal_TaskID, HAL_KEY_EVENT, 100);
// 184 }
// 185 #endif // HAL_KEY
// 186
// 187 return events ^ HAL_KEY_EVENT;
MOV A,#0x1
XRL A,R6
MOV R2,A
SJMP ??Hal_ProcessEvent_4
// 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_7:
MOV R2,#0x0
MOV R3,#0x0
??Hal_ProcessEvent_4:
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)
SJMP ?Subroutine0
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
//
// 175 bytes in segment BANKED_CODE
// 1 byte in segment XDATA_Z
//
// 175 bytes of CODE memory
// 1 byte of XDATA memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -