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

📄 main.lst

📁 atmega单片机用的ucos系统 占用内存适中 是atmega单片机合适的操作系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"main.c"
   2               		.arch atmega128
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  84               	.global	pMsgTsk
  85               		.data
  88               	pMsgTsk:
  89 0000 0000      		.word	T5mbox
  90               	.LC0:
  91 0002 4865 6C6C 		.string	"Hello"
  91      6F00 
  92               	.global	T5mbox
  95               	T5mbox:
  96 0008 01        		.byte	1
  97 0009 0000      		.word	.LC0
  98               	.global	Tmbox
  99               	.global	Tmbox
 100               		.section .bss
 103               	Tmbox:
 104 0000 0000      		.skip 2,0
 105               	.global	T2sem
 106               	.global	T2sem
 109               	T2sem:
 110 0002 0000      		.skip 2,0
 111               	.global	t6
 112               	.global	t6
 115               	t6:
 116 0004 00        		.skip 1,0
 117               	.global	t5
 118               	.global	t5
 121               	t5:
 122 0005 00        		.skip 1,0
 123               	.global	t4
 124               	.global	t4
 127               	t4:
 128 0006 00        		.skip 1,0
 129               	.global	t3
 130               	.global	t3
 133               	t3:
 134 0007 00        		.skip 1,0
 135               	.global	t2
 136               	.global	t2
 139               	t2:
 140 0008 00        		.skip 1,0
 141               	.global	t1
 142               	.global	t1
 145               	t1:
 146 0009 00        		.skip 1,0
 147               	.global	Task5Stk
 148               	.global	Task5Stk
 151               	Task5Stk:
 152 000a 0000 0000 		.skip 64,0
 152      0000 0000 
 152      0000 0000 
 152      0000 0000 
 152      0000 0000 
 153               	.global	Task4Stk
 154               	.global	Task4Stk
 157               	Task4Stk:
 158 004a 0000 0000 		.skip 64,0
 158      0000 0000 
 158      0000 0000 
 158      0000 0000 
 158      0000 0000 
 159               	.global	Task3Stk
 160               	.global	Task3Stk
 163               	Task3Stk:
 164 008a 0000 0000 		.skip 64,0
 164      0000 0000 
 164      0000 0000 
 164      0000 0000 
 164      0000 0000 
 165               	.global	Task2Stk
 166               	.global	Task2Stk
 169               	Task2Stk:
 170 00ca 0000 0000 		.skip 64,0
 170      0000 0000 
 170      0000 0000 
 170      0000 0000 
 170      0000 0000 
 171               	.global	Main_TaskStk
 172               	.global	Main_TaskStk
 175               	Main_TaskStk:
 176 010a 0000 0000 		.skip 64,0
 176      0000 0000 
 176      0000 0000 
 176      0000 0000 
 176      0000 0000 
 177               		.text
 180               	.global	Main_Task
 182               	Main_Task:
   1:APP1/main.c   **** #include <avr/io.h>
   2:APP1/main.c   **** #include "ucos_ii.h"
   3:APP1/main.c   **** #include "lcd.h"
   4:APP1/main.c   **** 
   5:APP1/main.c   **** OS_STK Main_TaskStk[OS_USER_TASK_STK_SIZE]={0};
   6:APP1/main.c   **** OS_STK Task2Stk[OS_USER_TASK_STK_SIZE]={0};
   7:APP1/main.c   **** OS_STK Task3Stk[OS_USER_TASK_STK_SIZE]={0};
   8:APP1/main.c   **** OS_STK Task4Stk[OS_USER_TASK_STK_SIZE]={0};
   9:APP1/main.c   **** OS_STK Task5Stk[OS_USER_TASK_STK_SIZE]={0};
  10:APP1/main.c   **** 
  11:APP1/main.c   **** volatile unsigned char t1=0;
  12:APP1/main.c   **** volatile unsigned char t2=0;
  13:APP1/main.c   **** volatile unsigned char t3=0;
  14:APP1/main.c   **** volatile unsigned char t4=0;
  15:APP1/main.c   **** volatile unsigned char t5=0;
  16:APP1/main.c   **** volatile unsigned char t6=0;
  17:APP1/main.c   **** 
  18:APP1/main.c   **** OS_EVENT *T2sem=(OS_EVENT *)0;
  19:APP1/main.c   **** OS_EVENT *Tmbox=(OS_EVENT *)0;
  20:APP1/main.c   **** 
  21:APP1/main.c   **** struct msgTask
  22:APP1/main.c   **** {
  23:APP1/main.c   ****  unsigned char cnt;
  24:APP1/main.c   ****  unsigned char *s;
  25:APP1/main.c   **** };
  26:APP1/main.c   **** 
  27:APP1/main.c   **** struct msgTask T5mbox={1,"Hello"};
  28:APP1/main.c   **** struct msgTask *pMsgTsk=&T5mbox;
  29:APP1/main.c   **** /*任务声明*/
  30:APP1/main.c   **** void Task2(void *pdata);
  31:APP1/main.c   **** void Task3(void *pdata);
  32:APP1/main.c   **** void Task4(void *pdata);
  33:APP1/main.c   **** void Task5(void *pdata);
  34:APP1/main.c   **** 
  35:APP1/main.c   ****  
  36:APP1/main.c   **** void Main_Task(void *pdata)
  37:APP1/main.c   **** {
 184               	.LM1:
 185               	/* prologue: frame size=0 */
 186               	/* prologue end (size=0) */
  38:APP1/main.c   ****  pdata=pdata;
  39:APP1/main.c   **** 
  40:APP1/main.c   ****  TIMSK&=0xFC;
 188               	.LM2:
 189 0000 87B7      		in r24,87-0x20
 190 0002 8C7F      		andi r24,lo8(-4)
 191 0004 87BF      		out 87-0x20,r24
  41:APP1/main.c   ****  
  42:APP1/main.c   ****  #if OS_TICKS_PER_SEC <= (F_CPU/1024/256)
  43:APP1/main.c   ****  #error "OS_TICKS_PER_SEC <  (F_CPU/1024/256) "
  44:APP1/main.c   **** #endif
  45:APP1/main.c   **** 
  46:APP1/main.c   ****  OCR0=F_CPU/1024/OS_TICKS_PER_SEC;  //匹配寄存器
 193               	.LM3:
 194 0006 88E4      		ldi r24,lo8(72)
 195 0008 81BF      		out 81-0x20,r24
  47:APP1/main.c   ****  TCNT0=0;//计数初值
 197               	.LM4:
 198 000a 12BE      		out 82-0x20,__zero_reg__
  48:APP1/main.c   ****  TCCR0=(1<<WGM01)|0x05;//CTC模式1024分频
 200               	.LM5:
 201 000c 8DE0      		ldi r24,lo8(13)
 202 000e 83BF      		out 83-0x20,r24
  49:APP1/main.c   ****  TIMSK|=2;//tc0输出匹配中断使能
 204               	.LM6:
 205 0010 87B7      		in r24,87-0x20
 206 0012 8260      		ori r24,lo8(2)
 207 0014 87BF      		out 87-0x20,r24
  50:APP1/main.c   ****  
  51:APP1/main.c   ****  DDRB|=0x02;
 209               	.LM7:
 210 0016 B99A      		sbi 55-0x20,1
  52:APP1/main.c   ****  
  53:APP1/main.c   ****  hello();
 212               	.LM8:
 213 0018 0E94 0000 		call hello
  54:APP1/main.c   ****  OSTaskCreate(Task2,0,&Task2Stk[OS_USER_TASK_STK_SIZE-1],2);
 215               	.LM9:
 216 001c 22E0      		ldi r18,lo8(2)
 217 001e 40E0      		ldi r20,lo8(Task2Stk+63)
 218 0020 50E0      		ldi r21,hi8(Task2Stk+63)
 219 0022 60E0      		ldi r22,lo8(0)
 220 0024 70E0      		ldi r23,hi8(0)
 221 0026 80E0      		ldi r24,lo8(pm(Task2))
 222 0028 90E0      		ldi r25,hi8(pm(Task2))
 223 002a 0E94 0000 		call OSTaskCreate
  55:APP1/main.c   ****  OSTaskCreate(Task3,0,&Task3Stk[OS_USER_TASK_STK_SIZE-1],3); 
 225               	.LM10:
 226 002e 23E0      		ldi r18,lo8(3)
 227 0030 40E0      		ldi r20,lo8(Task3Stk+63)
 228 0032 50E0      		ldi r21,hi8(Task3Stk+63)
 229 0034 60E0      		ldi r22,lo8(0)
 230 0036 70E0      		ldi r23,hi8(0)
 231 0038 80E0      		ldi r24,lo8(pm(Task3))
 232 003a 90E0      		ldi r25,hi8(pm(Task3))
 233 003c 0E94 0000 		call OSTaskCreate
  56:APP1/main.c   ****  OSTaskCreate(Task4,0,&Task4Stk[OS_USER_TASK_STK_SIZE-1],5); 
 235               	.LM11:
 236 0040 25E0      		ldi r18,lo8(5)
 237 0042 40E0      		ldi r20,lo8(Task4Stk+63)
 238 0044 50E0      		ldi r21,hi8(Task4Stk+63)
 239 0046 60E0      		ldi r22,lo8(0)
 240 0048 70E0      		ldi r23,hi8(0)
 241 004a 80E0      		ldi r24,lo8(pm(Task4))
 242 004c 90E0      		ldi r25,hi8(pm(Task4))
 243 004e 0E94 0000 		call OSTaskCreate
  57:APP1/main.c   ****  OSTaskCreate(Task5,0,&Task5Stk[OS_USER_TASK_STK_SIZE-1],4);
 245               	.LM12:
 246 0052 24E0      		ldi r18,lo8(4)
 247 0054 40E0      		ldi r20,lo8(Task5Stk+63)
 248 0056 50E0      		ldi r21,hi8(Task5Stk+63)
 249 0058 60E0      		ldi r22,lo8(0)
 250 005a 70E0      		ldi r23,hi8(0)
 251 005c 80E0      		ldi r24,lo8(pm(Task5))
 252 005e 90E0      		ldi r25,hi8(pm(Task5))
 253 0060 0E94 0000 		call OSTaskCreate
 254               	.L2:
  58:APP1/main.c   ****  while(1)
  59:APP1/main.c   ****     {
  60:APP1/main.c   **** 
  61:APP1/main.c   **** 	 OSTimeDlyHMSM(0,0,1,0);
 256               	.LM13:
 257 0064 20E0      		ldi r18,lo8(0)
 258 0066 30E0      		ldi r19,hi8(0)
 259 0068 41E0      		ldi r20,lo8(1)
 260 006a 60E0      		ldi r22,lo8(0)
 261 006c 862F      		mov r24,r22
 262 006e 0E94 0000 		call OSTimeDlyHMSM
  62:APP1/main.c   **** 	 t1++;
 264               	.LM14:
 265 0072 8091 0000 		lds r24,t1
 266 0076 8F5F      		subi r24,lo8(-(1))
 267 0078 8093 0000 		sts t1,r24
  63:APP1/main.c   **** 	 PORTB^=0x02;
 269               	.LM15:
 270 007c 88B3      		in r24,56-0x20
 271 007e 92E0      		ldi r25,lo8(2)
 272 0080 8927      		eor r24,r25
 273 0082 88BB      		out 56-0x20,r24
  64:APP1/main.c   **** 	 PORTD^=0x10;
 275               	.LM16:
 276 0084 82B3      		in r24,50-0x20
 277 0086 90E1      		ldi r25,lo8(16)
 278 0088 8927      		eor r24,r25
 279 008a 82BB      		out 50-0x20,r24
  65:APP1/main.c   **** 	 OS_ENTER_CRITICAL();
 281               	.LM17:
 282               	/* #APP */
 283 008c 0FB6      		in __tmp_reg__,__SREG__
 284 008e F894      		cli
 285 0090 0F92      		push __tmp_reg__
  66:APP1/main.c   **** 	 display_1str(1,0,(char)OSCPUUsage);
 287               	.LM18:
 288               	/* #NOAPP */
 289 0092 4091 0000 		lds r20,OSCPUUsage
 290 0096 60E0      		ldi r22,lo8(0)
 291 0098 81E0      		ldi r24,lo8(1)
 292 009a 0E94 0000 		call display_1str
  67:APP1/main.c   **** 	 OS_EXIT_CRITICAL();
 294               	.LM19:
 295               	/* #APP */
 296 009e 0F90      		pop __tmp_reg__
 297 00a0 0FBE      		out __SREG__,__tmp_reg__
 298               	/* #NOAPP */
 299 00a2 E0CF      		rjmp .L2
 300               	/* epilogue: frame size=0 */
 301               	/* epilogue: noreturn */
 302               	/* epilogue end (size=0) */
 303               	/* function Main_Task size 87 (87) */
 305               	.Lscope0:
 308               	.global	Task2
 310               	Task2:
  68:APP1/main.c   **** 	}
  69:APP1/main.c   **** }
  70:APP1/main.c   **** 
  71:APP1/main.c   **** void Task2(void *pdata)
  72:APP1/main.c   **** {
 312               	.LM20:
 313               	/* prologue: frame size=1 */
 314 00a4 CF93      		push r28
 315 00a6 DF93      		push r29
 316 00a8 CDB7      		in r28,__SP_L__
 317 00aa DEB7      		in r29,__SP_H__
 318 00ac 2197      		sbiw r28,1
 319 00ae 0FB6      		in __tmp_reg__,__SREG__
 320 00b0 F894      		cli
 321 00b2 DEBF      		out __SP_H__,r29
 322 00b4 0FBE      		out __SREG__,__tmp_reg__
 323 00b6 CDBF      		out __SP_L__,r28
 324               	/* prologue end (size=10) */
  73:APP1/main.c   ****  unsigned char err=0;
 326               	.LM21:
 327 00b8 1982      		std Y+1,__zero_reg__
 328               	.L12:
  74:APP1/main.c   ****  pdata=pdata;
  75:APP1/main.c   **** 
  76:APP1/main.c   **** /* MCUCR=0x02;//int0下降沿产生异步中断
  77:APP1/main.c   ****  GICR=0x40;//通用中断控制器 使能int0中断
  78:APP1/main.c   **** 
  79:APP1/main.c   ****  TCCR2=0x08;      // CTC 模式, TOP=OCR2

⌨️ 快捷键说明

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