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

📄 test2.lis

📁 ICCAVR下的uCOS mega8程序
💻 LIS
字号:
                        .module test2.c
                        .area text(rom, con, rel)
                        .even
 0000           _TC2_Init::
 0000           ; 
 0000           ; #define Test1_GLOBALS
 0000           ; #include "includes.h"
 0000           ; 
 0000           ; //******************************************************************************
 0000           ; // Constants
 0000           ; #define TaskStartPrio	10		// Task-Prioritaeten
 0000           ; //*****************************************************************************
 0000           ; // Variablen
 0000           ; INT8U    display[5];
 0000           ; INT8U    h,m,s,state;
 0000           ; OS_STK	Task1Stack[OS_TASK_DEF_STK_SIZE];		// startup task stack
 0000           ; OS_STK	Task2Stack[OS_TASK_DEF_STK_SIZE];
 0000           ; //ICC-AVR application builder : 2003-12-28 21:52:56
 0000           ; // Target : M8
 0000           ; // Crystal: 8.0000Mhz
 0000           ; 
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; #include <stdio.h>
 0000           ; 
 0000           ; 
 0000           ; //*****************************************************************************
 0000           ; // Prototypes
 0000           ; 
 0000           ; //*****************************************************************************
 0000           ; //			TickISR
 0000           ; //*****************************************************************************
 0000           ; // Init Timer/Counter2 fuer Takterzeugung
 0000           ; void TC2_Init (void){	
 0000           ; 	/* Only uses TIMER2 overflow for tick interrupt. Timer compare
 0000           ;      * can also be used.
 0000           ;      */
 0000           ; 	TIMSK &= ~(BIT(TOIE2)/* | BIT(OCIE2) */);	//disable TC2 interrupts
 0000 89B7              in R24,0x39
 0002 8F7B              andi R24,191
 0004 89BF              out 0x39,R24
 0006           ;       TCCR2 = 0x00;           // interner Takt, /1024
 0006 2224              clr R2
 0008 25BC              out 0x25,R2
 000A           ;       TCNT2 = 0;      // Counter ruecksetzen, 2ms @ 8MHz
 000A 24BC              out 0x24,R2
 000C           ;     TCCR2 = 0x04;   // 64
 000C 84E0              ldi R24,4
 000E 85BD              out 0x25,R24
 0010           ;       // OCR2 = 180;                  // OutputCompareRegister
 0010           ;       TIMSK |= BIT(TOIE2);    // enable OVF-interrupt
 0010 89B7              in R24,0x39
 0012 8064              ori R24,64
 0014 89BF              out 0x39,R24
 0016           ;                                                                                                                                       //TIMSK |= OCIE2;               // enable COMP-interrupt
 0016           ;       
 0016           ;     SEI();    // enable global interrupt     
 0016 7894              sei
 0018           L2:
 0018                   .dbline 0 ; func end
 0018 0895              ret
                        .area vector(rom, abs)
                        .org 16
 0010 0C940000          jmp _OSTickISR
                        .area text(rom, con, rel)
                        .even
 001A           _main::
 001A 2397              sbiw R28,3
 001C           ; }
 001C           ; 
 001C           ; //*****************************************************************************
 001C           ; // Interrupt Timer/Counter0 Overflow
 001C           ; // OVF_Takt:  4MHz / 1024 / 39 = 10ms
 001C           ; #pragma interrupt_handler OSTickISR:5
 001C           ; 
 001C           ; void Task1(void *pdata);
 001C           ; void Task2(void *pdata);
 001C           ; 
 001C           ; //*****************************************************************************
 001C           ; // Start
 001C           ; void main(void){      
 001C           ;       OSInit();               // OS init
 001C 0E940000          xcall _OSInit
 0020           ;       Uart_init();
 0020 0E940000          xcall _Uart_init
 0024           ;       //Prints("ATmega8 uc/os-II Test!");
 0024           ;       //Putchar(0x0d);
 0024           ;       //Putchar(0x0a);
 0024           ;       
 0024           ;       OSTaskCreate(Task1,     (void *)0, &Task1Stack[OS_TASK_DEF_STK_SIZE-1], 7);
 0024 87E0              ldi R24,7
 0026 8A83              std y+2,R24
 0028 80E0              ldi R24,<_Task1Stack+99
 002A 90E0              ldi R25,>_Task1Stack+99
 002C 9983              std y+1,R25
 002E 8883              std y+0,R24
 0030 2227              clr R18
 0032 3327              clr R19
 0034 00E0              ldi R16,<PL_Task1
 0036 10E0              ldi R17,>PL_Task1
 0038 0E940000          xcall _OSTaskCreate
 003C           ;       
 003C           ;       OSTaskCreate(Task2,     (void *)0, &Task2Stack[OS_TASK_DEF_STK_SIZE-1], 8); 
 003C 88E0              ldi R24,8
 003E 8A83              std y+2,R24
 0040 80E0              ldi R24,<_Task2Stack+99
 0042 90E0              ldi R25,>_Task2Stack+99
 0044 9983              std y+1,R25
 0046 8883              std y+0,R24
 0048 2227              clr R18
 004A 3327              clr R19
 004C 00E0              ldi R16,<PL_Task2
 004E 10E0              ldi R17,>PL_Task2
 0050 0E940000          xcall _OSTaskCreate
 0054           ;       // init und start tick
 0054           ;     TC2_Init();                       // Timer/Counter#2 Overflow and Comp init   
 0054 D5DF              xcall _TC2_Init
 0056           ;     OSStart();                // start multitasking
 0056 0E940000          xcall _OSStart
 005A           L3:
 005A 2396              adiw R28,3
 005C                   .dbline 0 ; func end
 005C 0895              ret
 005E           ;           data -> R10,R11
                        .even
 005E           _Task1::
 005E 0E940000          xcall push_gset3x
 0062 5801              movw R10,R16
 0064           ; }
 0064           ; 
 0064           ; //*****************************************************************************
 0064           ; void Task1(void *data){
 0064           L7:
 0064           ; 	for (;;){
 0064           ; 		//Prints("ATmega16_UCOS_ii");
 0064           ; 		Putchar(0x80);
 0064 00E8              ldi R16,128
 0066 0E940000          xcall _Putchar
 006A           ;               OSTimeDly (100);
 006A 04E6              ldi R16,100
 006C 10E0              ldi R17,0
 006E 0E940000          xcall _OSTimeDly
 0072           ;       }
 0072 F8CF              xjmp L7
 0074           X0:
 0074           L6:
 0074 0E940000          xcall pop_gset3x
 0078                   .dbline 0 ; func end
 0078 0895              ret
 007A           ;           data -> R10,R11
                        .even
 007A           _Task2::
 007A 0E940000          xcall push_gset3x
 007E 5801              movw R10,R16
 0080           ; }
 0080           ; void Task2(void *data){
 0080           ;     data = data;
 0080           ;       OSTimeDly(5);
 0080 05E0              ldi R16,5
 0082 10E0              ldi R17,0
 0084 0E940000          xcall _OSTimeDly
 0088           L12:
 0088           ; 	for (;;){
 0088           ; 		//Prints("Test_OK!");
 0088           ; 		Putchar(0x20);
 0088 00E2              ldi R16,32
 008A 0E940000          xcall _Putchar
 008E           ;               OSTimeDly (500);
 008E 04EF              ldi R16,500
 0090 11E0              ldi R17,1
 0092 0E940000          xcall _OSTimeDly
 0096           ;       }
 0096 F8CF              xjmp L12
 0098           X1:
 0098           L11:
 0098 0E940000          xcall pop_gset3x
 009C                   .dbline 0 ; func end
 009C 0895              ret
                        .area bss(ram, con, rel)
 0000           _Task2Stack::
 0000                   .blkb 100
 0064           _Task1Stack::
 0064                   .blkb 100
 00C8           _state::
 00C8                   .blkb 1
 00C9           _s::
 00C9                   .blkb 1
 00CA           _m::
 00CA                   .blkb 1
 00CB           _h::
 00CB                   .blkb 1
 00CC           _display::
 00CC                   .blkb 5
                        .area func_lit
 0000 3D00      PL_Task2:       .word `_Task2
 0002 2F00      PL_Task1:       .word `_Task1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -