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

📄 app.s

📁 把UCOSII移植到AVR MEGA8上的程序 应用程序为驱动1602显示器,虽说有些简单,但可测试UCOS的运行
💻 S
📖 第 1 页 / 共 2 页
字号:
	.dbline 153
;     OSTaskCreate(AppTask2, (void *)0, (OS_STK *)&AppTask2Stk[OSTaskStkSize - 1], 2);
	ldi R24,2
	std y+2,R24
	ldi R24,<_AppTask2Stk
	ldi R25,>_AppTask2Stk
	lds R30,_OSTaskStkSize
	lds R31,_OSTaskStkSize+1
	sbiw R30,1
	add R30,R24
	adc R31,R25
	std y+1,R31
	std y+0,R30
	clr R18
	clr R19
	ldi R16,<PL_AppTask2
	ldi R17,>PL_AppTask2
	rcall _OSTaskCreate
	.dbline -2
L9:
	adiw R28,3
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc s AppTask1 _AppTask1 fV
;          p_arg -> R20,R21
	.even
_AppTask1:
	rcall push_gset1
	movw R20,R16
	sbiw R28,4
	.dbline -1
	.dbline 163
; }
; 
; /*
; *********************************************************************************************************
; *                                              TASK #1
; *********************************************************************************************************
; */
; 
; static void  AppTask1(void *p_arg)
; {
	.dbline 164
;     p_arg = p_arg;
	rjmp L12
L11:
	.dbline 165
	.dbline 168
	ldi R24,<L14
	ldi R25,>L14
	std y+1,R25
	std y+0,R24
	ldi R18,1
	ldi R16,1
	rcall _LCD_write_string
	.dbline 169
	clr R2
	clr R3
	std y+3,R3
	std y+2,R2
	ldi R24,3
	std y+0,R24
	clr R18
	clr R16
	rcall _OSTimeDlyHMSM
	.dbline 171
L12:
	.dbline 165
	rjmp L11
X1:
	.dbline -2
L10:
	adiw R28,4
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r p_arg 20 pV
	.dbend
	.dbfunc s AppTask2 _AppTask2 fV
;          p_arg -> R20,R21
	.even
_AppTask2:
	rcall push_gset1
	movw R20,R16
	sbiw R28,4
	.dbline -1
	.dbline 181
;     while (TRUE) {
;        // LED_Toggle(2);
;         //OSTimeDly(OS_TICKS_PER_SEC / 5);
;     LCD_write_string(1,1,"I love UCOS-II");
; 	OSTimeDlyHMSM(0,0,3,0);
; 	
; 	}
; }
; 
; /*
; *********************************************************************************************************
; *                                              TASK #2
; *********************************************************************************************************
; */
; 
; static void  AppTask2(void *p_arg)
; {
	.dbline 182
;     p_arg = p_arg;
	rjmp L17
L16:
	.dbline 183
	.dbline 186
	clr R18
	clr R19
	ldi R16,1
	ldi R17,0
	rcall _LCD_write_char
	.dbline 187
	ldi R24,<L19
	ldi R25,>L19
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	rcall _LCD_write_string
	.dbline 188
	ldi R24,<L20
	ldi R25,>L20
	std y+1,R25
	std y+0,R24
	ldi R18,1
	clr R16
	rcall _LCD_write_string
	.dbline 189
	clr R2
	clr R3
	std y+3,R3
	std y+2,R2
	ldi R24,5
	std y+0,R24
	clr R18
	clr R16
	rcall _OSTimeDlyHMSM
	.dbline 190
L17:
	.dbline 183
	rjmp L16
X2:
	.dbline -2
L15:
	adiw R28,4
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r p_arg 20 pV
	.dbend
	.dbfunc s AppIOInit _AppIOInit fV
	.even
_AppIOInit:
	.dbline -1
	.dbline 200
;     while (TRUE) {
;         //LED_Toggle(3);
;         //OSTimeDly(OS_TICKS_PER_SEC / 2);
; 		 LCD_write_char(0x01,0);                                    /*显示清屏                        */
;          LCD_write_string(0,0," from MICRIUM ");
;          LCD_write_string(0,1,"atmega8");
; 		 OSTimeDlyHMSM(0,0,5,0);
;     }
; }
; 
; /*
; *********************************************************************************************************
; *                                            SETUP THE I/Os
; *********************************************************************************************************
; */
; 
; static void AppIOInit (void)
; {
	.dbline 201
;      DDRD |= LCD_DATA | LCD_RW;
	in R24,0x11
	ori R24,248
	out 0x11,R24
	.dbline 202
;      DDRC |= LCD_RS   | LCD_EN;
	in R24,0x14
	ori R24,48
	out 0x14,R24
	.dbline -2
L21:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e OSTickISR_Init _OSTickISR_Init fV
	.even
_OSTickISR_Init::
	.dbline -1
	.dbline 212
; }
; 
; /*
; *********************************************************************************************************
; *                                        SETUP THE TICK RATE
; *********************************************************************************************************
; */
; 
; void  OSTickISR_Init (void)
; {
	.dbline 215
;     //TCCR0 = 0x07;                                       /* Set TIMER0 prescaler to CLK/1024            */
;     //TIMSK = 0x01;  
; 	TCCR0 = 0x00; 
	clr R2
	out 0x33,R2
	.dbline 216
;     TCNT0 = 0x64; 
	ldi R24,100
	out 0x32,R24
	.dbline 217
;     TCCR0 = 0x05;  
	ldi R24,5
	out 0x33,R24
	.dbline 218
; 	TIMSK = 0x01;                                 /* Enable TIMER0 overflow interrupt            */
	ldi R24,1
	out 0x39,R24
	.dbline -2
L22:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e OSTickISR_Handler _OSTickISR_Handler fV
	.even
_OSTickISR_Handler::
	.dbline -1
	.dbline 229
; }
; 
; 
; /*
; *********************************************************************************************************
; *                                        SETUP THE TICK RATE
; *********************************************************************************************************
; */
; 
; void  OSTickISR_Handler (void)
; {
	.dbline 230
;     TCNT0 = 256 - (CPU_CLK_FREQ / OS_TICKS_PER_SEC / 1024);
	ldi R24,100
	out 0x32,R24
	.dbline 231
;     OSTimeTick();
	rcall _OSTimeTick
	.dbline -2
L23:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile F:\AVRPRA~1\ucosii-port2-mega8\app.c
_i::
	.blkb 2
	.dbsym e i _i pc
_AppTask2Stk::
	.blkb 128
	.dbsym e AppTask2Stk _AppTask2Stk A[128:128]c
_AppTask1Stk::
	.blkb 128
	.dbsym e AppTask1Stk _AppTask1Stk A[128:128]c
_AppTaskStartStk::
	.blkb 128
	.dbsym e AppTaskStartStk _AppTaskStartStk A[128:128]c
	.area data(ram, con, rel)
	.dbfile F:\AVRPRA~1\ucosii-port2-mega8\app.c
L20:
	.blkb 8
	.area idata
	.byte 'a,'t,'m,'e,'g,'a,56,0
	.area data(ram, con, rel)
	.dbfile F:\AVRPRA~1\ucosii-port2-mega8\app.c
L19:
	.blkb 15
	.area idata
	.byte 32,'f,'r,'o,'m,32,'M,'I,'C,'R,'I,'U,'M,32,0
	.area data(ram, con, rel)
	.dbfile F:\AVRPRA~1\ucosii-port2-mega8\app.c
L14:
	.blkb 15
	.area idata
	.byte 'I,32,'l,'o,'v,'e,32,'U,'C,'O,'S,45,'I,'I,0
	.area data(ram, con, rel)
	.dbfile F:\AVRPRA~1\ucosii-port2-mega8\app.c
L8:
	.blkb 8
	.area idata
	.byte 'W,'e,'l,'c,'o,'m,'e,0
	.area data(ram, con, rel)
	.dbfile F:\AVRPRA~1\ucosii-port2-mega8\app.c
	.area func_lit
PL_AppTask2:	.word `_AppTask2
PL_AppTask1:	.word `_AppTask1
PL_AppTaskStart:	.word `_AppTaskStart

⌨️ 快捷键说明

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