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