📄 test1.s
字号:
.module test1.c
.area text(rom, con, rel)
.dbfile F:\开发工具\AVR开发工具\RTOSIC~1\source\test1.c
.dbfunc e main _main fV
.even
_main::
sbiw R28,4
.dbline -1
.dbline 32
; /*
; ********************************************************************************
; * Portierung des RTOS "礐/OS-II" von Jean J. Labrosse auf den ATmega103
; *
; * Compiler: IIC von imagecraft
; * File: Test1.c (Testapplikation)
; * By: Joerg Meyer
; * Revision: 0
; *
; *
; *
; ********************************************************************************
; */
; #define Test1_GLOBALS
; #include "includes.h"
;
; //******************************************************************************
; // Constants
; #define TaskStartPrio 10 // Task-Prioritaeten
;
;
; //*****************************************************************************
; // Variablen
; OS_STK Task1Stack[OS_TASK_DEF_STK_SIZE]; // startup task stack
; OS_STK Task2Stack[OS_TASK_DEF_STK_SIZE];
;
; //*****************************************************************************
; // Prototypes
; void Task1(void *pdata);
; //*****************************************************************************
; // Start
; void main(void){
.dbline 33
; OSInit(); // OS init
xcall _OSInit
.dbline 35
;
; OSTaskCreate(Task1,
ldi R24,11
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,<_Task1Stack+127
ldi R25,>_Task1Stack+127
std y+1,R25
std y+0,R24
ldi R18,97
ldi R19,0
ldi R16,<PL_Task1
ldi R17,>PL_Task1
xcall _OSTaskCreate
.dbline 39
; (void *)(int)'a',
; &Task1Stack[OS_TASK_DEF_STK_SIZE-1],
; TaskStartPrio+1);
; OSTaskCreate(Task1,
ldi R24,10
ldi R25,0
std y+3,R25
std y+2,R24
ldi R24,<_Task2Stack+127
ldi R25,>_Task2Stack+127
std y+1,R25
std y+0,R24
ldi R18,98
ldi R19,0
ldi R16,<PL_Task1
ldi R17,>PL_Task1
xcall _OSTaskCreate
.dbline 45
; (void *)(int)'b',
; &Task2Stack[OS_TASK_DEF_STK_SIZE-1],
; TaskStartPrio);
;
; // init und start tick
; TC2_Init(); // Timer/Counter#2 Overflow and Comp init
xcall _TC2_Init
.dbline 48
;
;
; OSStart(); // start multitasking
xcall _OSStart
.dbline -2
.dbline 50
;
; }
L1:
adiw R28,4
.dbline 0 ; func end
ret
.dbend
.dbfunc e Task1 _Task1 fV
; c -> R20
; data -> R20,R21
.even
_Task1::
xcall push_gset1
mov R20,R16
mov R21,R17
.dbline -1
.dbline 53
;
; //*****************************************************************************
; void Task1(void *data){
.dbline 54
; char c = (int)data;
.dbline 55
L5:
.dbline 55
.dbline 56
mov R16,R20
clr R17
xcall _putchar
.dbline 57
ldi R16,2
ldi R17,0
xcall _OSTimeDly
.dbline 59
.dbline 55
.dbline 55
xjmp L5
X0:
.dbline -2
L4:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r c 20 c
.dbsym r data 20 pV
.dbend
.area bss(ram, con, rel)
.dbfile F:\开发工具\AVR开发工具\RTOSIC~1\source\test1.c
_Task2Stack::
.blkb 128
.dbsym e Task2Stack _Task2Stack A[128:128]c
_Task1Stack::
.blkb 128
.dbsym e Task1Stack _Task1Stack A[128:128]c
.area func_lit
PL_Task1: .word `_Task1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -