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

📄 test1.s

📁 ucos-ii-at90S-icc-avr
💻 S
字号:
	.module test1.c
	.area vector(rom, abs)
	.org 14
	rjmp _OSTickISR
	.area text(rom, con, rel)
	.dbfile G:\编程2002-10-15-HOME\做过的项目\2002-10-22\home-c\software\ucos-ii-at90S-icc-avr\ucos-ii-source\test1.c
	.dbfunc e main _main fV
	.even
_main::
	sbiw R28,3
	.dbline -1
	.dbline 24
; /*
; */
; #define Test1_GLOBALS
; #include "includes.h"
; 
; //******************************************************************************
; // Variablen
; OS_STK	Task2Stack[OS_TASK_DEF_STK_SIZE];		// startup task stack
; OS_STK	Task3Stack[OS_TASK_DEF_STK_SIZE];	
; 
; //*****************************************************************************
; // Prototypes
; void Task2(void *pdata);
; void Task3(void *pdata);
; //*****************************************************************************
; 
; //*****************************************************************************
; // Interrupt Timer/Counter0 Overflow
; // OVF_Takt:  4MHz / 1024 / 39 = 10ms
; #pragma interrupt_handler OSTickISR:8
; //#pragma interrupt_handler test_OSTickISR0:8
; 
; void main()
; { 
	.dbline 25
;   CLI();//close interrupt
	cli
	.dbline 26
;   ProgramRest(FLASH_WHEN_RESET);
	ldi R16,3
	ldi R17,0
	rcall _ProgramRest
	.dbline 27
;   OSInit();		// OS init
	rcall _OSInit
	.dbline 29
; //check OSTCBFreeList;
;   if(OSRunning || (0==OSTCBFreeList))//stack destroyed
	lds R2,_OSRunning
	tst R2
	brne L6
	lds R2,_OSTCBFreeList
	lds R3,_OSTCBFreeList+1
	tst R2
	brne L4
	tst R3
	brne L4
X0:
L6:
	.dbline 30
;     goto OSTASKCREATE_ERROR;  
	rjmp L7
L4:
	.dbline 32
;   
;   if(OS_NO_ERR!=OSTaskCreate(Task2,
	ldi R24,2
	std y+2,R24
	ldi R24,<_Task2Stack+111
	ldi R25,>_Task2Stack+111
	std y+0,R24
	std y+1,R25
	ldi R18,50
	ldi R19,0
	ldi R16,<PL_Task2
	ldi R17,>PL_Task2
	rcall _OSTaskCreate
	tst R16
	breq L8
	.dbline 36
;               (void *)(int)'2',
;               &Task2Stack[OS_TASK_DEF_STK_SIZE-1],
;               TaskStartPrio))
;     goto OSTASKCREATE_ERROR;
	rjmp L7
L8:
	.dbline 38
; 
;   if(OSRunning || (0==OSTCBFreeList))//stack destroyed
	lds R2,_OSRunning
	tst R2
	brne L13
	lds R2,_OSTCBFreeList
	lds R3,_OSTCBFreeList+1
	tst R2
	brne L11
	tst R3
	brne L11
X1:
L13:
	.dbline 39
;     goto OSTASKCREATE_ERROR;
	rjmp L7
L11:
	.dbline 41
; 
;   if(OS_NO_ERR!=OSTaskCreate(Task3,
	ldi R24,3
	std y+2,R24
	ldi R24,<_Task3Stack+111
	ldi R25,>_Task3Stack+111
	std y+0,R24
	std y+1,R25
	ldi R18,51
	ldi R19,0
	ldi R16,<PL_Task3
	ldi R17,>PL_Task3
	rcall _OSTaskCreate
	tst R16
	breq L14
	.dbline 45
;               (void *)(int)'3',
;               &Task3Stack[OS_TASK_DEF_STK_SIZE-1],
;               TaskStartPrio+1))
;     goto OSTASKCREATE_ERROR;
	rjmp L7
L14:
	.dbline 47
;                 
;   TC2_Init();
	rcall _TC2_Init
	.dbline 49
;   
;   SEI();
	sei
	.dbline 52
;   //check OSTCBCur
;   //if(0==OSTCBCur)goto OSTASKCREATE_ERROR;
;   OSStart();		// start multitasking
	rcall _OSStart
L7:
	.dbline 56
;   //error
; OSTASKCREATE_ERROR:
;   //dead loop
;   ProgramError();
	rcall _ProgramError
	.dbline -2
	.dbline 57
; }
L3:
	adiw R28,3
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Task2 _Task2 fV
;           data -> R20,R21
	.even
_Task2::
	rcall push_gset1
	mov R20,R16
	mov R21,R17
	.dbline -1
	.dbline 60
; 
; //*****************************************************************************
; void Task2(void *data){
	.dbline 61
;   Task2_porta(data);
	mov R16,R20
	mov R17,R21
	rcall _Task2_porta
	.dbline -2
	.dbline 62
; }
L17:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r data 20 pV
	.dbend
	.dbfunc e Task2_porta _Task2_porta fV
;              j -> R20
;              i -> R22
;           data -> R10,R11
	.even
_Task2_porta::
	rcall push_gset3
	mov R10,R16
	mov R11,R17
	.dbline -1
	.dbline 63
; void Task2_porta(void *data){
	.dbline 64
;   INT8U i,j=0;
	clr R20
	.dbline 65
;   DDRA=0xff;
	ldi R24,255
	out 0x1a,R24
	rjmp L20
L19:
	.dbline 67
	.dbline 68
	inc R22
	.dbline 69
	out 0x1b,R22
	.dbline 70
	ldi R16,10
	ldi R17,0
	rcall _OSTimeDly
	.dbline 71
L20:
	.dbline 66
	rjmp L19
X2:
	.dbline -2
	.dbline 72
;   while(1)
;   {
;     i++;
;     PORTA=i;
;   	OSTimeDly(10);
;   }
; }
L18:
	rcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r j 20 c
	.dbsym r i 22 c
	.dbsym r data 10 pV
	.dbend
	.dbfunc e Task3 _Task3 fV
;              i -> R20
;              j -> R22
;              k -> R10
;           data -> R20,R21
	.even
_Task3::
	rcall push_gset3
	mov R20,R16
	mov R21,R17
	.dbline -1
	.dbline 74
; 
; void Task3(void *data){
	rjmp L24
L23:
	.dbline 77
;   unsigned char i,j,k;
;   while(1)
;   {
	.dbline 78
;   DDRC=0xff;
	ldi R24,255
	out 0x14,R24
	.dbline 79
;   SEI();
	sei
	.dbline 80
;   for(i=0;i<8;i++)
	clr R20
	rjmp L29
L26:
	.dbline 81
;   {
	.dbline 82
;     j=1;
	ldi R22,1
	.dbline 83
;     for(k=0;k<=i;k++)
	clr R10
	rjmp L33
L30:
	.dbline 84
	lsl R22
L31:
	.dbline 83
	inc R10
L33:
	.dbline 83
	cp R20,R10
	brsh L30
	.dbline 85
	com R22
	.dbline 86
	out 0x15,R22
	.dbline 87
	ldi R16,10
	ldi R17,0
	rcall _OSTimeDly
	.dbline 88
L27:
	.dbline 80
	inc R20
L29:
	.dbline 80
	cpi R20,8
	brlo L26
	.dbline 89
L24:
	.dbline 76
	rjmp L23
X3:
	.dbline -2
	.dbline 90
; 	  j*=2;
; 	asm("com %j");
; 	PORTC=j;
; 	OSTimeDly(10);
;   }
;   }
; }
L22:
	rcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r j 22 c
	.dbsym r k 10 c
	.dbsym r data 20 pV
	.dbend
	.area bss(ram, con, rel)
	.dbfile G:\编程2002-10-15-HOME\做过的项目\2002-10-22\home-c\software\ucos-ii-at90S-icc-avr\ucos-ii-source\test1.c
_Task3Stack::
	.blkb 112
	.dbsym e Task3Stack _Task3Stack A[112:112]c
_Task2Stack::
	.blkb 112
	.dbsym e Task2Stack _Task2Stack A[112:112]c
	.area func_lit
PL_Task3:	.word `_Task3
PL_Task2:	.word `_Task2

⌨️ 快捷键说明

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