main.lst
来自「ARM仿真案例」· LST 代码 · 共 171 行
LST
171 行
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.40A/W32 EVALUATION 21/Jul/2006 17:04:02 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# Time limited license: 22 days left #
# #
# Cpu mode = interwork #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\Project\ucos-ii\leddisp\App\main.C #
# Command line = E:\Project\ucos-ii\leddisp\App\main.C -lCN #
# E:\Project\ucos-ii\leddisp\Debug\List\ -lA #
# E:\Project\ucos-ii\leddisp\Debug\List\ -o #
# E:\Project\ucos-ii\leddisp\Debug\Obj\ -s9 --no_cse #
# --no_unroll --no_inline --no_code_motion --no_tbaa #
# --no_clustering --no_scheduling --debug --cpu_mode #
# thumb --endian little --cpu ARM7TDMI-S #
# --stack_align 4 --interwork -e --fpu None #
# --dlib_config "e:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Evaluation\ARM\LIB\dl4tptinl8n.h" -I #
# E:\Project\ucos-ii\leddisp\ -I #
# E:\Project\ucos-ii\leddisp\App\ -I #
# E:\Project\ucos-ii\leddisp\ARM\ -I #
# E:\Project\ucos-ii\leddisp\BSP\ -I #
# E:\Project\ucos-ii\leddisp\uCOS-II\ -I "e:\Program #
# Files\IAR Systems\Embedded Workbench 4.0 #
# Evaluation\ARM\INC\" #
# List file = E:\Project\ucos-ii\leddisp\Debug\List\main.lst #
# Object file = E:\Project\ucos-ii\leddisp\Debug\Obj\main.r79 #
# #
# #
##############################################################################
E:\Project\ucos-ii\leddisp\App\main.C
1
2 /********************************************************************************************************/
3
4 #include <includes.h>
5
6 #define TASK_STK_SIZE 64
\ In segment DATA_Z, align 4, align-sorted
7 OS_STK Main_TaskStk[TASK_STK_SIZE];
\ Main_TaskStk:
\ 00000000 DS8 256
8 void Main_Task(void *data);
9 /*******************************************************************************
10 * 函数名称: main
11 * 功能描述: c语言的主函数,由它启动多任务环境
12 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
13 int main (void)
14 {
\ main:
\ 00000000 00B5 PUSH {LR}
15 OSInit();
\ 00000002 ........ _BLF OSInit,??OSInit??rT
16 OSTaskCreate(Main_Task, (void *)0, &Main_TaskStk[TASK_STK_SIZE - 1], 0);
\ 00000006 0023 MOVS R3,#+0
\ 00000008 044A LDR R2,??main_0 ;; Main_TaskStk + 252
\ 0000000A 0021 MOVS R1,#+0
\ 0000000C 0448 LDR R0,??main_0+0x4 ;; Main_Task
\ 0000000E ........ _BLF OSTaskCreate,??OSTaskCreate??rT
17 OSStart();
\ 00000012 ........ _BLF OSStart,??OSStart??rT
18 }
\ 00000016 0020 MOVS R0,#+0
\ 00000018 02BC POP {R1}
\ 0000001A 0847 BX R1 ;; return
\ ??main_0:
\ 0000001C ........ DC32 Main_TaskStk + 252
\ 00000020 ........ DC32 Main_Task
19 /*******************************************************************************
20 * 函数名称: Main_Task
21 * 功能描述: μCOS-II的第一个任务,通常由它初始化目标板和建立其它任务
22 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
23 void Main_Task(void *p_arg)
24 { int i;
\ Main_Task:
\ 00000000 10B5 PUSH {R4,LR}
25 p_arg = p_arg; /* 避免编译警告 */
26 BSP_Init();
\ 00000002 ........ _BLF BSP_Init,??BSP_Init??rT
27 LED_Off(0);
\ 00000006 0020 MOVS R0,#+0
\ 00000008 ........ _BLF LED_Off,??LED_Off??rT
28 while (TRUE){
29 for (i = 1; i <= 16; i++) {
\ ??Main_Task_0:
\ 0000000C 0124 MOVS R4,#+1
30 LED_On(i);
\ ??Main_Task_1:
\ 0000000E 2006 LSLS R0,R4,#+24
\ 00000010 000E LSRS R0,R0,#+24
\ 00000012 ........ _BLF LED_On,??LED_On??rT
31 OSTimeDlyHMSM(0, 0, 0, 50);
\ 00000016 3223 MOVS R3,#+50
\ 00000018 0022 MOVS R2,#+0
\ 0000001A 0021 MOVS R1,#+0
\ 0000001C 0800 MOVS R0,R1
\ 0000001E ........ _BLF OSTimeDlyHMSM,??OSTimeDlyHMSM??rT
32 LED_Off(i);
\ 00000022 2006 LSLS R0,R4,#+24
\ 00000024 000E LSRS R0,R0,#+24
\ 00000026 ........ _BLF LED_Off,??LED_Off??rT
33 }
\ 0000002A 641C ADDS R4,R4,#+1
\ 0000002C 112C CMP R4,#+17
\ 0000002E EEDB BLT ??Main_Task_1
34 for (i = 1; i <= 16; i++) {
\ 00000030 0124 MOVS R4,#+1
35 LED_On(17 - i);
\ ??Main_Task_2:
\ 00000032 1120 MOVS R0,#+17
\ 00000034 001B SUBS R0,R0,R4
\ 00000036 0006 LSLS R0,R0,#+24
\ 00000038 000E LSRS R0,R0,#+24
\ 0000003A ........ _BLF LED_On,??LED_On??rT
36 OSTimeDlyHMSM(0, 0, 0, 50);
\ 0000003E 3223 MOVS R3,#+50
\ 00000040 0022 MOVS R2,#+0
\ 00000042 0021 MOVS R1,#+0
\ 00000044 0800 MOVS R0,R1
\ 00000046 ........ _BLF OSTimeDlyHMSM,??OSTimeDlyHMSM??rT
37 LED_Off(17 - i);
\ 0000004A 1120 MOVS R0,#+17
\ 0000004C 001B SUBS R0,R0,R4
\ 0000004E 0006 LSLS R0,R0,#+24
\ 00000050 000E LSRS R0,R0,#+24
\ 00000052 ........ _BLF LED_Off,??LED_Off??rT
38 }
\ 00000056 641C ADDS R4,R4,#+1
\ 00000058 112C CMP R4,#+17
\ 0000005A D7DA BGE ??Main_Task_0
\ 0000005C E9E7 B ??Main_Task_2
39 }
40 }
41 /**********************************End Of File***********************************/
Maximum stack usage in bytes:
Function CSTACK
-------- ------
Main_Task 8
main 4
Segment part sizes:
Function/Label Bytes
-------------- -----
Main_TaskStk 256
main 36
Main_Task 94
Others 100
218 bytes in segment CODE
256 bytes in segment DATA_Z
12 bytes in segment INITTAB
130 bytes of CODE memory (+ 100 bytes shared)
256 bytes of DATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?