📄 rd_usecooperatingminios.lis
字号:
000C ; #endif
000C ; ProcPCB[n].Proc = NULL_PROC;
000C 83E0 ldi R24,3
000E 849F mul R24,R20
0010 5001 movw R10,R0
0012 80E0 ldi R24,<_ProcPCB
0014 90E0 ldi R25,>_ProcPCB
0016 F501 movw R30,R10
0018 E80F add R30,R24
001A F91F adc R31,R25
001C 80E0 ldi R24,<PL_NULL_PROC
001E 90E0 ldi R25,>PL_NULL_PROC
0020 9183 std z+1,R25
0022 8083 std z+0,R24
0024 .dbline 119
0024 ; ProcPCB[n].IfProcAlive = FALSE;
0024 80E0 ldi R24,<_ProcPCB+2
0026 90E0 ldi R25,>_ProcPCB+2
0028 F501 movw R30,R10
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 4530 cpi R20,5
0036 50F3 brlo L3
0038 X0:
0038 .dbline 122
0038 ;
0038 ; COS_REGISTER_PROC_FUNCTION
0038 0E940000 xcall _PROC_Register
003C .dbline -2
003C L2:
003C .dbline 0 ; func end
003C 0C940000 xjmp pop_xgset300C
0040 .dbsym r Reg1 10 S
0040 .dbsym r n1 20 c
0040 .dbend
.area data(ram, con, rel)
0001 .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseCooperatingMiniOs.c
0001 L9:
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseCooperatingMiniOs.c
.area text(rom, con, rel)
0040 .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseCooperatingMiniOs.c
0040 .dbfunc e Process_Task _Process_Task fV
0040 .dbsym s n L9 c
.even
0040 _Process_Task::
0040 .dbline -1
0040 .dbline 132
0040 ; }
0040 ;
0040 ; /***********************************************************
0040 ; * 函数说明:任务处理函数 *
0040 ; * 输入: 无 *
0040 ; * 输出: 无 *
0040 ; * 调用函数:无 *
0040 ; ***********************************************************/
0040 ; void Process_Task(void)
0040 ; {
0040 .dbline 135
0040 ; static uint8 n = 0;
0040 ;
0040 ; if (ProcPCB[n].IfProcAlive) //处理进程
0040 20900100 lds R2,L9
0044 83E0 ldi R24,3
0046 829D mul R24,R2
0048 F001 movw R30,R0
004A 80E0 ldi R24,<_ProcPCB+2
004C 90E0 ldi R25,>_ProcPCB+2
004E E80F add R30,R24
0050 F91F adc R31,R25
0052 2080 ldd R2,z+0
0054 2220 tst R2
0056 C9F0 breq L10
0058 X1:
0058 .dbline 136
0058 ; {
0058 .dbline 137
0058 ; ProcPCB[n].IfProcAlive = (*ProcPCB[n].Proc)();
0058 20900100 lds R2,L9
005C 83E0 ldi R24,3
005E 829D mul R24,R2
0060 1001 movw R2,R0
0062 80E0 ldi R24,<_ProcPCB
0064 90E0 ldi R25,>_ProcPCB
0066 F101 movw R30,R2
0068 E80F add R30,R24
006A F91F adc R31,R25
006C A081 ldd R26,z+0
006E B181 ldd R27,z+1
0070 0F92 push R0
0072 1F92 push R1
0074 FD01 movw R30,R26
0076 0E940000 xcall xicallx
007A 3F90 pop R3
007C 2F90 pop R2
007E 80E0 ldi R24,<_ProcPCB+2
0080 90E0 ldi R25,>_ProcPCB+2
0082 F101 movw R30,R2
0084 E80F add R30,R24
0086 F91F adc R31,R25
0088 0083 std z+0,R16
008A .dbline 138
008A ; }
008A L10:
008A .dbline 140
008A ;
008A ; n ++;
008A 80910100 lds R24,L9
008E 8F5F subi R24,255 ; addi 1
0090 80930100 sts L9,R24
0094 .dbline 141
0094 ; if (n >= g_cCOSPROCCounter)
0094 20900000 lds R2,_g_cCOSPROCCounter
0098 8215 cp R24,R2
009A 18F0 brlo L14
009C X2:
009C .dbline 142
009C ; {
009C .dbline 143
009C ; n = 0;
009C 2224 clr R2
009E 20920100 sts L9,R2
00A2 .dbline 144
00A2 ; }
00A2 L14:
00A2 .dbline -2
00A2 L8:
00A2 .dbline 0 ; func end
00A2 0895 ret
00A4 .dbend
.area bss(ram, con, rel)
0000 .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseCooperatingMiniOs.c
0000 _ProcPCB::
0000 .blkb 15
000F .dbstruct 0 3 Process
000F .dbfield 0 Proc pfc
000F .dbfield 2 IfProcAlive c
000F .dbend
000F .dbsym e ProcPCB _ProcPCB A[15:5]S[Process]
000F ; }
.area func_lit
0000 0000 PL_NULL_PROC: .word `_NULL_PROC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -