📄 main.lst
字号:
C51 COMPILER V7.20 MAIN 09/30/2006 10:50:42 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <includes.h>
2
3 #define MAX_STK_SIZE 64
4 extern void serial_initial(void);
5 void TaskStartyya(void *yydata) reentrant;
6 void TaskStartyyb(void *yydata) reentrant;
7 void TaskStartyyc(void *yydata) reentrant;
8
9 OS_STK TaskStartStkyya[MAX_STK_SIZE+1];//注意:我在ASM文件中设置?STACK空间为40H即64,不要超出范围。
10 OS_STK TaskStartStkyyb[MAX_STK_SIZE+1];//用户栈多一个字节存长度
11 OS_STK TaskStartStkyyc[MAX_STK_SIZE+1];
12
13 void *MessageStorage[2];
14 OS_EVENT *Uart0ReviceMbox;
15 INT8U err,i;
16 INT8U *cp,*Buf;
17 INT8U *o,*t,*th,*f;
18
19 void main(void)
20 {
21 1 o="one";
22 1 t="two";
23 1 th="three";
24 1 f="four";
25 1 OSInit();
26 1 serial_initial();
27 1 InitTimer0();
28 1 Uart0ReviceMbox = OSQCreate(MessageStorage,2);
29 1 OSTaskCreate(TaskStartyya, (void *)0, &TaskStartStkyya[0],2);
30 1 OSTaskCreate(TaskStartyyb, (void *)0, &TaskStartStkyyb[0],3);
31 1 OSTaskCreate(TaskStartyyc, (void *)0, &TaskStartStkyyc[0],4);
32 1
33 1 OSStart();
34 1 }
35
36 void TaskStartyya(void *yydata) reentrant
37 {
38 1 yydata=yydata;
39 1
40 1
41 1
42 1 for(;;){
43 2 cp = (INT8U *)OSQPend(Uart0ReviceMbox, 80, &err); /* 接收数据 */
44 2 if(cp==o) {
45 3 printf("one\n");
46 3
47 3 }
48 2 else if(cp==t) printf("two\n");
49 2 else if (cp==th) printf("three\n");
50 2 else if(cp==f) printf("four\n");
51 2 else printf("wait timeout\n");
52 2 }
53 1
54 1 }
55
C51 COMPILER V7.20 MAIN 09/30/2006 10:50:42 PAGE 2
56 void TaskStartyyb(void *yydata) reentrant
57 {
58 1 yydata=yydata;
59 1
60 1 for(;;){
61 2 i=P0;
62 2 switch(i)
63 2 {
64 3 case 1: Buf="one";break;
65 3 case 2: Buf="two";break;
66 3 case 4: Buf="three";break;
67 3 case 8: Buf="four";break;
68 3 default: Buf="error";break;
69 3 }
70 2 if((Buf==o)||(Buf==t)||(Buf==th)||(Buf==f)) OSQPost(Uart0ReviceMbox, (void *)Buf);
71 2
72 2 //OSTimeDly(2*OS_TICKS_PER_SEC);
73 2 }
74 1
75 1 }
76
77 void TaskStartyyc(void *yydata) reentrant
78 {
79 1 yydata=yydata;
80 1
81 1 for(;;){
82 2
83 2
84 2 printf("t3.\n");
85 2
86 2 //OSTimeDly(3*OS_TICKS_PER_SEC);
87 2
88 2 }
89 1 }
90
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1019 ----
CONSTANT SIZE = 67 ----
XDATA SIZE = 224 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -