📄 rd_usecooperatingminios.lis
字号:
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 120
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 121
0030 ; }
0030 L4:
0030 .dbline 114
0030 4395 inc R20
0032 L6:
0032 .dbline 114
0032 4430 cpi R20,4
0034 50F3 brlo L3
0036 X0:
0036 .dbline 123
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)
0002 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\RD_UseCooperatingMiniOs.c
0002 L9:
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\RD_UseCooperatingMiniOs.c
.area text(rom, con, rel)
003A .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\RD_UseCooperatingMiniOs.c
003A .dbfunc e Process_Task _Process_Task fV
003A .dbsym s n L9 c
.even
003A _Process_Task::
003A 4A93 st -y,R20
003C 5A93 st -y,R21
003E .dbline -1
003E .dbline 133
003E ; }
003E ;
003E ; /***********************************************************
003E ; * 函数说明:任务处理函数 *
003E ; * 输入: 无 *
003E ; * 输出: 无 *
003E ; * 调用函数:无 *
003E ; ***********************************************************/
003E ; void Process_Task(void)
003E ; {
003E .dbline 136
003E ; static uint8 n = 0;
003E ;
003E ; if (ProcPCB[n].IfProcAlive) //处理进程
003E 20900200 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 137
0056 ; {
0056 .dbline 138
0056 ; ProcPCB[n].IfProcAlive = (*ProcPCB[n].Proc)();
0056 20900200 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 xicall
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 139
0086 ; }
0086 L10:
0086 .dbline 141
0086 ;
0086 ; n ++;
0086 80910200 lds R24,L9
008A 8F5F subi R24,255 ; addi 1
008C 80930200 sts L9,R24
0090 .dbline 142
0090 ; if (n >= g_cCOSPROCCounter)
0090 20900000 lds R2,_g_cCOSPROCCounter
0094 8215 cp R24,R2
0096 78F0 brlo L14
0098 X2:
0098 .dbline 143
0098 ; {
0098 .dbline 144
0098 ; n = 0;
0098 2224 clr R2
009A 20920200 sts L9,R2
009E .dbline 145
009E ; g_cScheduleTest = MIN(g_cScheduleTest + 1,254);
009E 80910100 lds R24,_g_cScheduleTest
00A2 8F5F subi R24,255 ; addi 1
00A4 8E3F cpi R24,254
00A6 20F4 brsh L16
00A8 X3:
00A8 40910100 lds R20,_g_cScheduleTest
00AC 4F5F subi R20,255 ; addi 1
00AE 01C0 rjmp L17
00B0 L16:
00B0 4EEF ldi R20,254
00B2 L17:
00B2 40930100 sts _g_cScheduleTest,R20
00B6 .dbline 146
00B6 ; }
00B6 L14:
00B6 .dbline -2
00B6 L8:
00B6 .dbline 0 ; func end
00B6 5991 ld R21,y+
00B8 4991 ld R20,y+
00BA 0895 ret
00BC .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\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 + -