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

📄 ucos.lst

📁 ICCAVR下的uCOS mega8程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
__start:
__text_start:
    00B1 E5CF      LDI	R28,0x5F
    00B2 E0D4      LDI	R29,4
    00B3 BFCD      OUT	0x3D,R28
    00B4 BFDE      OUT	0x3E,R29
    00B5 51C0      SUBI	R28,0x10
    00B6 40D0      SBCI	R29,0
    00B7 EA0A      LDI	R16,0xAA
    00B8 8308      STD	Y+0,R16
    00B9 2400      CLR	R0
    00BA E6E0      LDI	R30,0x60
    00BB E0F0      LDI	R31,0
    00BC E012      LDI	R17,2
    00BD 33E9      CPI	R30,0x39
    00BE 07F1      CPC	R31,R17
    00BF F011      BEQ	0x00C2
    00C0 9201      ST	R0,Z+
    00C1 CFFB      RJMP	0x00BD
    00C2 8300      STD	Z+0,R16
    00C3 E6E2      LDI	R30,0x62
    00C4 E0F1      LDI	R31,1
    00C5 E6A0      LDI	R26,0x60
    00C6 E0B0      LDI	R27,0
    00C7 E011      LDI	R17,1
    00C8 36E2      CPI	R30,0x62
    00C9 07F1      CPC	R31,R17
    00CA F021      BEQ	0x00CF
    00CB 95C8      LPM
    00CC 9631      ADIW	R30,1
    00CD 920D      ST	R0,X+
    00CE CFF9      RJMP	0x00C8
    00CF 940E00DF  CALL	_main
_exit:
    00D1 CFFF      RJMP	_exit
_TC2_Init:
    00D2 B789      IN	R24,0x39
    00D3 7B8F      ANDI	R24,0xBF
    00D4 BF89      OUT	0x39,R24
    00D5 2422      CLR	R2
    00D6 BC25      OUT	0x25,R2
    00D7 BC24      OUT	0x24,R2
    00D8 E084      LDI	R24,4
    00D9 BD85      OUT	0x25,R24
    00DA B789      IN	R24,0x39
    00DB 6480      ORI	R24,0x40
    00DC BF89      OUT	0x39,R24
    00DD 9478      BSET	7
    00DE 9508      RET
_main:
    00DF 9723      SBIW	R28,3
    00E0 940E0121  CALL	_OSInit
    00E2 940E0638  CALL	_Uart_init
    00E4 E087      LDI	R24,7
    00E5 838A      STD	Y+2,R24
    00E6 E287      LDI	R24,0x27
    00E7 E091      LDI	R25,1
FILE: C:\DOCUME~1\yjwpm\桌面\UCOS仿~1\ucos_m8_icc\test\test2.c
(0001) 
(0002) #define Test1_GLOBALS
(0003) #include "includes.h"
(0004) 
(0005) //******************************************************************************
(0006) // Constants
(0007) #define TaskStartPrio	10		// Task-Prioritaeten
(0008) //*****************************************************************************
(0009) // Variablen
(0010) INT8U    display[5];
(0011) INT8U    h,m,s,state;
(0012) OS_STK	Task1Stack[OS_TASK_DEF_STK_SIZE];		// startup task stack
(0013) OS_STK	Task2Stack[OS_TASK_DEF_STK_SIZE];
(0014) //ICC-AVR application builder : 2003-12-28 21:52:56
(0015) // Target : M8
(0016) // Crystal: 8.0000Mhz
(0017) 
(0018) #include <iom16v.h>
(0019) #include <macros.h>
(0020) #include <stdio.h>
(0021) 
(0022) 
(0023) //*****************************************************************************
(0024) // Prototypes
(0025) 
(0026) //*****************************************************************************
(0027) //			TickISR
(0028) //*****************************************************************************
(0029) // Init Timer/Counter2 fuer Takterzeugung
(0030) void TC2_Init (void){	
_uart0_init:
    00E8 8399      STD	Y+1,R25
    00E9 8388      STD	Y+0,R24
(0031) 	/* Only uses TIMER2 overflow for tick interrupt. Timer compare
    00EA 2722      CLR	R18
(0032)      * can also be used.
    00EB 2733      CLR	R19
    00EC E506      LDI	R16,0x56
(0033)      */
    00ED E010      LDI	R17,0
    00EE 940E0525  CALL	_OSTaskCreate
(0034) 	TIMSK &= ~(BIT(TOIE2)/* | BIT(OCIE2) */);	//disable TC2 interrupts
    00F0 E088      LDI	R24,0x8
    00F1 838A      STD	Y+2,R24
    00F2 EC83      LDI	R24,0xC3
(0035) 	TCCR2 = 0x00;		// interner Takt, /1024
(0036) 	TCNT2 = 0; 	// Counter ruecksetzen, 2ms @ 8MHz
(0037)     TCCR2 = 0x04;   // 64
(0038) 	// OCR2 = 180;			// OutputCompareRegister
(0039) 	TIMSK |= BIT(TOIE2);	// enable OVF-interrupt
(0040) 	                                                                                                                                //TIMSK |= OCIE2;		// enable COMP-interrupt
(0041) 	
(0042)     SEI();	// enable global interrupt     
(0043) }
(0044) 
(0045) //*****************************************************************************
(0046) // Interrupt Timer/Counter0 Overflow
(0047) // OVF_Takt:  4MHz / 1024 / 39 = 10ms
(0048) #pragma interrupt_handler OSTickISR:5
(0049) 
    00F3 E090      LDI	R25,0
    00F4 8399      STD	Y+1,R25
    00F5 8388      STD	Y+0,R24
(0050) void Task1(void *pdata);
    00F6 2722      CLR	R18
    00F7 2733      CLR	R19
(0051) void Task2(void *pdata);
    00F8 E504      LDI	R16,0x54
(0052) 
    00F9 E010      LDI	R17,0
    00FA 940E0525  CALL	_OSTaskCreate
(0053) //*****************************************************************************
(0054) // Start
    00FC DFD5      RCALL	_TC2_Init
    00FD 940E02C5  CALL	_OSStart
(0055) void main(void){	
(0056) 	OSInit();		// OS init
(0057) 	Uart_init();
    00FF 9623      ADIW	R28,3
    0100 9508      RET
(0058) 	//Prints("ATmega8 uc/os-II Test!");
(0059) 	//Putchar(0x0d);
(0060) 	//Putchar(0x0a);
(0061) 	
(0062) 	OSTaskCreate(Task1,	(void *)0, &Task1Stack[OS_TASK_DEF_STK_SIZE-1],	7);
(0063) 	
(0064) 	OSTaskCreate(Task2,	(void *)0, &Task2Stack[OS_TASK_DEF_STK_SIZE-1],	8); 
(0065) 	// init und start tick
(0066)     TC2_Init();			// Timer/Counter#2 Overflow and Comp init   
(0067)     OSStart();		// start multitasking
(0068) }
(0069) 
(0070) //*****************************************************************************
(0071) void Task1(void *data){
_Task1:
  key2                 --> R12
  i                    --> R14
  key1                 --> Y+0
  data                 --> R10
    0101 940E077D  CALL	push_gset3x
(0072) 	for (;;){
    0103 0158      MOVW	R10,R16
(0073) 		//Prints("ATmega16_UCOS_ii");
    0104 E800      LDI	R16,0x80
    0105 940E05E1  CALL	_Putchar
    0107 E604      LDI	R16,0x64
(0074) 		Putchar(0x80);
    0108 E010      LDI	R17,0
    0109 940E05A4  CALL	_OSTimeDly
(0075) 		OSTimeDly (100);
    010B CFF8      RJMP	0x0104
    010C 940E076B  CALL	pop_gset3x
(0076) 	}
(0077) }
    010E 9508      RET
_Task2:
  data                 --> R10
    010F 940E077D  CALL	push_gset3x
    0111 0158      MOVW	R10,R16
    0112 E005      LDI	R16,5
    0113 E010      LDI	R17,0
    0114 940E05A4  CALL	_OSTimeDly
    0116 E200      LDI	R16,0x20
    0117 940E05E1  CALL	_Putchar
    0119 EF04      LDI	R16,0xF4
(0078) void Task2(void *data){
(0079)     data = data;
    011A E011      LDI	R17,1
    011B 940E05A4  CALL	_OSTimeDly
    011D CFF8      RJMP	0x0116
    011E 940E076B  CALL	pop_gset3x
    0120 9508      RET
_OSInit:
  i                    --> R10
    0121 940E077D  CALL	push_gset3x
    0123 9723      SBIW	R28,3
    0124 E080      LDI	R24,0
    0125 E090      LDI	R25,0
(0080) 	OSTimeDly(5);
(0081) 	for (;;){
    0126 E0A0      LDI	R26,0
(0082) 		//Prints("Test_OK!");
    0127 E0B0      LDI	R27,0
    0128 939001EB  STS	OSTime+1,R25
    012A 938001EA  STS	OSTime,R24
    012C 93B001ED  STS	OSTime+3,R27
    012E 93A001EC  STS	OSTime+2,R26
(0083) 		Putchar(0x20);
(0084) 		OSTimeDly (500);
(0085) 	}
(0086) }    0130 2422      CLR	R2
    0131 9220021E  STS	OSIntNesting,R2
    0133 9220021D  STS	OSLockNesting,R2
    0135 92200216  STS	OSTaskCtr,R2
    0137 92200217  STS	OSRunning,R2
    0139 E080      LDI	R24,0
    013A E090      LDI	R25,0
    013B E0A0      LDI	R26,0
    013C E0B0      LDI	R27,0
    013D 93900220  STS	OSIdleCtr+1,R25
    013F 9380021F  STS	OSIdleCtr,R24
    0141 93B00222  STS	OSIdleCtr+3,R27
    0143 93A00221  STS	OSIdleCtr+2,R26
    0145 E080      LDI	R24,0
    0146 E090      LDI	R25,0
    0147 E0A0      LDI	R26,0
    0148 E0B0      LDI	R27,0
    0149 93900236  STS	OSCtxSwCtr+1,R25
    014B 93800235  STS	OSCtxSwCtr,R24
    014D 93B00238  STS	OSCtxSwCtr+3,R27
    014F 93A00237  STS	OSCtxSwCtr+2,R26
    0151 9220021A  STS	OSRdyGrp,R2
    0153 24AA      CLR	R10
    0154 24BB      CLR	R11
    0155 C00A      RJMP	0x0160
    0156 E188      LDI	R24,0x18
    0157 E092      LDI	R25,2
    0158 01F5      MOVW	R30,R10
    0159 0FE8      ADD	R30,R24
    015A 1FF9      ADC	R31,R25
    015B 2422      CLR	R2
    015C 8220      STD	Z+0,R2
    015D 01C5      MOVW	R24,R10
    015E 9601      ADIW	R24,1
    015F 015C      MOVW	R10,R24
    0160 01C5      MOVW	R24,R10
    0161 3082      CPI	R24,2
    0162 E0E0      LDI	R30,0
    0163 079E      CPC	R25,R30
    0164 F388      BCS	0x0156
    0165 2422      CLR	R2
    0166 9220021C  STS	OSPrioCur,R2
    0168 9220021B  STS	OSPrioHighRdy,R2
    016A 2433      CLR	R3
    016B 92300211  STS	OSTCBHighRdy+1,R3
    016D 92200210  STS	OSTCBHighRdy,R2
    016F 92300215  STS	OSTCBCur+1,R3
    0171 92200214  STS	OSTCBCur,R2
    0173 9230020F  STS	OSTCBList+1,R3
    0175 9220020E  STS	OSTCBList,R2
    0177 24AA      CLR	R10
    0178 24BB      CLR	R11
    0179 C011      RJMP	0x018B
    017A E002      LDI	R16,2
    017B E010      LDI	R17,0
    017C 0195      MOVW	R18,R10
    017D 940E075B  CALL	empy16s
    017F 01F8      MOVW	R30,R16
    0180 EE8E      LDI	R24,0xEE
    0181 E091      LDI	R25,1
    0182 0FE8      ADD	R30,R24
    0183 1FF9      ADC	R31,R25
    0184 2422      CLR	R2
    0185 2433      CLR	R3
    0186 8231      STD	Z+1,R3
    0187 8220      STD	Z+0,R2
    0188 01C5      MOVW	R24,R10
    0189 9601      ADIW	R24,1
    018A 015C      MOVW	R10,R24
    018B 01C5      MOVW	R24,R10
    018C 3180      CPI	R24,0x10
    018D E0E0      LDI	R30,0
    018E 079E      CPC	R25,R30
    018F F350      BCS	0x017A
    0190 24AA      CLR	R10
    0191 24BB      CLR	R11
    0192 C01B      RJMP	0x01AE
    0193 0195      MOVW	R18,R10
    0194 5F2F      SUBI	R18,0xFF
    0195 4F3F      SBCI	R19,0xFF
    0196 E00E      LDI	R16,0xE
    0197 E010      LDI	R17,0
    0198 940E075B  CALL	empy16s
    019A 0118      MOVW	R2,R16
    019B E381      LDI	R24,0x31
    019C E091      LDI	R25,1
    019D 0E28      ADD	R2,R24
    019E 1E39      ADC	R3,R25
    019F E00E      LDI	R16,0xE
    01A0 E010      LDI	R17,0
    01A1 0195      MOVW	R18,R10
    01A2 940E075B  CALL	empy16s
    01A4 01F8      MOVW	R30,R16
    01A5 E383      LDI	R24,0x33
    01A6 E091      LDI	R25,1
    01A7 0FE8      ADD	R30,R24
    01A8 1FF9      ADC	R31,R25
    01A9 8231      STD	Z+1,R3
    01AA 8220      STD	Z+0,R2
    01AB 01C5      MOVW	R24,R10
    01AC 9601      ADIW	R24,1
    01AD 015C      MOVW	R10,R24
    01AE 01C5      MOVW	R24,R10
    01AF 3085      CPI	R24,5
    01B0 E0E0      LDI	R30,0
    01B1 079E      CPC	R25,R30
    01B2 F300      BCS	0x0193
    01B3 2422      CLR	R2
    01B4 2433      CLR	R3
    01B5 9230017A  STS	0x17A,R3
    01B7 92200179  STS	0x179,R2
    01B9 E381      LDI	R24,0x31
    01BA E091      LDI	R25,1
    01BB 93900213  STS	OSTCBFreeList+1,R25
    01BD 93800212  STS	OSTCBFreeList,R24
    01BF 24AA      CLR	R10
    01C0 24BB      CLR	R11
    01C1 C01B      RJMP	0x01DD
    01C2 0195      MOVW	R18,R10
    01C3 5F2F      SUBI	R18,0xFF
    01C4 4F3F      SBCI	R19,0xFF
    01C5 E008      LDI	R16,0x8
    01C6 E010      LDI	R17,0
    01C7 940E075B  CALL	empy16s
    01C9 0118      MOVW	R2,R16
    01CA E283      LDI	R24,0x23
    01CB E092      LDI	R25,2
    01CC 0E28      ADD	R2,R24
    01CD 1E39      ADC	R3,R25
    01CE E008      LDI	R16,0x8
    01CF E010      LDI	R17,0
    01D0 0195      MOVW	R18,R10
    01D1 940E075B  CALL	empy16s
    01D3 01F8      MOVW	R30,R16
    01D4 E283      LDI	R24,0x23
    01D5 E092      LDI	R25,2
    01D6 0FE8      ADD	R30,R24
    01D7 1FF9      ADC	R31,R25
    01D8 8231      STD	Z+1,R3

⌨️ 快捷键说明

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