📄 dynamic.lst
字号:
308 xSuspendedQueueSendError = pdTRUE;
\ 00001C 9243.... MOV.W #0x1, &xSuspendedQueueSendError
309 }
310 }
311 xTaskResumeAll();
\ ??vQueueSendWhenSuspendedTask_1:
\ 000020 B012.... CALL #xTaskResumeAll
312
313 vTaskDelay( priSLEEP_TIME );
\ 000024 3C403200 MOV.W #0x32, R12
\ 000028 B012.... CALL #vTaskDelay
314
315 ++ulValueToSend;
\ 00002C 9253.... ADD.W #0x1, &??ulValueToSend
\ 000030 8263.... ADDC.W #0x0, &??ulValueToSend + 2
\ 000034 E73F JMP ??vQueueSendWhenSuspendedTask_0
316 }
317 }
\ In segment DATA16_Z, align 2, align-sorted
\ 000000 REQUIRE ?cstart_init_zero
\ ??ulValueToSend:
\ 000000 DS8 4
318 /*-----------------------------------------------------------*/
319
\ In segment CODE, align 2
320 static portTASK_FUNCTION( vQueueReceiveWhenSuspendedTask, pvParameters )
\ vQueueReceiveWhenSuspendedTask:
321 {
\ 000000 0A12 PUSH.W R10
\ 000002 0B12 PUSH.W R11
\ 000004 0A4C MOV.W R12, R10
322 static unsigned portLONG ulExpectedValue = ( unsigned portLONG ) 0, ulReceivedValue;
323 portBASE_TYPE xGotValue;
324
325 /* Just to stop warning messages. */
326 ( void ) pvParameters;
327
328 for( ;; )
329 {
330 do
331 {
332 /* Suspending the scheduler here is fairly pointless and
333 undesirable for a normal application. It is done here purely
334 to test the scheduler. The inner xTaskResumeAll() should
335 never return pdTRUE as the scheduler is still locked by the
336 outer call. */
337 vTaskSuspendAll();
\ ??vQueueReceiveWhenSuspendedTask_0:
\ 000006 B012.... CALL #vTaskSuspendAll
338 {
339 vTaskSuspendAll();
\ 00000A B012.... CALL #vTaskSuspendAll
340 {
341 xGotValue = xQueueReceive( xSuspendedTestQueue, ( void * ) &ulReceivedValue, priNO_BLOCK );
\ 00000E 0312 PUSH.W #0x0
\ 000010 3E40.... MOV.W #??ulReceivedValue, R14
\ 000014 1C42.... MOV.W &xSuspendedTestQueue, R12
\ 000018 B012.... CALL #xQueueReceive
\ 00001C 0B4C MOV.W R12, R11
342 }
343 if( xTaskResumeAll() )
\ 00001E B012.... CALL #xTaskResumeAll
\ 000022 2153 ADD.W #0x2, SP
\ 000024 0C93 CMP.W #0x0, R12
\ 000026 0224 JEQ ??vQueueReceiveWhenSuspendedTask_1
344 {
345 xSuspendedQueueReceiveError = pdTRUE;
\ 000028 9243.... MOV.W #0x1, &xSuspendedQueueReceiveError
346 }
347 }
348 xTaskResumeAll();
\ ??vQueueReceiveWhenSuspendedTask_1:
\ 00002C B012.... CALL #xTaskResumeAll
349
350 } while( xGotValue == pdFALSE );
\ 000030 0B93 CMP.W #0x0, R11
\ 000032 E927 JEQ ??vQueueReceiveWhenSuspendedTask_0
351
352 if( ulReceivedValue != ulExpectedValue )
\ 000034 9292........ CMP.W &??ulExpectedValue, &??ulReceivedValue
\ 00003A 0420 JNE ??vQueueReceiveWhenSuspendedTask_2
\ 00003C 9292........ CMP.W &??ulExpectedValue + 2, &??ulReceivedValue + 2
\ 000042 0224 JEQ ??vQueueReceiveWhenSuspendedTask_3
353 {
354 xSuspendedQueueReceiveError = pdTRUE;
\ ??vQueueReceiveWhenSuspendedTask_2:
\ 000044 9243.... MOV.W #0x1, &xSuspendedQueueReceiveError
355 }
356
357 ++ulExpectedValue;
\ ??vQueueReceiveWhenSuspendedTask_3:
\ 000048 9253.... ADD.W #0x1, &??ulExpectedValue
\ 00004C 8263.... ADDC.W #0x0, &??ulExpectedValue + 2
\ 000050 DA3F JMP ??vQueueReceiveWhenSuspendedTask_0
358 }
359 }
\ In segment DATA16_Z, align 2, align-sorted
\ 000000 REQUIRE ?cstart_init_zero
\ ??ulExpectedValue:
\ 000000 DS8 4
\ In segment DATA16_Z, align 2, align-sorted
\ 000000 REQUIRE ?cstart_init_zero
\ ??ulReceivedValue:
\ 000000 DS8 4
360 /*-----------------------------------------------------------*/
361
362 /* Called to check that all the created tasks are still running without error. */
\ In segment CODE, align 2
363 portBASE_TYPE xAreDynamicPriorityTasksStillRunning( void )
\ xAreDynamicPriorityTasksStillRunning:
364 {
365 /* Keep a history of the check variables so we know if it has been incremented
366 since the last call. */
367 static unsigned portSHORT usLastTaskCheck = ( unsigned portSHORT ) 0;
368 portBASE_TYPE xReturn = pdTRUE;
\ 000000 1C43 MOV.W #0x1, R12
369
370 /* Check the tasks are still running by ensuring the check variable
371 is still incrementing. */
372
373 if( usCheckVariable == usLastTaskCheck )
\ 000002 9292........ CMP.W &??usLastTaskCheck, &usCheckVariable
\ 000008 0120 JNE ??xAreDynamicPriorityTasksStillRunning_0
374 {
375 /* The check has not incremented so an error exists. */
376 xReturn = pdFALSE;
\ 00000A 0C43 MOV.W #0x0, R12
377 }
378
379 if( xSuspendedQueueSendError == pdTRUE )
\ ??xAreDynamicPriorityTasksStillRunning_0:
\ 00000C 9293.... CMP.W #0x1, &xSuspendedQueueSendError
\ 000010 0120 JNE ??xAreDynamicPriorityTasksStillRunning_1
380 {
381 xReturn = pdFALSE;
\ 000012 0C43 MOV.W #0x0, R12
382 }
383
384 if( xSuspendedQueueReceiveError == pdTRUE )
\ ??xAreDynamicPriorityTasksStillRunning_1:
\ 000014 9293.... CMP.W #0x1, &xSuspendedQueueReceiveError
\ 000018 0120 JNE ??xAreDynamicPriorityTasksStillRunning_2
385 {
386 xReturn = pdFALSE;
\ 00001A 0C43 MOV.W #0x0, R12
387 }
388
389 usLastTaskCheck = usCheckVariable;
\ ??xAreDynamicPriorityTasksStillRunning_2:
\ 00001C 9242........ MOV.W &usCheckVariable, &??usLastTaskCheck
390 return xReturn;
\ 000022 3041 RET
391 }
\ In segment DATA16_Z, align 2, align-sorted
\ 000000 REQUIRE ?cstart_init_zero
\ ??usLastTaskCheck:
\ 000000 DS8 2
\ In segment DATA16_C, align 1, align-sorted
\ `?<Constant "CNT_INC">`:
\ 000000 434E545F494E DC8 "CNT_INC"
\ 4300
\ In segment DATA16_C, align 1, align-sorted
\ `?<Constant "LIM_INC">`:
\ 000000 4C494D5F494E DC8 "LIM_INC"
\ 4300
\ In segment DATA16_C, align 1, align-sorted
\ `?<Constant "C_CTRL">`:
\ 000000 435F4354524C DC8 "C_CTRL"
\ 00
\ In segment DATA16_C, align 1, align-sorted
\ `?<Constant "SUSP_TX">`:
\ 000000 535553505F54 DC8 "SUSP_TX"
\ 5800
\ In segment DATA16_C, align 1, align-sorted
\ `?<Constant "SUSP_RX">`:
\ 000000 535553505F52 DC8 "SUSP_RX"
\ 5800
Maximum stack usage in bytes:
Function CSTACK
-------- ------
vContinuousIncrementTask 8
-> uxTaskPriorityGet 8
-> vTaskPrioritySet 8
-> vTaskPrioritySet 8
vCounterControlTask 12
-> vTaskSuspend 12
-> vTaskResume 12
-> vTaskDelay 12
-> vTaskSuspendAll 12
-> xTaskResumeAll 12
-> vTaskSuspend 12
-> vTaskResume 12
-> vTaskResume 12
vLimitedIncrementTask 6
-> vTaskSuspend 6
-> vTaskSuspend 6
vQueueReceiveWhenSuspendedTask 8
-> vTaskSuspendAll 6
-> vTaskSuspendAll 6
-> xQueueReceive 8
-> xTaskResumeAll 8
-> xTaskResumeAll 6
vQueueSendWhenSuspendedTask 6
-> vTaskSuspendAll 4
-> xQueueSend 6
-> xTaskResumeAll 4
-> vTaskDelay 4
vStartDynamicPriorityTasks 42
-> xQueueCreate 2
-> xTaskCreate 10
-> xTaskCreate 18
-> xTaskCreate 26
-> xTaskCreate 34
-> xTaskCreate 42
xAreDynamicPriorityTasksStillRunning
2
Segment part sizes:
Function/Label Bytes
-------------- -----
xContinousIncrementHandle 2
xLimitedIncrementHandle 2
ulCounter 4
usCheckVariable 2
xSuspendedQueueSendError 2
xSuspendedQueueReceiveError 2
xSuspendedTestQueue 2
vStartDynamicPriorityTasks 136
vLimitedIncrementTask 48
vContinuousIncrementTask 48
vCounterControlTask 172
vQueueSendWhenSuspendedTask 54
ulValueToSend 4
vQueueReceiveWhenSuspendedTask 82
ulExpectedValue 4
ulReceivedValue 4
xAreDynamicPriorityTasksStillRunning
36
usLastTaskCheck 2
?<Constant "CNT_INC"> 8
?<Constant "LIM_INC"> 8
?<Constant "C_CTRL"> 7
?<Constant "SUSP_TX"> 8
?<Constant "SUSP_RX"> 8
576 bytes in segment CODE
39 bytes in segment DATA16_C
30 bytes in segment DATA16_Z
576 bytes of CODE memory
39 bytes of CONST memory
30 bytes of DATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -