📄 ucos_app.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION 17/Apr/2009 11:42:14 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = arm #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
# \Src\uCOS\Src\uCOS_app.c #
# Command line = E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
# \Src\uCOS\Src\uCOS_app.c -lCN #
# E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
# \Src\uCOS\RAM_Debug\List\ -o #
# E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
# \Src\uCOS\RAM_Debug\Obj\ -z2 --no_cse --no_unroll #
# --no_inline --no_code_motion --no_tbaa #
# --no_clustering --no_scheduling --debug --cpu_mode #
# arm --endian little --cpu ARM7TDMI-S --stack_align #
# 4 -e --fpu None --dlib_config "C:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Evaluation\arm\LIB\dl4tpannl8n.h" -I #
# E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
# \Src\uCOS\include\ -I E:\lixia\嵌入式\丰宝—桂电嵌入 #
# 式大赛培训\培训--实例4\Src\uCOS\ucos-ii\include\ -I #
# "C:\Program Files\IAR Systems\Embedded Workbench #
# 4.0 Evaluation\arm\INC\" #
# List file = E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
# \Src\uCOS\RAM_Debug\List\uCOS_app.lst #
# Object file = E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4 #
# \Src\uCOS\RAM_Debug\Obj\uCOS_app.r79 #
# #
# #
##############################################################################
E:\lixia\嵌入式\丰宝—桂电嵌入式大赛培训\培训--实例4\Src\uCOS\Src\uCOS_app.c
1 /*
2 *********************************************************************************************************
3 *
4 * EXAMPLE CODE
5 * uC/OS-II 2.84在LPC2400实验板上的范例程序
6 * 本程序的各种配置在app_cfg.h文件
7 *
8 * Filename : uCOS_app.c
9 * Version : V1.00
10 * Programmer(s) : HuangJianhua
11 * Time : 2008-01-11
12 *********************************************************************************************************
13 */
14 #include <includes.h>
15 #include "type.h"
16 #include "target.h" /* 目标板驱动 */
17 #include "bsp.h" /* BSP,包括中断初始化和串口驱动等 */
18
19 #include "fio.h" /* Led驱动 */
20
21 /*
22 *********************************************************************************************************
23 * 常量定义
24 *********************************************************************************************************
25 */
26 #define OS_VIEW_MODULE 1 /* 启用OS_VIEW */
27
28 /*
29 *********************************************************************************************************
30 * 本地变量
31 *********************************************************************************************************
32 */
\ In segment DATA_Z, align 4, align-sorted
33 static OS_STK AppTaskStartStk[APP_TASK_START_STK_SIZE]; /*任务堆栈 */
\ AppTaskStartStk:
\ 00000000 DS8 2048
\ In segment DATA_Z, align 4, align-sorted
34 static OS_STK AppTaskLEDStk[APP_TASK_LED_STK_SIZE];
\ AppTaskLEDStk:
\ 00000000 DS8 2048
35
36 /*
37 *********************************************************************************************************
38 * 本地函数原型
39 *********************************************************************************************************
40 */
41 static void AppTaskStart (void *p_arg);
42 static void AppTaskLed (void *p_arg);
43
44 #if OS_VIEW_MODULE > 0
45 static void AppTerminalRx (CPU_INT08U rx_data);
46 #endif
47
48 /*
49 *********************************************************************************************************
50 * main()
51 *
52 *********************************************************************************************************
53 */
\ In segment CODE, align 4, keep-with-next
54 void main (void)
55 {
\ main:
\ 00000000 00402DE9 PUSH {LR}
\ 00000004 04D04DE2 SUB SP,SP,#+4
56 CPU_INT08U err;
57
58 TargetResetInit(); /* 目标板初始化 */
\ 00000008 ........ _BLF TargetResetInit,??TargetResetInit??rA
59 GPIOInit(3,1,1); /* Led初始化 */
\ 0000000C 0120A0E3 MOV R2,#+1
\ 00000010 0110A0E3 MOV R1,#+1
\ 00000014 0300A0E3 MOV R0,#+3
\ 00000018 ........ _BLF GPIOInit,??GPIOInit??rA
60 Ser_Init (); /* 串口初始化 */
\ 0000001C ........ _BLF Ser_Init,??Ser_Init??rA
61 Ser_Printf("\r\nuC/OS-II now start running ... \r\n");
\ 00000020 64009FE5 LDR R0,??main_0 ;; `?<Constant "\\r\\nuC/OS-II now start ...">`
\ 00000024 ........ _BLF Ser_Printf,??Ser_Printf??rA
62
63 BSP_IntDisAll(); /* 禁用中断,直到OS启用 */
\ 00000028 ........ _BLF BSP_IntDisAll,??BSP_IntDisAll??rA
64
65 OSInit(); /* uC/OS-II初始化 */
\ 0000002C ........ _BLF OSInit,??OSInit??rA
66
67 OSTaskCreateExt(AppTaskStart, /* 建立初始任务 */
68 (void *)0,
69 (OS_STK *)&AppTaskStartStk[APP_TASK_START_STK_SIZE - 1],
70 APP_TASK_START_PRIO,
71 APP_TASK_START_PRIO,
72 (OS_STK *)&AppTaskStartStk[0],
73 APP_TASK_START_STK_SIZE,
74 (void *)0,
75 OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
\ 00000030 0300A0E3 MOV R0,#+3
\ 00000034 01002DE9 PUSH {R0}
\ 00000038 0000A0E3 MOV R0,#+0
\ 0000003C 01002DE9 PUSH {R0}
\ 00000040 800FA0E3 MOV R0,#+512
\ 00000044 01002DE9 PUSH {R0}
\ 00000048 40009FE5 LDR R0,??main_0+0x4 ;; AppTaskStartStk
\ 0000004C 01002DE9 PUSH {R0}
\ 00000050 0100A0E3 MOV R0,#+1
\ 00000054 01002DE9 PUSH {R0}
\ 00000058 0130A0E3 MOV R3,#+1
\ 0000005C 30209FE5 LDR R2,??main_0+0x8 ;; AppTaskStartStk + 2044
\ 00000060 0010A0E3 MOV R1,#+0
\ 00000064 2C009FE5 LDR R0,??main_0+0xC ;; AppTaskStart
\ 00000068 ........ _BLF OSTaskCreateExt,??OSTaskCreateExt??rA
\ 0000006C 14D08DE2 ADD SP,SP,#+20 ;; stack cleaning
76
77 #if OS_TASK_NAME_SIZE > 13
78 OSTaskNameSet(APP_TASK_START_PRIO, "Start Task", &err); /* 任务命名 */
\ 00000070 0D20B0E1 MOVS R2,SP
\ 00000074 20109FE5 LDR R1,??main_0+0x10 ;; `?<Constant "Start Task">`
\ 00000078 0100A0E3 MOV R0,#+1
\ 0000007C ........ _BLF OSTaskNameSet,??OSTaskNameSet??rA
79 #endif
80
81 OSStart(); /* 开始多任务调度 */
\ 00000080 ........ _BLF OSStart,??OSStart??rA
82 }
\ 00000084 04D08DE2 ADD SP,SP,#+4 ;; stack cleaning
\ 00000088 0080BDE8 POP {PC} ;; return
\ ??main_0:
\ 0000008C ........ DC32 `?<Constant "\\r\\nuC/OS-II now start ...">`
\ 00000090 ........ DC32 AppTaskStartStk
\ 00000094 ........ DC32 AppTaskStartStk + 2044
\ 00000098 ........ DC32 AppTaskStart
\ 0000009C ........ DC32 `?<Constant "Start Task">`
83
84 /*
85 *********************************************************************************************************
86 * STARTUP TASK
87 *
88 * Description : 这是一个初始任务范例,它启动其它任务,并在串口上打印提示信息。
89 * 系统节拍tick必须在这里,也就是多任务开始以后启动。
90 *
91 * Arguments : p_arg 是一个参数 passed to 'AppStartTask()' by 'OSTaskCreate()'.
92 *
93 * Returns : none
94 *
95 * Notes : 程序的第一行只是为了防止出现编译警告。编译器不会为它产生任何代码。
96 *********************************************************************************************************
97 */
\ In segment CODE, align 4, keep-with-next
98 static void AppTaskStart (void *p_arg)
99 {
\ AppTaskStart:
\ 00000000 30402DE9 PUSH {R4,R5,LR}
\ 00000004 0040B0E1 MOVS R4,R0
100 (void)p_arg;
101 CPU_INT32U delay0;
102
103 BSP_Init(); /* 在BSP初始化时进行系统节拍tick初始化 */
\ 00000008 ........ _BLF BSP_Init,??BSP_Init??rA
104
105 #if OS_TASK_STAT_EN > 0
106 OSStatInit(); /* 启动系统统计任务 */
\ 0000000C ........ _BLF OSStatInit,??OSStatInit??rA
107 #endif
108
109 #if OS_VIEW_MODULE > 0
110 OSView_Init(115200); /* OSView 初始化, baud rate = 115200 */
\ 00000010 400BA0E3 MOV R0,#+65536
\ 00000014 C20C80E3 ORR R0,R0,#0xC200
\ 00000018 ........ _BLF OSView_Init,??OSView_Init??rA
111 OSView_TerminalRxSetCallback(AppTerminalRx);
\ 0000001C 90009FE5 LDR R0,??AppTaskStart_0 ;; AppTerminalRx
\ 00000020 ........ _BLF OSView_TerminalRxSetCallback,??OSView_TerminalRxSetCallback??rA
112 OSView_RxIntEn(); /* 启动接收中断 */
\ 00000024 ........ _BLF OSView_RxIntEn,??OSView_RxIntEn??rA
113 #endif
114
115 /******************************************* 创建其它任务在这里实现 *************************************/
116 OSTaskCreateExt(AppTaskLed, /* 第二个任务建立 */
117 (void *)0,
118 (OS_STK *)&AppTaskLEDStk[APP_TASK_LED_STK_SIZE - 1],
119 APP_TASK_Led_PRIO,
120 APP_TASK_Led_PRIO,
121 (OS_STK *)&AppTaskLEDStk[0],
122 APP_TASK_LED_STK_SIZE,
123 (void *)0,
124 OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
\ 00000028 0300A0E3 MOV R0,#+3
\ 0000002C 01002DE9 PUSH {R0}
\ 00000030 0000A0E3 MOV R0,#+0
\ 00000034 01002DE9 PUSH {R0}
\ 00000038 800FA0E3 MOV R0,#+512
\ 0000003C 01002DE9 PUSH {R0}
\ 00000040 70009FE5 LDR R0,??AppTaskStart_0+0x4 ;; AppTaskLEDStk
\ 00000044 01002DE9 PUSH {R0}
\ 00000048 0200A0E3 MOV R0,#+2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -