📄 test1.lis
字号:
.module test1.c
.area vector(rom, abs)
.org 14
000E 00C0 rjmp _OSTickISR
.area text(rom, con, rel)
0000 .dbfile G:\编程2002-10-15-HOME\做过的项目\2002-10-22\home-c\software\ucos-ii-at90S-icc-avr\ucos-ii-source\test1.c
0000 .dbfunc e main _main fV
.even
0000 _main::
0000 2397 sbiw R28,3
0002 .dbline -1
0002 .dbline 24
0002 ; /*
0002 ; */
0002 ; #define Test1_GLOBALS
0002 ; #include "includes.h"
0002 ;
0002 ; //******************************************************************************
0002 ; // Variablen
0002 ; OS_STK Task2Stack[OS_TASK_DEF_STK_SIZE]; // startup task stack
0002 ; OS_STK Task3Stack[OS_TASK_DEF_STK_SIZE];
0002 ;
0002 ; //*****************************************************************************
0002 ; // Prototypes
0002 ; void Task2(void *pdata);
0002 ; void Task3(void *pdata);
0002 ; //*****************************************************************************
0002 ;
0002 ; //*****************************************************************************
0002 ; // Interrupt Timer/Counter0 Overflow
0002 ; // OVF_Takt: 4MHz / 1024 / 39 = 10ms
0002 ; #pragma interrupt_handler OSTickISR:8
0002 ; //#pragma interrupt_handler test_OSTickISR0:8
0002 ;
0002 ; void main()
0002 ; {
0002 .dbline 25
0002 ; CLI();//close interrupt
0002 F894 cli
0004 .dbline 26
0004 ; ProgramRest(FLASH_WHEN_RESET);
0004 03E0 ldi R16,3
0006 10E0 ldi R17,0
0008 00D0 rcall _ProgramRest
000A .dbline 27
000A ; OSInit(); // OS init
000A 00D0 rcall _OSInit
000C .dbline 29
000C ; //check OSTCBFreeList;
000C ; if(OSRunning || (0==OSTCBFreeList))//stack destroyed
000C 20900000 lds R2,_OSRunning
0010 2220 tst R2
0012 41F4 brne L6
0014 20900000 lds R2,_OSTCBFreeList
0018 30900100 lds R3,_OSTCBFreeList+1
001C 2220 tst R2
001E 19F4 brne L4
0020 3320 tst R3
0022 09F4 brne L4
0024 X0:
0024 L6:
0024 .dbline 30
0024 ; goto OSTASKCREATE_ERROR;
0024 2CC0 rjmp L7
0026 L4:
0026 .dbline 32
0026 ;
0026 ; if(OS_NO_ERR!=OSTaskCreate(Task2,
0026 82E0 ldi R24,2
0028 8A83 std y+2,R24
002A 80E0 ldi R24,<_Task2Stack+111
002C 90E0 ldi R25,>_Task2Stack+111
002E 8883 std y+0,R24
0030 9983 std y+1,R25
0032 22E3 ldi R18,50
0034 30E0 ldi R19,0
0036 00E0 ldi R16,<PL_Task2
0038 10E0 ldi R17,>PL_Task2
003A 00D0 rcall _OSTaskCreate
003C 0023 tst R16
003E 09F0 breq L8
0040 .dbline 36
0040 ; (void *)(int)'2',
0040 ; &Task2Stack[OS_TASK_DEF_STK_SIZE-1],
0040 ; TaskStartPrio))
0040 ; goto OSTASKCREATE_ERROR;
0040 1EC0 rjmp L7
0042 L8:
0042 .dbline 38
0042 ;
0042 ; if(OSRunning || (0==OSTCBFreeList))//stack destroyed
0042 20900000 lds R2,_OSRunning
0046 2220 tst R2
0048 41F4 brne L13
004A 20900000 lds R2,_OSTCBFreeList
004E 30900100 lds R3,_OSTCBFreeList+1
0052 2220 tst R2
0054 19F4 brne L11
0056 3320 tst R3
0058 09F4 brne L11
005A X1:
005A L13:
005A .dbline 39
005A ; goto OSTASKCREATE_ERROR;
005A 11C0 rjmp L7
005C L11:
005C .dbline 41
005C ;
005C ; if(OS_NO_ERR!=OSTaskCreate(Task3,
005C 83E0 ldi R24,3
005E 8A83 std y+2,R24
0060 80E0 ldi R24,<_Task3Stack+111
0062 90E0 ldi R25,>_Task3Stack+111
0064 8883 std y+0,R24
0066 9983 std y+1,R25
0068 23E3 ldi R18,51
006A 30E0 ldi R19,0
006C 00E0 ldi R16,<PL_Task3
006E 10E0 ldi R17,>PL_Task3
0070 00D0 rcall _OSTaskCreate
0072 0023 tst R16
0074 09F0 breq L14
0076 .dbline 45
0076 ; (void *)(int)'3',
0076 ; &Task3Stack[OS_TASK_DEF_STK_SIZE-1],
0076 ; TaskStartPrio+1))
0076 ; goto OSTASKCREATE_ERROR;
0076 03C0 rjmp L7
0078 L14:
0078 .dbline 47
0078 ;
0078 ; TC2_Init();
0078 00D0 rcall _TC2_Init
007A .dbline 49
007A ;
007A ; SEI();
007A 7894 sei
007C .dbline 52
007C ; //check OSTCBCur
007C ; //if(0==OSTCBCur)goto OSTASKCREATE_ERROR;
007C ; OSStart(); // start multitasking
007C 00D0 rcall _OSStart
007E L7:
007E .dbline 56
007E ; //error
007E ; OSTASKCREATE_ERROR:
007E ; //dead loop
007E ; ProgramError();
007E 00D0 rcall _ProgramError
0080 .dbline -2
0080 .dbline 57
0080 ; }
0080 L3:
0080 2396 adiw R28,3
0082 .dbline 0 ; func end
0082 0895 ret
0084 .dbend
0084 .dbfunc e Task2 _Task2 fV
0084 ; data -> R20,R21
.even
0084 _Task2::
0084 00D0 rcall push_gset1
0086 402F mov R20,R16
0088 512F mov R21,R17
008A .dbline -1
008A .dbline 60
008A ;
008A ; //*****************************************************************************
008A ; void Task2(void *data){
008A .dbline 61
008A ; Task2_porta(data);
008A 042F mov R16,R20
008C 152F mov R17,R21
008E 02D0 rcall _Task2_porta
0090 .dbline -2
0090 .dbline 62
0090 ; }
0090 L17:
0090 00D0 rcall pop_gset1
0092 .dbline 0 ; func end
0092 0895 ret
0094 .dbsym r data 20 pV
0094 .dbend
0094 .dbfunc e Task2_porta _Task2_porta fV
0094 ; j -> R20
0094 ; i -> R22
0094 ; data -> R10,R11
.even
0094 _Task2_porta::
0094 00D0 rcall push_gset3
0096 A02E mov R10,R16
0098 B12E mov R11,R17
009A .dbline -1
009A .dbline 63
009A ; void Task2_porta(void *data){
009A .dbline 64
009A ; INT8U i,j=0;
009A 4427 clr R20
009C .dbline 65
009C ; DDRA=0xff;
009C 8FEF ldi R24,255
009E 8ABB out 0x1a,R24
00A0 05C0 rjmp L20
00A2 L19:
00A2 .dbline 67
00A2 .dbline 68
00A2 6395 inc R22
00A4 .dbline 69
00A4 6BBB out 0x1b,R22
00A6 .dbline 70
00A6 0AE0 ldi R16,10
00A8 10E0 ldi R17,0
00AA 00D0 rcall _OSTimeDly
00AC .dbline 71
00AC L20:
00AC .dbline 66
00AC FACF rjmp L19
00AE X2:
00AE .dbline -2
00AE .dbline 72
00AE ; while(1)
00AE ; {
00AE ; i++;
00AE ; PORTA=i;
00AE ; OSTimeDly(10);
00AE ; }
00AE ; }
00AE L18:
00AE 00D0 rcall pop_gset3
00B0 .dbline 0 ; func end
00B0 0895 ret
00B2 .dbsym r j 20 c
00B2 .dbsym r i 22 c
00B2 .dbsym r data 10 pV
00B2 .dbend
00B2 .dbfunc e Task3 _Task3 fV
00B2 ; i -> R20
00B2 ; j -> R22
00B2 ; k -> R10
00B2 ; data -> R20,R21
.even
00B2 _Task3::
00B2 00D0 rcall push_gset3
00B4 402F mov R20,R16
00B6 512F mov R21,R17
00B8 .dbline -1
00B8 .dbline 74
00B8 ;
00B8 ; void Task3(void *data){
00B8 14C0 rjmp L24
00BA L23:
00BA .dbline 77
00BA ; unsigned char i,j,k;
00BA ; while(1)
00BA ; {
00BA .dbline 78
00BA ; DDRC=0xff;
00BA 8FEF ldi R24,255
00BC 84BB out 0x14,R24
00BE .dbline 79
00BE ; SEI();
00BE 7894 sei
00C0 .dbline 80
00C0 ; for(i=0;i<8;i++)
00C0 4427 clr R20
00C2 0DC0 rjmp L29
00C4 L26:
00C4 .dbline 81
00C4 ; {
00C4 .dbline 82
00C4 ; j=1;
00C4 61E0 ldi R22,1
00C6 .dbline 83
00C6 ; for(k=0;k<=i;k++)
00C6 AA24 clr R10
00C8 02C0 rjmp L33
00CA L30:
00CA .dbline 84
00CA 660F lsl R22
00CC L31:
00CC .dbline 83
00CC A394 inc R10
00CE L33:
00CE .dbline 83
00CE 4A15 cp R20,R10
00D0 E0F7 brsh L30
00D2 .dbline 85
00D2 6095 com R22
00D4 .dbline 86
00D4 65BB out 0x15,R22
00D6 .dbline 87
00D6 0AE0 ldi R16,10
00D8 10E0 ldi R17,0
00DA 00D0 rcall _OSTimeDly
00DC .dbline 88
00DC L27:
00DC .dbline 80
00DC 4395 inc R20
00DE L29:
00DE .dbline 80
00DE 4830 cpi R20,8
00E0 88F3 brlo L26
00E2 .dbline 89
00E2 L24:
00E2 .dbline 76
00E2 EBCF rjmp L23
00E4 X3:
00E4 .dbline -2
00E4 .dbline 90
00E4 ; j*=2;
00E4 ; asm("com %j");
00E4 ; PORTC=j;
00E4 ; OSTimeDly(10);
00E4 ; }
00E4 ; }
00E4 ; }
00E4 L22:
00E4 00D0 rcall pop_gset3
00E6 .dbline 0 ; func end
00E6 0895 ret
00E8 .dbsym r i 20 c
00E8 .dbsym r j 22 c
00E8 .dbsym r k 10 c
00E8 .dbsym r data 20 pV
00E8 .dbend
.area bss(ram, con, rel)
0000 .dbfile G:\编程2002-10-15-HOME\做过的项目\2002-10-22\home-c\software\ucos-ii-at90S-icc-avr\ucos-ii-source\test1.c
0000 _Task3Stack::
0000 .blkb 112
0070 .dbsym e Task3Stack _Task3Stack A[112:112]c
0070 _Task2Stack::
0070 .blkb 112
00E0 .dbsym e Task2Stack _Task2Stack A[112:112]c
.area func_lit
0000 5900 PL_Task3: .word `_Task3
0002 4200 PL_Task2: .word `_Task2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -