📄 test_funcs.s
字号:
.module test_funcs.c
.area text(rom, con, rel)
.dbfile G:\编程2002-10-15-HOME\做过的项目\2002-10-22\home-c\software\ucos-ii-at90S-icc-avr\os-task-switch\test_funcs.c
.dbfunc e TC2_Init _TC2_Init fV
.even
_TC2_Init::
.dbline -1
.dbline 7
; #include "includes.h"
;
; //*****************************************************************************
; // TickISR
; //*****************************************************************************
; // Init Timer/Counter2 fuer Takterzeugung
; void TC2_Init (void){
.dbline 8
; TCCR0 = 0x05; /* Set TIMER0 prescaler to CLK/1024 */
ldi R24,5
out 0x33,R24
.dbline 9
; TIMSK = 0x02; /* Enable TIMER0 overflow interrupt */
ldi R24,2
out 0x39,R24
.dbline -2
.dbline 10
; }
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e Delay _Delay fV
; i -> R16
; j -> R18
; k -> R20
.even
_Delay::
rcall push_gset1
.dbline -1
.dbline 13
;
; void Delay(void)
; {
.dbline 15
; unsigned char i,j,k;
; for(i=1;i<10;i++)
ldi R16,1
rjmp L6
L3:
.dbline 16
; for(j=1;j;j++)
ldi R18,1
rjmp L10
L7:
.dbline 17
; {
.dbline 18
; for(k=1;k;k++)
ldi R20,1
rjmp L14
L11:
.dbline 19
L12:
.dbline 18
inc R20
L14:
.dbline 18
tst R20
brne L11
.dbline 20
L8:
.dbline 16
inc R18
L10:
.dbline 16
tst R18
brne L7
L4:
.dbline 15
inc R16
L6:
.dbline 15
cpi R16,10
brlo L3
.dbline -2
.dbline 21
; ;
; }
; }
L2:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbsym r j 18 c
.dbsym r k 20 c
.dbend
.dbfunc e task_Delay _task_Delay fV
; k -> <dead>
; j -> <dead>
; i -> R20
.even
_task_Delay::
rcall push_gset1
.dbline -1
.dbline 24
;
; void task_Delay(void)
; {
.dbline 26
; unsigned char i,j,k;
; for(i=1;i<2;i++)
ldi R20,1
rjmp L19
L16:
.dbline 28
.dbline 29
ldi R16,3
ldi R17,0
rcall _OSTimeDly
.dbline 31
L17:
.dbline 26
inc R20
L19:
.dbline 26
cpi R20,2
brlo L16
.dbline -2
.dbline 32
; // for(j=1;j;j++)
; {
; OSTimeDly(3);
; // for(k=1;k;k++) ;
; }
; }
L15:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym l k 1 c
.dbsym l j 1 c
.dbsym r i 20 c
.dbend
.dbfunc e ProgramStart_Flash _ProgramStart_Flash fV
; v -> R20
.even
_ProgramStart_Flash::
rcall push_gset1
mov R20,R16
.dbline -1
.dbline 35
;
; void ProgramStart_Flash(INT8U v)
; {
.dbline 36
; DDRB=0xff;
ldi R24,255
out 0x17,R24
.dbline 37
; PORTB=v;
out 0x18,R20
.dbline 38
; DDRD=0xff;
out 0x11,R24
.dbline 39
; PORTD=v;
out 0x12,R20
.dbline 43
; // DDRA=0xff; PORTA=v;
; // DDRC=0xff;
; // PORTC=v;
; Delay();
rcall _Delay
.dbline -2
.dbline 44
; }
L20:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r v 20 c
.dbend
.dbfunc e ProgramStart _ProgramStart fV
.even
_ProgramStart::
.dbline -1
.dbline 47
;
; void ProgramStart(void)
; {
.dbline 48
; DDRA=0xff; PORTA=0xff;
ldi R24,255
out 0x1a,R24
.dbline 48
out 0x1b,R24
.dbline 49
; DDRC=0xff; PORTC=0xff;
out 0x14,R24
.dbline 49
out 0x15,R24
.dbline 50
; ProgramStart_Flash(0);
clr R16
rcall _ProgramStart_Flash
.dbline 51
; ProgramStart_Flash(0xff);
ldi R16,255
rcall _ProgramStart_Flash
.dbline 52
; ProgramStart_Flash(0);
clr R16
rcall _ProgramStart_Flash
.dbline 53
; ProgramStart_Flash(0xff);
ldi R16,255
rcall _ProgramStart_Flash
.dbline 54
; ProgramStart_Flash(0);
clr R16
rcall _ProgramStart_Flash
.dbline 55
; ProgramStart_Flash(0xff);
ldi R16,255
.dbline -2
.dbline 56
; }
L21:
.dbline 0 ; func end
rjmp _ProgramStart_Flash
.dbend
.dbfunc e OSError _OSError fV
; i -> R20
; err -> R16
.even
_OSError::
rcall push_gset1
.dbline -1
.dbline 60
;
; #if OS_STRICT
; void OSError(INT8U err)
; {
.dbline 61
; INT8U i=err;
mov R20,R16
rjmp L24
L23:
.dbline 63
mov R20,R16
L24:
.dbline 62
rjmp L23
X0:
.dbline -2
.dbline 64
; while(1)
; i=err;
; }
L22:
rcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r err 16 c
.dbend
.dbfunc e task1 _task1 fV
; i -> R20
; pdata -> R22,R23
.even
_task1::
rcall push_gset2
mov R22,R16
mov R23,R17
.dbline -1
.dbline 68
; #endif
;
; void task1(void *pdata)
; {
.dbline 69
; INT8U i=0;
clr R20
.dbline 70
; DDRA=0xff;
ldi R24,255
out 0x1a,R24
rjmp L28
L27:
.dbline 72
.dbline 74
inc R20
.dbline 75
out 0x1b,R20
.dbline 77
ldi R16,3
ldi R17,0
rcall _OSTimeDly
.dbline 78
L28:
.dbline 71
rjmp L27
X1:
.dbline -2
.dbline 79
; while(1)
; {
; // SEI();
; i++;
; PORTA=i;
; //task_Delay();
; OSTimeDly(3);
; }
; }
L26:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r pdata 22 pV
.dbend
.dbfunc e task2 _task2 fV
; i -> R20
; pdata -> R22,R23
.even
_task2::
rcall push_gset2
mov R22,R16
mov R23,R17
.dbline -1
.dbline 82
;
; void task2(void *pdata)
; {
.dbline 83
; unsigned char i=0;
clr R20
.dbline 84
; DDRC=0xff;
ldi R24,255
out 0x14,R24
rjmp L32
L31:
.dbline 86
.dbline 88
inc R20
.dbline 89
out 0x15,R20
.dbline 91
ldi R16,3
ldi R17,0
rcall _OSTimeDly
.dbline 92
L32:
.dbline 85
rjmp L31
X2:
.dbline -2
.dbline 93
; while(1)
; {
; // SEI();
; i++;
; PORTC=i;
; // task_Delay();
; OSTimeDly(3);
; }
; }
L30:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r pdata 22 pV
.dbend
.dbfunc e task3 _task3 fV
; pdata -> R16,R17
.even
_task3::
.dbline -1
.dbline 96
;
; void task3(void *pdata)
; {
rjmp L36
L35:
.dbline 98
.dbline 99
sei
.dbline 100
nop
.dbline 101
L36:
.dbline 97
rjmp L35
X3:
.dbline -2
.dbline 102
; while(1)
; {
; SEI();
; asm("nop");
; }
; }
L34:
.dbline 0 ; func end
ret
.dbsym r pdata 16 pV
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -