📄 hal_drivers.lst
字号:
108 /* AES */
109 #if (defined HAL_AES) && (HAL_AES == TRUE)
110 HalAesInit();
\ 00001C ; Setup parameters for call to function HalAesInit
\ 00001C 90.... MOV DPTR,#(HalAesInit & 0xffff)
\ 00001F 74.. MOV A,#((HalAesInit >> 16) & 0xff)
\ 000021 12.... LCALL ?BCALL ; Banked call to: DPTR()
111 #endif
112
113 /* LCD */
114 #if (defined HAL_LCD) && (HAL_LCD == TRUE)
115 HalLcdInit();
\ 000024 ; Setup parameters for call to function HalLcdInit
\ 000024 90.... MOV DPTR,#(HalLcdInit & 0xffff)
\ 000027 74.. MOV A,#((HalLcdInit >> 16) & 0xff)
\ 000029 12.... LCALL ?BCALL ; Banked call to: DPTR()
116 #endif
117
118 /* LED */
119 #if (defined HAL_LED) && (HAL_LED == TRUE)
120 HalLedInit();
\ 00002C ; Setup parameters for call to function HalLedInit
\ 00002C 90.... MOV DPTR,#(HalLedInit & 0xffff)
\ 00002F 74.. MOV A,#((HalLedInit >> 16) & 0xff)
\ 000031 REQUIRE ?Subroutine0
\ 000031 ; // 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 }
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 **************************************************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
145 uint16 Hal_ProcessEvent( uint8 task_id, uint16 events )
\ Hal_ProcessEvent:
146 {
\ 000000 74F6 MOV A,#-0xa
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 10
\ 000005 ; Auto size: 0
\ 000005 EA MOV A,R2
\ 000006 FE MOV R6,A
\ 000007 EB MOV A,R3
\ 000008 FF MOV R7,A
147 uint8 *msgPtr;
148
149 if ( events & SYS_EVENT_MSG )
\ 000009 7480 MOV A,#-0x80
\ 00000B 5F ANL A,R7
\ 00000C F9 MOV R1,A
\ 00000D E4 CLR A
\ 00000E 7001 JNZ ??Hal_ProcessEvent_0
\ 000010 E9 MOV A,R1
\ ??Hal_ProcessEvent_0:
\ 000011 701D 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 )
\ 000013 EE MOV A,R6
\ 000014 5402 ANL A,#0x2
\ 000016 6032 JZ ??Hal_ProcessEvent_2
166 {
167 #if (defined (BLINK_LEDS)) && (HAL_LED == TRUE)
168 HalLedUpdate();
\ 000018 ; Setup parameters for call to function HalLedUpdate
\ 000018 90.... MOV DPTR,#(HalLedUpdate & 0xffff)
\ 00001B 74.. MOV A,#((HalLedUpdate >> 16) & 0xff)
\ 00001D 12.... LCALL ?BCALL ; Banked call to: DPTR()
169 #endif /* BLINK_LEDS && HAL_LED */
170 return events ^ HAL_LED_BLINK_EVENT;
\ 000020 7402 MOV A,#0x2
\ 000022 6E XRL A,R6
\ 000023 FA MOV R2,A
\ 000024 EF MOV A,R7
\ ??Hal_ProcessEvent_3:
\ 000025 FB MOV R3,A
\ 000026 8031 SJMP ??Hal_ProcessEvent_4
171 }
\ ??Hal_ProcessEvent_5:
\ 000028 ; Setup parameters for call to function osal_msg_deallocate
\ 000028 90.... MOV DPTR,#(osal_msg_deallocate & 0xffff)
\ 00002B 74.. MOV A,#((osal_msg_deallocate >> 16) & 0xff)
\ 00002D 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ ??Hal_ProcessEvent_1:
\ 000030 ; Setup parameters for call to function osal_msg_receive
\ 000030 90.... MOV DPTR,#Hal_TaskID
\ 000033 E0 MOVX A,@DPTR
\ 000034 F9 MOV R1,A
\ 000035 90.... MOV DPTR,#(osal_msg_receive & 0xffff)
\ 000038 74.. MOV A,#((osal_msg_receive >> 16) & 0xff)
\ 00003A 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00003D EA MOV A,R2
\ 00003E 7001 JNZ ??Hal_ProcessEvent_6
\ 000040 EB MOV A,R3
\ ??Hal_ProcessEvent_6:
\ 000041 70E5 JNZ ??Hal_ProcessEvent_5
\ 000043 EE MOV A,R6
\ 000044 FA MOV R2,A
\ 000045 7480 MOV A,#-0x80
\ 000047 6F XRL A,R7
\ 000048 80DB SJMP ??Hal_ProcessEvent_3
172
173 if (events & HAL_KEY_EVENT)
\ ??Hal_ProcessEvent_2:
\ 00004A EE MOV A,R6
\ 00004B A2E0 MOV C,0xE0 /* A */.0
\ 00004D 5006 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;
\ 00004F 7401 MOV A,#0x1
\ 000051 6E XRL A,R6
\ 000052 FA MOV R2,A
\ 000053 8004 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:
\ 000055 7A00 MOV R2,#0x0
\ 000057 7B00 MOV R3,#0x0
\ ??Hal_ProcessEvent_4:
\ 000059 7F02 MOV R7,#0x2
\ 00005B 02.... LJMP ?BANKED_LEAVE_XDATA
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 **************************************************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
212 void Hal_ProcessPoll ()
\ Hal_ProcessPoll:
213 {
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
214
215 /* Timer Poll */
216 HalTimerTick();
\ 000004 ; Setup parameters for call to function HalTimerTick
\ 000004 90.... MOV DPTR,#(HalTimerTick & 0xffff)
\ 000007 74.. MOV A,#((HalTimerTick >> 16) & 0xff)
\ 000009 80.. SJMP ?Subroutine0
217
218 /* UART Poll */
219 #if (defined HAL_UART) && (HAL_UART == TRUE)
220 HalUARTPoll();
221 #endif
222
223 }
224
225
226 /**************************************************************************************************
227 **************************************************************************************************/
228
Maximum stack usage in bytes:
Function ISTACK PSTACK XSTACK
-------- ------ ------ ------
HalDriverInit 2 0 0
-> HalTimerInit 4 0 0
-> HalAdcInit 4 0 0
-> HalDmaInit 4 0 0
-> HalAesInit 4 0 0
-> HalLcdInit 4 0 0
-> HalLedInit 4 0 0
Hal_Init 2 0 0
Hal_ProcessEvent 0 0 10
-> HalLedUpdate 0 0 20
-> osal_msg_deallocate 0 0 20
-> osal_msg_receive 0 0 20
Hal_ProcessPoll 2 0 0
-> HalTimerTick 4 0 0
Segment part sizes:
Function/Label Bytes
-------------- -----
Hal_TaskID 1
Hal_Init 11
?Subroutine0 10
HalDriverInit 49
Hal_ProcessEvent 94
Hal_ProcessPoll 11
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 + -