📄 test1.lis
字号:
.module test1.c
.area text(rom, con, rel)
0000 .dbfile E:\study\ucos_ii\ucos2_iccavr\iccavr\ucos2_application\test1.c
0000 .dbfunc e main _main fV
.even
0000 _main::
0000 2397 sbiw R28,3
0002 .dbline -1
0002 .dbline 35
0002 ; /*
0002 ; ********************************************************************************
0002 ; * Portierung des RTOS "礐/OS-II" von Jean J. Labrosse auf den ATmega103
0002 ; *
0002 ; * Compiler: IIC von imagecraft
0002 ; * File: Test1.c (Testapplikation)
0002 ; * By: Joerg Meyer
0002 ; * Revision: 0
0002 ; *
0002 ; *
0002 ; *
0002 ; ********************************************************************************
0002 ; */
0002 ; #define Test1_GLOBALS
0002 ; #include "includes.h"
0002 ;
0002 ;
0002 ; //******************************************************************************
0002 ; // Constants
0002 ; #define TaskStartPrio 10 // Task-Prioritaeten
0002 ;
0002 ;
0002 ; //*****************************************************************************
0002 ; // Variablen
0002 ; OS_STK Task1Stack[OS_TASK_DEF_STK_SIZE]; // startup task stack
0002 ; OS_STK Task2Stack[OS_TASK_DEF_STK_SIZE];
0002 ;
0002 ; //*****************************************************************************
0002 ; // Prototypes
0002 ; void Task1(void *pdata);
0002 ; void uart0_init(void);
0002 ; void Task3(void *data);
0002 ; //*****************************************************************************
0002 ; // Start
0002 ; void main(void){
0002 .dbline 36
0002 ; OSInit(); // OS init
0002 0E940000 xcall _OSInit
0006 .dbline 38
0006 ;
0006 ; OSTaskCreate(Task1,
0006 8AE0 ldi R24,10
0008 8A83 std y+2,R24
000A 80E0 ldi R24,<_Task1Stack+127
000C 90E0 ldi R25,>_Task1Stack+127
000E 9983 std y+1,R25
0010 8883 std y+0,R24
0012 21E6 ldi R18,97
0014 30E0 ldi R19,0
0016 00E0 ldi R16,<PL_Task1
0018 10E0 ldi R17,>PL_Task1
001A 0E940000 xcall _OSTaskCreate
001E .dbline 43
001E ; (void *)(int)'a',
001E ; &Task1Stack[OS_TASK_DEF_STK_SIZE-1],
001E ; TaskStartPrio);
001E ;
001E ; OSTaskCreate(Task3,
001E 8BE0 ldi R24,11
0020 8A83 std y+2,R24
0022 80E0 ldi R24,<_Task2Stack+127
0024 90E0 ldi R25,>_Task2Stack+127
0026 9983 std y+1,R25
0028 8883 std y+0,R24
002A 22E6 ldi R18,98
002C 30E0 ldi R19,0
002E 00E0 ldi R16,<PL_Task3
0030 10E0 ldi R17,>PL_Task3
0032 0E940000 xcall _OSTaskCreate
0036 .dbline 48
0036 ; (void *)(int)'b',
0036 ; &Task2Stack[OS_TASK_DEF_STK_SIZE-1],
0036 ; TaskStartPrio+1);
0036 ; // init und start tick
0036 ; uart0_init();
0036 0E940000 xcall _uart0_init
003A .dbline 49
003A ; TC2_Init();
003A 0E940000 xcall _TC2_Init
003E .dbline 50
003E ; DDRG |= 0x18; PORTG &=~(1<<PG3); PORTG &=~(1<<PG4);
003E 80916400 lds R24,100
0042 8861 ori R24,24
0044 80936400 sts 100,R24
0048 .dbline 50
0048 80916500 lds R24,101
004C 877F andi R24,247
004E 80936500 sts 101,R24
0052 .dbline 50
0052 80916500 lds R24,101
0056 8F7E andi R24,239
0058 80936500 sts 101,R24
005C .dbline 51
005C ; OSStart(); // start multitasking
005C 0E940000 xcall _OSStart
0060 .dbline -2
0060 L3:
0060 2396 adiw R28,3
0062 .dbline 0 ; func end
0062 0895 ret
0064 .dbend
0064 .dbfunc e Task1 _Task1 fV
0064 ; data -> R20,R21
.even
0064 _Task1::
0064 0E940000 xcall push_gset1
0068 A801 movw R20,R16
006A .dbline -1
006A .dbline 56
006A ;
006A ; }
006A ;
006A ; //*****************************************************************************
006A ; void Task1(void *data){
006A .dbline 62
006A ; // char c = (int)data;
006A ;
006A ;
006A ; // Timer/Counter#2 Overflow and Comp init
006A ;
006A ; for (;;){
006A .dbline 62
006A L11:
006A .dbline 64
006A L12:
006A .dbline 64
006A 5D9B sbis 0xb,5
006C FECF rjmp L11
006E .dbline 65
006E 81E6 ldi R24,97
0070 8CB9 out 0xc,R24
0072 .dbline 68
0072 05E0 ldi R16,5
0074 10E0 ldi R17,0
0076 0E940000 xcall _OSTimeDly
007A .dbline 70
007A .dbline 62
007A .dbline 62
007A F7CF xjmp L12
007C X0:
007C .dbline -2
007C L6:
007C 0E940000 xcall pop_gset1
0080 .dbline 0 ; func end
0080 0895 ret
0082 .dbsym r data 20 pV
0082 .dbend
0082 .dbfunc e Task3 _Task3 fV
0082 ; data -> R20,R21
.even
0082 _Task3::
0082 0E940000 xcall push_gset1
0086 A801 movw R20,R16
0088 .dbline -1
0088 .dbline 72
0088 ; // putchar(c);
0088 ; while(!(UCSR0A&0x20));
0088 ; UDR0 = 'a';
0088 ; // PORTA = ~PORTA;
0088 ; // DDRA = 0xff;
0088 ; OSTimeDly (5);
0088 ;
0088 ; }
0088 ; }
0088 ; void Task3(void *data){
0088 .dbline 74
0088 ; // char c = (int)data;
0088 ; for (;;){
0088 .dbline 74
0088 L19:
0088 .dbline 76
0088 L20:
0088 .dbline 76
0088 5D9B sbis 0xb,5
008A FECF rjmp L19
008C .dbline 77
008C 82E6 ldi R24,98
008E 8CB9 out 0xc,R24
0090 .dbline 80
0090 05E0 ldi R16,5
0092 10E0 ldi R17,0
0094 0E940000 xcall _OSTimeDly
0098 .dbline 82
0098 .dbline 74
0098 .dbline 74
0098 F7CF xjmp L20
009A X1:
009A .dbline -2
009A L14:
009A 0E940000 xcall pop_gset1
009E .dbline 0 ; func end
009E 0895 ret
00A0 .dbsym r data 20 pV
00A0 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\study\ucos_ii\ucos2_iccavr\iccavr\ucos2_application\test1.c
0000 _Task2Stack::
0000 .blkb 128
0080 .dbsym e Task2Stack _Task2Stack A[128:128]c
0080 _Task1Stack::
0080 .blkb 128
0100 .dbsym e Task1Stack _Task1Stack A[128:128]c
.area func_lit
0000 4100 PL_Task3: .word `_Task3
0002 3200 PL_Task1: .word `_Task1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -