📄 rd_usecooperatingminios.lis
字号:
000A ; #endif
000A ; ProcPCB[n].Proc = NULL_PROC;
000A 83E0 ldi R24,3
000C 849F mul R24,R20
000E F001 movw R30,R0
0010 80E0 ldi R24,<_ProcPCB
0012 90E0 ldi R25,>_ProcPCB
0014 E80F add R30,R24
0016 F91F adc R31,R25
0018 80E0 ldi R24,<PL_NULL_PROC
001A 90E0 ldi R25,>PL_NULL_PROC
001C 9183 std z+1,R25
001E 8083 std z+0,R24
0020 .dbline 119
0020 ; ProcPCB[n].IfProcAlive = FALSE;
0020 83E0 ldi R24,3
0022 849F mul R24,R20
0024 F001 movw R30,R0
0026 80E0 ldi R24,<_ProcPCB+2
0028 90E0 ldi R25,>_ProcPCB+2
002A E80F add R30,R24
002C F91F adc R31,R25
002E 2224 clr R2
0030 2082 std z+0,R2
0032 .dbline 120
0032 ; }
0032 L4:
0032 .dbline 113
0032 4395 inc R20
0034 L6:
0034 .dbline 113
0034 4230 cpi R20,2
0036 48F3 brlo L3
0038 X0:
0038 .dbline 122
0038 ;
0038 ; COS_REGISTER_PROC_FUNCTION
0038 00D0 rcall _PROC_Register
003A .dbline -2
003A L2:
003A .dbline 0 ; func end
003A 4991 ld R20,y+
003C 0895 ret
003E .dbsym r n 20 c
003E .dbend
.area data(ram, con, rel)
0001 .dbfile H:\单片机\工程模板\基本工程模板with调度器\RD_UseCooperatingMiniOs.c
0001 L9:
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile H:\单片机\工程模板\基本工程模板with调度器\RD_UseCooperatingMiniOs.c
.area text(rom, con, rel)
003E .dbfile H:\单片机\工程模板\基本工程模板with调度器\RD_UseCooperatingMiniOs.c
003E .dbfunc e Process_Task _Process_Task fV
003E .dbsym s n L9 c
.even
003E _Process_Task::
003E .dbline -1
003E .dbline 132
003E ; }
003E ;
003E ; /***********************************************************
003E ; * 函数说明:任务处理函数 *
003E ; * 输入: 无 *
003E ; * 输出: 无 *
003E ; * 调用函数:无 *
003E ; ***********************************************************/
003E ; void Process_Task(void)
003E ; {
003E .dbline 135
003E ; static uint8 n = 0;
003E ;
003E ; if (ProcPCB[n].IfProcAlive) //处理进程
003E 20900100 lds R2,L9
0042 83E0 ldi R24,3
0044 829D mul R24,R2
0046 F001 movw R30,R0
0048 80E0 ldi R24,<_ProcPCB+2
004A 90E0 ldi R25,>_ProcPCB+2
004C E80F add R30,R24
004E F91F adc R31,R25
0050 2080 ldd R2,z+0
0052 2220 tst R2
0054 C1F0 breq L10
0056 X1:
0056 .dbline 136
0056 ; {
0056 .dbline 137
0056 ; ProcPCB[n].IfProcAlive = (*ProcPCB[n].Proc)();
0056 20900100 lds R2,L9
005A 83E0 ldi R24,3
005C 829D mul R24,R2
005E 1001 movw R2,R0
0060 80E0 ldi R24,<_ProcPCB
0062 90E0 ldi R25,>_ProcPCB
0064 F101 movw R30,R2
0066 E80F add R30,R24
0068 F91F adc R31,R25
006A A081 ldd R26,z+0
006C B181 ldd R27,z+1
006E 0F92 push R0
0070 1F92 push R1
0072 FD01 movw R30,R26
0074 00D0 rcall xicallx
0076 3F90 pop R3
0078 2F90 pop R2
007A 80E0 ldi R24,<_ProcPCB+2
007C 90E0 ldi R25,>_ProcPCB+2
007E F101 movw R30,R2
0080 E80F add R30,R24
0082 F91F adc R31,R25
0084 0083 std z+0,R16
0086 .dbline 138
0086 ; }
0086 L10:
0086 .dbline 140
0086 ;
0086 ; n ++;
0086 80910100 lds R24,L9
008A 8F5F subi R24,255 ; addi 1
008C 80930100 sts L9,R24
0090 .dbline 141
0090 ; if (n >= g_cCOSPROCCounter)
0090 20900000 lds R2,_g_cCOSPROCCounter
0094 8215 cp R24,R2
0096 18F0 brlo L14
0098 X2:
0098 .dbline 142
0098 ; {
0098 .dbline 143
0098 ; n = 0;
0098 2224 clr R2
009A 20920100 sts L9,R2
009E .dbline 144
009E ; }
009E L14:
009E .dbline -2
009E L8:
009E .dbline 0 ; func end
009E 0895 ret
00A0 .dbend
.area bss(ram, con, rel)
0000 .dbfile H:\单片机\工程模板\基本工程模板with调度器\RD_UseCooperatingMiniOs.c
0000 _ProcPCB::
0000 .blkb 6
0006 .dbstruct 0 3 Process
0006 .dbfield 0 Proc pfc
0006 .dbfield 2 IfProcAlive c
0006 .dbend
0006 .dbsym e ProcPCB _ProcPCB A[6:2]S[Process]
0006 ; }
.area func_lit
0000 0000 PL_NULL_PROC: .word `_NULL_PROC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -