⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test1.lis

📁 ucos如何移植到单片机mega128
💻 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 + -