📄 app.lst
字号:
250 }
251 }
252
253
254
255 /*
256 *********************************************************************************************************
257 * App_EventCreate()
258 *
259 * Description : Create the application events.
260 *
261 * Argument(s) : none.
262 *
263 * Return(s) : none.
264 *
265 * Caller(s) : App_TaskStart().
266 *
267 * Note(s) : none.
268 *********************************************************************************************************
269 */
270
\ In segment CODE, align 4, keep-with-next
271 static void App_EventCreate (void)
272 {
\ App_EventCreate:
\ 00000000 11B5 PUSH {R0,R4,LR}
273 #if (OS_EVENT_NAME_SIZE > 12)
274 CPU_INT08U os_err;
275 #endif
276
277
278 App_UserIFMbox = OSMboxCreate((void *)0); /* Create MBOX for communication between Kbd and UserIF.*/
\ 00000002 .... LDR.N R4,??DataTable2 ;; App_UserIFMbox
\ 00000004 0020 MOVS R0,#+0
\ 00000006 ........ _BLF OSMboxCreate,??OSMboxCreate??rT
\ 0000000A 2060 STR R0,[R4, #+0]
279 #if (OS_EVENT_NAME_SIZE > 12)
280 OSEventNameSet(App_UserIFMbox, "User IF Mbox", &os_err);
\ 0000000C 6A46 MOV R2,SP
\ 0000000E 0249 LDR.N R1,??App_EventCreate_0 ;; `?<Constant "User IF Mbox">`
\ 00000010 ........ _BLF OSEventNameSet,??OSEventNameSet??rT
281 #endif
282 }
\ 00000014 11BD POP {R0,R4,PC} ;; return
\ 00000016 00BF Nop
\ ??App_EventCreate_0:
\ 00000018 ........ DC32 `?<Constant "User IF Mbox">`
283
284
285 /*
286 *********************************************************************************************************
287 * App_TaskCreate()
288 *
289 * Description : Create the application tasks.
290 *
291 * Argument(s) : none.
292 *
293 * Return(s) : none.
294 *
295 * Caller(s) : App_TaskStart().
296 *
297 * Note(s) : none.
298 *********************************************************************************************************
299 */
300
\ In segment CODE, align 4, keep-with-next
301 static void App_TaskCreate (void)
302 {
\ App_TaskCreate:
\ 00000000 31B5 PUSH {R0,R4,R5,LR}
303 CPU_INT08U os_err;
304
305
306 os_err = OSTaskCreateExt((void (*)(void *)) App_TaskUserIF,
307 (void * ) 0,
308 (OS_STK * )&App_TaskUserIFStk[APP_TASK_USER_IF_STK_SIZE - 1],
309 (INT8U ) APP_TASK_USER_IF_PRIO,
310 (INT16U ) APP_TASK_USER_IF_PRIO,
311 (OS_STK * )&App_TaskUserIFStk[0],
312 (INT32U ) APP_TASK_USER_IF_STK_SIZE,
313 (void * ) 0,
314 (INT16U )(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK));
\ 00000002 184C LDR.N R4,??App_TaskCreate_0 ;; App_TaskUserIFStk
\ 00000004 0323 MOVS R3,#+3
\ 00000006 0022 MOVS R2,#+0
\ 00000008 5FF48071 MOVS R1,#+256
\ 0000000C 2000 MOVS R0,R4
\ 0000000E 0FB4 PUSH {R0-R3}
\ 00000010 0C20 MOVS R0,#+12
\ 00000012 01B4 PUSH {R0}
\ 00000014 0346 MOV R3,R0
\ 00000016 04F2FC32 ADDW R2,R4,#+1020
\ 0000001A 0021 MOVS R1,#+0
\ 0000001C 1248 LDR.N R0,??App_TaskCreate_0+0x4 ;; App_TaskUserIF
\ 0000001E ........ _BLF OSTaskCreateExt,??OSTaskCreateExt??rT
\ 00000022 8DF81400 STRB R0,[SP, #+20]
315
316 #if (OS_TASK_NAME_SIZE >= 9)
317 OSTaskNameSet(APP_TASK_USER_IF_PRIO, "User I/F", &os_err);
\ 00000026 114D LDR.N R5,??App_TaskCreate_0+0x8 ;; `?<Constant "User I/F">`
\ 00000028 05AA ADD R2,SP,#+20
\ 0000002A 2900 MOVS R1,R5
\ 0000002C 0C20 MOVS R0,#+12
\ 0000002E ........ _BLF OSTaskNameSet,??OSTaskNameSet??rT
318 #endif
319
320 os_err = OSTaskCreateExt((void (*)(void *)) App_TaskKbd,
321 (void * ) 0,
322 (OS_STK * )&App_TaskKbdStk[APP_TASK_KBD_STK_SIZE - 1],
323 (INT8U ) APP_TASK_KBD_PRIO,
324 (INT16U ) APP_TASK_KBD_PRIO,
325 (OS_STK * )&App_TaskKbdStk[0],
326 (INT32U ) APP_TASK_KBD_STK_SIZE,
327 (void * ) 0,
328 (INT16U )(OS_TASK_OPT_STK_CLR | OS_TASK_OPT_STK_CHK));
\ 00000032 0323 MOVS R3,#+3
\ 00000034 0022 MOVS R2,#+0
\ 00000036 8021 MOVS R1,#+128
\ 00000038 14F58060 ADDS R0,R4,#+1024
\ 0000003C 0FB4 PUSH {R0-R3}
\ 0000003E 0420 MOVS R0,#+4
\ 00000040 01B4 PUSH {R0}
\ 00000042 0346 MOV R3,R0
\ 00000044 04F2FC52 ADDW R2,R4,#+1532
\ 00000048 0021 MOVS R1,#+0
\ 0000004A 0948 LDR.N R0,??App_TaskCreate_0+0xC ;; App_TaskKbd
\ 0000004C ........ _BLF OSTaskCreateExt,??OSTaskCreateExt??rT
\ 00000050 0AB0 ADD SP,SP,#+40
\ 00000052 8DF80000 STRB R0,[SP, #+0]
329
330 #if (OS_TASK_NAME_SIZE >= 9)
331 OSTaskNameSet(APP_TASK_KBD_PRIO, "Keyboard", &os_err);
\ 00000056 6A46 MOV R2,SP
\ 00000058 0C35 ADDS R5,R5,#+12
\ 0000005A 2900 MOVS R1,R5
\ 0000005C 0420 MOVS R0,#+4
\ 0000005E ........ _BLF OSTaskNameSet,??OSTaskNameSet??rT
332 #endif
333 }
\ 00000062 31BD POP {R0,R4,R5,PC} ;; return
\ ??App_TaskCreate_0:
\ 00000064 ........ DC32 App_TaskUserIFStk
\ 00000068 ........ DC32 App_TaskUserIF
\ 0000006C ........ DC32 `?<Constant "User I/F">`
\ 00000070 ........ DC32 App_TaskKbd
334
335
336 /*
337 *********************************************************************************************************
338 * App_TaskKbd()
339 *
340 * Description : Monitor the state of the push buttons and passes messages to AppTaskUserIF()
341 *
342 * Argument(s) : p_arg Argument passed to 'App_TaskKbd()' by 'OSTaskCreate()'.
343 *
344 * Return(s) : none.
345 *
346 * Caller(s) : This is a task.
347 *
348 * Note(s) : none.
349 *********************************************************************************************************
350 */
351
\ In segment CODE, align 4, keep-with-next
352 static void App_TaskKbd (void *p_arg)
353 {
\ App_TaskKbd:
\ 00000000 F0B5 PUSH {R4-R7,LR}
354 CPU_BOOLEAN b1_prev;
355 CPU_BOOLEAN b1;
356 CPU_INT08U key;
357
358
359 (void)p_arg;
360
361 b1_prev = DEF_FALSE;
\ 00000002 0027 MOVS R7,#+0
362 key = 1;
\ 00000004 0124 MOVS R4,#+1
\ 00000006 2600 MOVS R6,R4
\ 00000008 0DE0 B.N ??App_TaskKbd_0
363
364 while (DEF_TRUE) {
365 b1 = BSP_PB_GetStatus(1);
366
367 if ((b1 == DEF_TRUE) && (b1_prev == DEF_FALSE)) {
368 if (key == 2) {
369 key = 1;
370 } else {
371 key++;
\ ??App_TaskKbd_1:
\ 0000000A 761C ADDS R6,R6,#+1
\ 0000000C F6B2 UXTB R6,R6
372 }
373
374 OSMboxPost(App_UserIFMbox, (void *)key);
\ ??App_TaskKbd_2:
\ 0000000E 3100 MOVS R1,R6
\ 00000010 .... LDR.N R0,??DataTable2 ;; App_UserIFMbox
\ 00000012 0068 LDR R0,[R0, #+0]
\ 00000014 ........ _BLF OSMboxPost,??OSMboxPost??rT
375 }
376
377 b1_prev = b1;
\ ??App_TaskKbd_3:
\ 00000018 2F00 MOVS R7,R5
378
379 OSTimeDlyHMSM(0, 0, 0, 20);
\ 0000001A 1423 MOVS R3,#+20
\ 0000001C 0022 MOVS R2,#+0
\ 0000001E 1146 MOV R1,R2
\ 00000020 0846 MOV R0,R1
\ 00000022 ........ _BLF OSTimeDlyHMSM,??OSTimeDlyHMSM??rT
\ ??App_TaskKbd_0:
\ 00000026 2046 MOV R0,R4
\ 00000028 ........ _BLF BSP_PB_GetStatus,??BSP_PB_GetStatus??rT
\ 0000002C 0500 MOVS R5,R0
\ 0000002E 0128 CMP R0,#+1
\ 00000030 F2D1 BNE.N ??App_TaskKbd_3
\ 00000032 002F CMP R7,#+0
\ 00000034 F0D1 BNE.N ??App_TaskKbd_3
\ 00000036 3000 MOVS R0,R6
\ 00000038 0228 CMP R0,#+2
\ 0000003A E6D1 BNE.N ??App_TaskKbd_1
\ 0000003C 2600 MOVS R6,R4
\ 0000003E E6E7 B.N ??App_TaskKbd_2
380 }
381 }
382
383
384 /*
385 *********************************************************************************************************
386 * App_TaskUserIF()
387 *
388 * Description : Updates LCD.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -