?? app.lis
字號:
.module App.c
.area text(rom, con, rel)
0000 .dbfile C:\icc\minOS_iccavr\App.c
0000 .dbfunc s main _main fI
.even
0000 _main::
0000 2197 sbiw R28,1
0002 .dbline -1
0002 .dbline 26
; #include "OS_Includes.h"
;
; //PORTB bit4-bit7 for to drive LED1-LED4.
; #define LED1_ON() (PORTB |= (0x1<<4))
; #define LED1_OFF() (PORTB &= ~(0x1<<4))
; #define LED2_ON() (PORTB |= (0x1<<5))
; #define LED2_OFF() (PORTB &= ~(0x1<<5))
; #define LED3_ON() (PORTB |= (0x1<<6))
; #define LED3_OFF() (PORTB &= ~(0x1<<6))
; #define LED4_ON() (PORTB |= (0x1<<7))
; #define LED4_OFF() (PORTB &= ~(0x1<<7))
;
; #define INIT_LED_Drv() (DDRB |= 0xf0) //PORTB bit4-bit7 used to LED1-LED4
;
; void TaskA(void);
; #define TaskAPrio 1 //聲明任務TaskA(void)的優先級。
; OS_STK TaskAStk[MAX_STK_SIZE]; //聲明任務TaskA(void)的堆棧空間。
; void TaskB(void);
; #define TaskBPrio 2 //聲明任務TaskB(void)的優先級。
; OS_STK TaskBStk[MAX_STK_SIZE]; //聲明任務TaskB(void)的堆棧空間。
; void TaskC(void);
; #define TaskCPrio 3 //聲明任務TaskC(void)的優先級。
; OS_STK TaskCStk[MAX_STK_SIZE]; //聲明任務TaskC(void)的堆棧空間。
;
; void main(void)
; {
0002 .dbline 27
; OSInitSP();
0002 00D0 rcall _OSInitSP
0004 .dbline 28
; OSInit(); //初始化OS任務控制塊(initialization OSTCB)。
0004 00D0 rcall _OSInit
0006 .dbline 29
; OSTaskCreate(TaskA,&TaskAStk[MAX_STK_SIZE],TaskAPrio); //建立任務TaskA(void)。
0006 81E0 ldi R24,1
0008 8883 std y+0,R24
000A 20E0 ldi R18,<_TaskAStk+48
000C 30E0 ldi R19,>_TaskAStk+48
000E 00E0 ldi R16,<PL_TaskA
0010 10E0 ldi R17,>PL_TaskA
0012 00D0 rcall _OSTaskCreate
0014 .dbline 30
; OSTaskCreate(TaskB,&TaskBStk[MAX_STK_SIZE],TaskBPrio); //建立任務TaskB(void)。
0014 82E0 ldi R24,2
0016 8883 std y+0,R24
0018 20E0 ldi R18,<_TaskBStk+48
001A 30E0 ldi R19,>_TaskBStk+48
001C 00E0 ldi R16,<PL_TaskB
001E 10E0 ldi R17,>PL_TaskB
0020 00D0 rcall _OSTaskCreate
0022 .dbline 31
; OSTaskCreate(TaskC,&TaskCStk[MAX_STK_SIZE],TaskCPrio); //建立任務TaskC(void)。
0022 83E0 ldi R24,3
0024 8883 std y+0,R24
0026 20E0 ldi R18,<_TaskCStk+48
0028 30E0 ldi R19,>_TaskCStk+48
002A 00E0 ldi R16,<PL_TaskC
002C 10E0 ldi R17,>PL_TaskC
002E 00D0 rcall _OSTaskCreate
0030 .dbline 33
;
; INIT_LED_Drv();
0030 87B3 in R24,0x17
0032 806F ori R24,240
0034 87BB out 0x17,R24
0036 .dbline 35
;
; OSStart(); //起動OS。
0036 00D0 rcall _OSStart
0038 0DC0 rjmp L7
003A L6:
003A .dbline 38
003A .dbline 39
003A C49A sbi 0x18,4
003C .dbline 40
003C 01E0 ldi R16,1
003E 00D0 rcall _OSTaskResume
0040 .dbline 41
0040 00910000 lds R16,_OS_TASK_CrtPrio
0044 00D0 rcall _OSTaskSuspend
0046 .dbline 42
0046 01E0 ldi R16,1
0048 10E0 ldi R17,0
004A 00D0 rcall _OSTimeDly
004C .dbline 43
004C C498 cbi 0x18,4
004E .dbline 44
004E 01E0 ldi R16,1
0050 10E0 ldi R17,0
0052 00D0 rcall _OSTimeDly
0054 .dbline 45
0054 L7:
0054 .dbline 37
0054 F2CF rjmp L6
0056 X0:
0056 .dbline -2
0056 .dbline 46
;
; while (1)
; {
; LED1_ON();
; OSTaskResume(TaskAPrio);
; OSTaskSuspend(OS_TASK_Me);
; OSTimeDly(1);
; LED1_OFF();
; OSTimeDly(1);
; }
; }
0056 L2:
0056 2196 adiw R28,1
0058 .dbline 0 ; func end
0058 0895 ret
005A .dbfunc s TaskA _TaskA fI
.even
005A _TaskA::
005A .dbline -1
005A .dbline 49
;
; void TaskA(void)
; {
005A 0AC0 rjmp L11
005C L10:
005C .dbline 51
005C .dbline 52
005C 0027 clr R16
005E 00D0 rcall _OSTaskResume
0060 .dbline 54
0060 C59A sbi 0x18,5
0062 .dbline 55
0062 02E0 ldi R16,2
0064 10E0 ldi R17,0
0066 00D0 rcall _OSTimeDly
0068 .dbline 56
0068 C598 cbi 0x18,5
006A .dbline 57
006A 02E0 ldi R16,2
006C 10E0 ldi R17,0
006E 00D0 rcall _OSTimeDly
0070 .dbline 58
0070 L11:
0070 .dbline 50
0070 F5CF rjmp L10
0072 X1:
0072 .dbline -2
0072 .dbline 59
; while (1)
; {
; OSTaskResume(Task_main_Prio);
; // OSTaskSuspend(OS_TASK_Me);
; LED2_ON();
; OSTimeDly(2);
; LED2_OFF();
; OSTimeDly(2);
; }
; }
0072 L9:
0072 .dbline 0 ; func end
0072 0895 ret
0074 .dbfunc s TaskB _TaskB fI
.even
0074 _TaskB::
0074 .dbline -1
0074 .dbline 62
;
; void TaskB(void)
; {
0074 08C0 rjmp L15
0076 L14:
0076 .dbline 64
0076 .dbline 65
0076 C69A sbi 0x18,6
0078 .dbline 66
0078 03E0 ldi R16,3
007A 10E0 ldi R17,0
007C 00D0 rcall _OSTimeDly
007E .dbline 67
007E C698 cbi 0x18,6
0080 .dbline 68
0080 03E0 ldi R16,3
0082 10E0 ldi R17,0
0084 00D0 rcall _OSTimeDly
0086 .dbline 69
0086 L15:
0086 .dbline 63
0086 F7CF rjmp L14
0088 X2:
0088 .dbline -2
0088 .dbline 70
; while (1)
; {
; LED3_ON();
; OSTimeDly(3);
; LED3_OFF();
; OSTimeDly(3);
; }
; }
0088 L13:
0088 .dbline 0 ; func end
0088 0895 ret
008A .dbfunc s TaskC _TaskC fI
.even
008A _TaskC::
008A .dbline -1
008A .dbline 73
;
; void TaskC(void)
; {
008A 08C0 rjmp L19
008C L18:
008C .dbline 75
008C .dbline 76
008C C79A sbi 0x18,7
008E .dbline 77
008E 05E0 ldi R16,5
0090 10E0 ldi R17,0
0092 00D0 rcall _OSTimeDly
0094 .dbline 78
0094 C798 cbi 0x18,7
0096 .dbline 79
0096 05E0 ldi R16,5
0098 10E0 ldi R17,0
009A 00D0 rcall _OSTimeDly
009C .dbline 80
009C L19:
009C .dbline 74
009C F7CF rjmp L18
009E X3:
009E .dbline -2
009E .dbline 81
; while (1)
; {
; LED4_ON();
; OSTimeDly(5);
; LED4_OFF();
; OSTimeDly(5);
; }
; }
009E L17:
009E .dbline 0 ; func end
009E 0895 ret
00A0 .dbfunc s AppTickHook _AppTickHook fI
.even
00A0 _AppTickHook::
00A0 .dbline -1
00A0 .dbline 85
;
; //hook function for user App --- 時鐘節拍回掉函數
; void AppTickHook()
; {
00A0 .dbline -2
00A0 .dbline 86
; }
00A0 L21:
00A0 .dbline 0 ; func end
00A0 0895 ret
.area bss(ram, con, rel)
0000 .dbfile C:\icc\minOS_iccavr\App.c
0000 _TaskCStk::
0000 .blkb 48
0030 .dbsym s TaskCStk _TaskCStk A[48:48]c
0030 _TaskBStk::
0030 .blkb 48
0060 .dbsym s TaskBStk _TaskBStk A[48:48]c
0060 _TaskAStk::
0060 .blkb 48
0090 .dbsym s TaskAStk _TaskAStk A[48:48]c
.area func_lit
0000 4500 PL_TaskC: .word `_TaskC
0002 3A00 PL_TaskB: .word `_TaskB
0004 2D00 PL_TaskA: .word `_TaskA
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -