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

📄 test.lss

📁 avr和small操作系统的一个测试程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     240:	30 93 67 00 	sts	0x0067, r19
     244:	20 93 66 00 	sts	0x0066, r18
     248:	08 95       	ret

0000024a <__vector_2>:
     24a:	1f 92       	push	r1
     24c:	0f 92       	push	r0
     24e:	0f 93       	push	r16
     250:	0f b7       	in	r16, 0x3f	; 63
     252:	0f 93       	push	r16
     254:	11 24       	eor	r1, r1
     256:	2f 93       	push	r18
     258:	3f 93       	push	r19
     25a:	4f 93       	push	r20
     25c:	5f 93       	push	r21
     25e:	6f 93       	push	r22
     260:	7f 93       	push	r23
     262:	8f 93       	push	r24
     264:	9f 93       	push	r25
     266:	af 93       	push	r26
     268:	bf 93       	push	r27
     26a:	ef 93       	push	r30
     26c:	ff 93       	push	r31
     26e:	cf 93       	push	r28
     270:	df 93       	push	r29
     272:	dd 20       	and	r13, r13
     274:	f9 f4       	brne	.+62     	; 0x2b4 <__vector_2+0x6a>
     276:	11 fd       	sbrc	r17, 1
     278:	17 c0       	rjmp	.+46     	; 0x2a8 <__vector_2+0x5e>
     27a:	8d b7       	in	r24, 0x3d	; 61
     27c:	9e b7       	in	r25, 0x3e	; 62
     27e:	ea 2d       	mov	r30, r10
     280:	ff 27       	eor	r31, r31
     282:	ee 0f       	add	r30, r30
     284:	ff 1f       	adc	r31, r31
     286:	eb 0d       	add	r30, r11
     288:	f1 1d       	adc	r31, r1
     28a:	9f 01       	movw	r18, r30
     28c:	22 0f       	add	r18, r18
     28e:	33 1f       	adc	r19, r19
     290:	22 0f       	add	r18, r18
     292:	33 1f       	adc	r19, r19
     294:	22 0f       	add	r18, r18
     296:	33 1f       	adc	r19, r19
     298:	ee 0f       	add	r30, r30
     29a:	ff 1f       	adc	r31, r31
     29c:	e2 0f       	add	r30, r18
     29e:	f3 1f       	adc	r31, r19
     2a0:	e0 58       	subi	r30, 0x80	; 128
     2a2:	ff 4f       	sbci	r31, 0xFF	; 255
     2a4:	91 83       	std	Z+1, r25	; 0x01
     2a6:	80 83       	st	Z, r24
     2a8:	ed b7       	in	r30, 0x3d	; 61
     2aa:	fe b7       	in	r31, 0x3e	; 62
     2ac:	ed be       	out	0x3d, r14	; 61
     2ae:	fe be       	out	0x3e, r15	; 62
     2b0:	ef 93       	push	r30
     2b2:	ff 93       	push	r31
     2b4:	2d 2d       	mov	r18, r13
     2b6:	2f 5f       	subi	r18, 0xFF	; 255
     2b8:	d2 2e       	mov	r13, r18
     2ba:	80 91 64 00 	lds	r24, 0x0064
     2be:	90 91 65 00 	lds	r25, 0x0065
     2c2:	01 96       	adiw	r24, 0x01	; 1
     2c4:	90 93 65 00 	sts	0x0065, r25
     2c8:	80 93 64 00 	sts	0x0064, r24
     2cc:	f8 94       	cli
     2ce:	21 11       	cpse	r18, r1
     2d0:	da 94       	dec	r13
     2d2:	dd 20       	and	r13, r13
     2d4:	41 f4       	brne	.+16     	; 0x2e6 <__vector_2+0x9c>
     2d6:	ff 91       	pop	r31
     2d8:	ef 91       	pop	r30
     2da:	ed bf       	out	0x3d, r30	; 61
     2dc:	fe bf       	out	0x3e, r31	; 62
     2de:	10 ff       	sbrs	r17, 0
     2e0:	02 c0       	rjmp	.+4      	; 0x2e6 <__vector_2+0x9c>
     2e2:	11 ff       	sbrs	r17, 1
     2e4:	56 d1       	rcall	.+684    	; 0x592 <SososSched>
     2e6:	df 91       	pop	r29
     2e8:	cf 91       	pop	r28
     2ea:	ff 91       	pop	r31
     2ec:	ef 91       	pop	r30
     2ee:	bf 91       	pop	r27
     2f0:	af 91       	pop	r26
     2f2:	9f 91       	pop	r25
     2f4:	8f 91       	pop	r24
     2f6:	7f 91       	pop	r23
     2f8:	6f 91       	pop	r22
     2fa:	5f 91       	pop	r21
     2fc:	4f 91       	pop	r20
     2fe:	3f 91       	pop	r19
     300:	2f 91       	pop	r18
     302:	0f 91       	pop	r16
     304:	0f bf       	out	0x3f, r16	; 63
     306:	0f 91       	pop	r16
     308:	0f 90       	pop	r0
     30a:	1f 90       	pop	r1
     30c:	18 95       	reti

0000030e <__vector_1>:
     30e:	1f 92       	push	r1
     310:	0f 92       	push	r0
     312:	0f 93       	push	r16
     314:	0f b7       	in	r16, 0x3f	; 63
     316:	0f 93       	push	r16
     318:	11 24       	eor	r1, r1
     31a:	2f 93       	push	r18
     31c:	3f 93       	push	r19
     31e:	4f 93       	push	r20
     320:	5f 93       	push	r21
     322:	6f 93       	push	r22
     324:	7f 93       	push	r23
     326:	8f 93       	push	r24
     328:	9f 93       	push	r25
     32a:	af 93       	push	r26
     32c:	bf 93       	push	r27
     32e:	ef 93       	push	r30
     330:	ff 93       	push	r31
     332:	cf 93       	push	r28
     334:	df 93       	push	r29
     336:	dd 20       	and	r13, r13
     338:	f9 f4       	brne	.+62     	; 0x378 <__vector_1+0x6a>
     33a:	11 fd       	sbrc	r17, 1
     33c:	17 c0       	rjmp	.+46     	; 0x36c <__vector_1+0x5e>
     33e:	8d b7       	in	r24, 0x3d	; 61
     340:	9e b7       	in	r25, 0x3e	; 62
     342:	ea 2d       	mov	r30, r10
     344:	ff 27       	eor	r31, r31
     346:	ee 0f       	add	r30, r30
     348:	ff 1f       	adc	r31, r31
     34a:	eb 0d       	add	r30, r11
     34c:	f1 1d       	adc	r31, r1
     34e:	9f 01       	movw	r18, r30
     350:	22 0f       	add	r18, r18
     352:	33 1f       	adc	r19, r19
     354:	22 0f       	add	r18, r18
     356:	33 1f       	adc	r19, r19
     358:	22 0f       	add	r18, r18
     35a:	33 1f       	adc	r19, r19
     35c:	ee 0f       	add	r30, r30
     35e:	ff 1f       	adc	r31, r31
     360:	e2 0f       	add	r30, r18
     362:	f3 1f       	adc	r31, r19
     364:	e0 58       	subi	r30, 0x80	; 128
     366:	ff 4f       	sbci	r31, 0xFF	; 255
     368:	91 83       	std	Z+1, r25	; 0x01
     36a:	80 83       	st	Z, r24
     36c:	ed b7       	in	r30, 0x3d	; 61
     36e:	fe b7       	in	r31, 0x3e	; 62
     370:	ed be       	out	0x3d, r14	; 61
     372:	fe be       	out	0x3e, r15	; 62
     374:	ef 93       	push	r30
     376:	ff 93       	push	r31
     378:	d3 94       	inc	r13
     37a:	78 94       	sei
     37c:	93 9a       	sbi	0x12, 3	; 18
     37e:	93 98       	cbi	0x12, 3	; 18
     380:	80 91 62 00 	lds	r24, 0x0062
     384:	90 91 63 00 	lds	r25, 0x0063
     388:	01 96       	adiw	r24, 0x01	; 1
     38a:	90 93 63 00 	sts	0x0063, r25
     38e:	80 93 62 00 	sts	0x0062, r24
     392:	8f e7       	ldi	r24, 0x7F	; 127
     394:	90 e0       	ldi	r25, 0x00	; 0
     396:	6e d4       	rcall	.+2268   	; 0xc74 <SososLogicSemPost>
     398:	f8 94       	cli
     39a:	d1 10       	cpse	r13, r1
     39c:	da 94       	dec	r13
     39e:	dd 20       	and	r13, r13
     3a0:	41 f4       	brne	.+16     	; 0x3b2 <__vector_1+0xa4>
     3a2:	ff 91       	pop	r31
     3a4:	ef 91       	pop	r30
     3a6:	ed bf       	out	0x3d, r30	; 61
     3a8:	fe bf       	out	0x3e, r31	; 62
     3aa:	10 ff       	sbrs	r17, 0
     3ac:	02 c0       	rjmp	.+4      	; 0x3b2 <__vector_1+0xa4>
     3ae:	11 ff       	sbrs	r17, 1
     3b0:	f0 d0       	rcall	.+480    	; 0x592 <SososSched>
     3b2:	df 91       	pop	r29
     3b4:	cf 91       	pop	r28
     3b6:	ff 91       	pop	r31
     3b8:	ef 91       	pop	r30
     3ba:	bf 91       	pop	r27
     3bc:	af 91       	pop	r26
     3be:	9f 91       	pop	r25
     3c0:	8f 91       	pop	r24
     3c2:	7f 91       	pop	r23
     3c4:	6f 91       	pop	r22
     3c6:	5f 91       	pop	r21
     3c8:	4f 91       	pop	r20
     3ca:	3f 91       	pop	r19
     3cc:	2f 91       	pop	r18
     3ce:	0f 91       	pop	r16
     3d0:	0f bf       	out	0x3f, r16	; 63
     3d2:	0f 91       	pop	r16
     3d4:	0f 90       	pop	r0
     3d6:	1f 90       	pop	r1
     3d8:	18 95       	reti

000003da <SososInitIntSp>:
void SososInitIntSp(void) __attribute__ ((constructor));//定义中断嵌套堆栈指针
void SososInitIntSp(void)
//本函数在main()之前运行,将系统堆栈指针保存在r15:r14中
{
  __asm__ __volatile__("PUSH r16 \n\t");
     3da:	0f 93       	push	r16
  __asm__ __volatile__("IN r14 ,__SP_L__ \n\t");
     3dc:	ed b6       	in	r14, 0x3d	; 61
  __asm__ __volatile__("LDI r16 ,3 \n\t");
     3de:	03 e0       	ldi	r16, 0x03	; 3
  __asm__ __volatile__("ADD r14 ,r16 \n\t");
     3e0:	e0 0e       	add	r14, r16
  __asm__ __volatile__("IN r15 ,__SP_H__ \n\t");
     3e2:	fe b6       	in	r15, 0x3e	; 62
  __asm__ __volatile__("CLR r16 \n\t");
     3e4:	00 27       	eor	r16, r16
  __asm__ __volatile__("ADC r15 ,r16 \n\t");
     3e6:	f0 1e       	adc	r15, r16
  __asm__ __volatile__("POP r16 \n\t");
     3e8:	0f 91       	pop	r16
     3ea:	08 95       	ret

000003ec <SOSOS_TASK_STACK_CASE>:
}
#endif

#if STACK_SIZE_REPORT_ENABLE == 1
unsigned int SOSOS_TASK_STACK_CASE(unsigned char pri,unsigned char id)//堆栈情况报告
//本函数用于返回指定任务的堆栈占用情况,单位:字节
//pri和id是要报告的任务优先级和ID
{
 unsigned int i;

 for(i=(TCB[pri*SOSOS_MAX_TASK_PER_PRI+id].TASK_STACK_BUTTON-TCB[pri*SOSOS_MAX_TASK_PER_PRI+id].TASK_STACK_SIZE+1);i<TCB[pri*SOSOS_MAX_TASK_PER_PRI+id].TASK_STACK_BUTTON;i++){
     3ec:	e8 2f       	mov	r30, r24
     3ee:	ff 27       	eor	r31, r31
     3f0:	ee 0f       	add	r30, r30
     3f2:	ff 1f       	adc	r31, r31
     3f4:	e6 0f       	add	r30, r22
     3f6:	f1 1d       	adc	r31, r1
     3f8:	cf 01       	movw	r24, r30
     3fa:	33 e0       	ldi	r19, 0x03	; 3
     3fc:	88 0f       	add	r24, r24
     3fe:	99 1f       	adc	r25, r25
     400:	3a 95       	dec	r19
     402:	e1 f7       	brne	.-8      	; 0x3fc <SOSOS_TASK_STACK_CASE+0x10>
     404:	ee 0f       	add	r30, r30
     406:	ff 1f       	adc	r31, r31
     408:	e8 0f       	add	r30, r24
     40a:	f9 1f       	adc	r31, r25
     40c:	e0 58       	subi	r30, 0x80	; 128
     40e:	ff 4f       	sbci	r31, 0xFF	; 255
     410:	22 81       	ldd	r18, Z+2	; 0x02
     412:	33 81       	ldd	r19, Z+3	; 0x03
     414:	84 81       	ldd	r24, Z+4	; 0x04
     416:	95 81       	ldd	r25, Z+5	; 0x05
     418:	f9 01       	movw	r30, r18
     41a:	e8 1b       	sub	r30, r24
     41c:	f9 0b       	sbc	r31, r25
     41e:	03 c0       	rjmp	.+6      	; 0x426 <SOSOS_TASK_STACK_CASE+0x3a>
   if(*((unsigned char *)i)!=INIT_STACK_FILL_BYTES)
     420:	80 81       	ld	r24, Z
     422:	8a 3a       	cpi	r24, 0xAA	; 170
     424:	21 f4       	brne	.+8      	; 0x42e <SOSOS_TASK_STACK_CASE+0x42>
     426:	31 96       	adiw	r30, 0x01	; 1
     428:	e2 17       	cp	r30, r18
     42a:	f3 07       	cpc	r31, r19
     42c:	c8 f3       	brcs	.-14     	; 0x420 <SOSOS_TASK_STACK_CASE+0x34>
     42e:	2e 1b       	sub	r18, r30
     430:	3f 0b       	sbc	r19, r31
     break;
   }

 i=TCB[pri*SOSOS_MAX_TASK_PER_PRI+id].TASK_STACK_BUTTON-1-i;

 return i;
}
     432:	c9 01       	movw	r24, r18
     434:	01 97       	sbiw	r24, 0x01	; 1
     436:	08 95       	ret

00000438 <SososInitOs>:
#endif

#if SOSOS_TASK_ENALBE == 1
void SososInitOs(void)//初始化SOSOS系统
//本函数用于初始化SOSOS系统,应在调用任何系统函数前调用一次
{
#if ERROR_DETECT_ENABLE == 1
 unsigned char i;

 SOSOS_WAIT_TASK=0;
     438:	99 24       	eor	r9, r9
 SOSOS_TIMESLICE=0;
     43a:	88 24       	eor	r8, r8
 SOSOS_INT_NEST=0;
     43c:	dd 24       	eor	r13, r13
 SOSOS_TICKS=0;
     43e:	77 24       	eor	r7, r7
 SOSOS_STATE=0;
     440:	10 e0       	ldi	r17, 0x00	; 0
#if SOSOS_MUTEX_ENABLE == 1
 SOSOS_MUTEX_POINT=0;
     442:	10 92 c2 00 	sts	0x00C2, r1
     446:	10 92 c1 00 	sts	0x00C1, r1
#endif
 
 for(i=0;i<SOSOS_PRI_MAX;i++){
   SOSOS_TASK_READY[i]=0;
     44a:	10 92 7a 00 	sts	0x007A, r1
     44e:	10 92 7b 00 	sts	0x007B, r1
     452:	10 92 7c 00 	sts	0x007C, r1
   }
 for(i=0;i<SOSOS_PRI_MAX*SOSOS_MAX_TASK_PER_PRI;i++){
   TCB[i].TASK_STACK_POINT=0;
     456:	10 92 81 00 	sts	0x0081, r1
     45a:	10 92 80 00 	sts	0x0080, r1
     45e:	10 92 8b 00 	sts	0x008B, r1
     462:	10 92 8a 00 	sts	0x008A, r1
     466:	10 92 95 00 	sts	0x0095, r1
     46a:	10 92 94 00 	sts	0x0094, r1
     46e:	10 92 9f 00 	sts	0x009F, r1
     472:	10 92 9e 00 	sts	0x009E, r1
     476:	10 92 a9 00 	sts	0x00A9, r1
     47a:	10 92 a8 00 	sts	0x00A8, r1
     47e:	10 92 b3 00 	sts	0x00B3, r1
     482:	10 92 b2 00 	sts	0x00B2, r1
     486:	e3 ec       	ldi	r30, 0xC3	; 195
     488:	f0 e0       	ldi	r31, 0x00	; 0
     48a:	8a ea       	ldi	r24, 0xAA	; 170
   }
#endif
#if STACK_SIZE_REPORT_ENABLE == 1
unsigned int fill;
 for(fill=0;fill<SOSOS_TASK_STACK_SIZE;fill++)
   SOSOS_TASK_STACK[fill]=INIT_STACK_FILL_BYTES;
     48c:	81 93       	st	Z+, r24
     48e:	91 e0       	ldi	r25, 0x01	; 1
     490:	eb 38       	cpi	r30, 0x8B	; 139
     492:	f9 07       	cpc	r31, r25
     494:	d9 f7       	brne	.-10     	; 0x48c <__stack+0x2d>
#endif
 SOSOS_TASK_STACK_TOP=(SOSOS_ADDRESS)SOSOS_TASK_STACK+SOSOS_TASK_STACK_SIZE-1;
     496:	31 97       	sbiw	r30, 0x01	; 1
     498:	f0 93 7e 00 	sts	0x007E, r31

⌨️ 快捷键说明

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