📄 os_view.txt
字号:
000304 e5d00000 LDRB r0,[r0,#0] ; OSView_TxChkSum
000308 ebfffffe BL OSView_Tx1
;;;1083 OSView_TxCtr++;
00030c e59f05e4 LDR r0,|L1.2296|
000310 e5900000 LDR r0,[r0,#0] ; OSView_TxCtr
000314 e2800001 ADD r0,r0,#1
000318 e59f15d8 LDR r1,|L1.2296|
00031c e5810000 STR r0,[r1,#0] ; OSView_TxCtr
;;;1084 OSView_TxState = OS_VIEW_TX_STATE_ED;
000320 e3a00005 MOV r0,#5
000324 e59f15c0 LDR r1,|L1.2284|
000328 e5c10000 STRB r0,[r1,#0] ; OSView_TxState
;;;1085 break;
00032c ea00001b B |L1.928|
|L1.816|
;;;1086
;;;1087 case OS_VIEW_TX_STATE_ED:
000330 e1a00000 MOV r0,r0
;;;1088 OSView_Tx1(OS_VIEW_PROTOCOL_TX_ED);
000334 e3a0008d MOV r0,#0x8d
000338 ebfffffe BL OSView_Tx1
;;;1089 OSView_TxCtr++;
00033c e59f05b4 LDR r0,|L1.2296|
000340 e5900000 LDR r0,[r0,#0] ; OSView_TxCtr
000344 e2800001 ADD r0,r0,#1
000348 e59f15a8 LDR r1,|L1.2296|
00034c e5810000 STR r0,[r1,#0] ; OSView_TxCtr
;;;1090 OSView_TxState = OS_VIEW_TX_STATE_SD0;
000350 e3a00000 MOV r0,#0
000354 e59f1590 LDR r1,|L1.2284|
000358 e5c10000 STRB r0,[r1,#0] ; OSView_TxState
;;;1091 OSView_TxBufCnt = 0; /* Clear the Tx buffer */
00035c e59f15ac LDR r1,|L1.2320|
000360 e1c100b0 STRH r0,[r1,#0] ; OSView_TxBufCnt
;;;1092 OSView_TxPktCtr++;
000364 e59f05a8 LDR r0,|L1.2324|
000368 e1d000b0 LDRH r0,[r0,#0] ; OSView_TxPktCtr
00036c e2800001 ADD r0,r0,#1
000370 e3c00801 BIC r0,r0,#0x10000
000374 e59f1598 LDR r1,|L1.2324|
000378 e1c100b0 STRH r0,[r1,#0] ; OSView_TxPktCtr
;;;1093 break;
00037c ea000007 B |L1.928|
|L1.896|
;;;1094
;;;1095 default:
000380 e1a00000 MOV r0,r0
;;;1096 OSView_TxState = OS_VIEW_TX_STATE_SD0;
000384 e3a00000 MOV r0,#0
000388 e59f155c LDR r1,|L1.2284|
00038c e5c10000 STRB r0,[r1,#0] ; OSView_TxState
;;;1097 OSView_TxActiveFlag = OS_FALSE;
000390 e59f1564 LDR r1,|L1.2300|
000394 e5c10000 STRB r0,[r1,#0] ; OSView_TxActiveFlag
;;;1098 OSView_TxIntDis(); /* No more data to send, disable Tx interrupts */
000398 ebfffffe BL OSView_TxIntDis
;;;1099 break;
00039c e1a00000 MOV r0,r0
|L1.928|
0003a0 e1a00000 MOV r0,r0
;;;1100 }
;;;1101 }
0003a4 e8bd4010 POP {r4,lr}
0003a8 e12fff1e BX lr
ENDP
OSView_TxStart PROC
;;;981 static void OSView_TxStart (void)
;;;982 {
0003ac e92d4010 PUSH {r4,lr}
;;;983 #if OS_CRITICAL_METHOD == 3
;;;984 OS_CPU_SR cpu_sr = 0;
0003b0 e3a04000 MOV r4,#0
;;;985 #endif
;;;986
;;;987
;;;988 OS_ENTER_CRITICAL();
0003b4 ebfffffe BL OS_CPU_SR_Save
0003b8 e1a04000 MOV r4,r0
;;;989 if (OSView_TxActiveFlag == OS_FALSE) {
0003bc e59f0538 LDR r0,|L1.2300|
0003c0 e5d00000 LDRB r0,[r0,#0] ; OSView_TxActiveFlag
0003c4 e3500000 CMP r0,#0
0003c8 1a000001 BNE |L1.980|
;;;990 OSView_TxHandler();
0003cc ebfffffe BL OSView_TxHandler
;;;991 OSView_TxIntEn();
0003d0 ebfffffe BL OSView_TxIntEn
|L1.980|
;;;992 }
;;;993 OS_EXIT_CRITICAL();
0003d4 e1a00004 MOV r0,r4
0003d8 ebfffffe BL OS_CPU_SR_Restore
;;;994 }
0003dc e8bd4010 POP {r4,lr}
0003e0 e12fff1e BX lr
ENDP
OSView_RxGetINT8U PROC
;;;884 {
;;;885 return (OSView_RxBuf[OSView_RxRdIx++]);
0003e4 e59f052c LDR r0,|L1.2328|
0003e8 e5d00000 LDRB r0,[r0,#0] ; OSView_RxRdIx
0003ec e59f1524 LDR r1,|L1.2328|
0003f0 e5d11000 LDRB r1,[r1,#0] ; OSView_RxRdIx
0003f4 e2811001 ADD r1,r1,#1
0003f8 e59f2518 LDR r2,|L1.2328|
0003fc e5c21000 STRB r1,[r2,#0] ; OSView_RxRdIx
000400 e59f1514 LDR r1,|L1.2332|
000404 e7d10000 LDRB r0,[r1,r0]
;;;886 }
000408 e12fff1e BX lr
ENDP
OSView_RxGetINT16U PROC
;;;889 static INT16U OSView_RxGetINT16U (void)
;;;890 {
00040c e92d4010 PUSH {r4,lr}
;;;891 INT16U lowbyte;
;;;892 INT16U highbyte;
;;;893
;;;894
;;;895 highbyte = OSView_RxGetINT8U();
000410 ebfffffe BL OSView_RxGetINT8U
000414 e1a04000 MOV r4,r0
;;;896 lowbyte = OSView_RxGetINT8U();
000418 ebfffffe BL OSView_RxGetINT8U
00041c e1a03000 MOV r3,r0
;;;897 return ((highbyte << 8) | lowbyte);
000420 e1830404 ORR r0,r3,r4,LSL #8
000424 e8bd4010 POP {r4,lr}
;;;898 }
000428 e12fff1e BX lr
ENDP
OSView_RxGetINT32U PROC
;;;901 static INT32U OSView_RxGetINT32U (void)
;;;902 {
00042c e92d4030 PUSH {r4,r5,lr}
;;;903 INT32U highword;
;;;904 INT32U lowword;
;;;905
;;;906
;;;907 highword = OSView_RxGetINT16U();
000430 ebfffffe BL OSView_RxGetINT16U
000434 e1a04000 MOV r4,r0
;;;908 lowword = OSView_RxGetINT16U();
000438 ebfffffe BL OSView_RxGetINT16U
00043c e1a05000 MOV r5,r0
;;;909 return ((highword << 16) | lowword);
000440 e1850804 ORR r0,r5,r4,LSL #16
000444 e8bd4030 POP {r4,r5,lr}
;;;910 }
000448 e12fff1e BX lr
ENDP
OSView_CmdMemWrINT32U PROC
;;;694 static void OSView_CmdMemWrINT32U (void)
;;;695 {
00044c e92d4010 PUSH {r4,lr}
;;;696 INT32U *p;
;;;697
;;;698
;;;699 p = (INT32U *)OSView_RxGetINT32U();
000450 ebfffffe BL OSView_RxGetINT32U
000454 e1a04000 MOV r4,r0
;;;700 (*p) = OSView_RxGetINT32U();
000458 ebfffffe BL OSView_RxGetINT32U
00045c e5840000 STR r0,[r4,#0]
;;;701 }
000460 e8bd4010 POP {r4,lr}
000464 e12fff1e BX lr
ENDP
OSView_TxStoINT8U PROC
;;;1111 {
;;;1112 if (OSView_TxBufCnt < OS_VIEW_TX_BUF_SIZE) {
000468 e59f14a0 LDR r1,|L1.2320|
00046c e1d110b0 LDRH r1,[r1,#0] ; OSView_TxBufCnt
000470 e35100ff CMP r1,#0xff
000474 aa000009 BGE |L1.1184|
;;;1113 OSView_TxBuf[OSView_TxBufCnt++] = tx_data;
000478 e59f1490 LDR r1,|L1.2320|
00047c e1d110b0 LDRH r1,[r1,#0] ; OSView_TxBufCnt
000480 e59f2488 LDR r2,|L1.2320|
000484 e1d220b0 LDRH r2,[r2,#0] ; OSView_TxBufCnt
000488 e2822001 ADD r2,r2,#1
00048c e3c22801 BIC r2,r2,#0x10000
000490 e59f3478 LDR r3,|L1.2320|
000494 e1c320b0 STRH r2,[r3,#0] ; OSView_TxBufCnt
000498 e59f2468 LDR r2,|L1.2312|
00049c e7c20001 STRB r0,[r2,r1]
|L1.1184|
;;;1114 }
;;;1115 }
0004a0 e12fff1e BX lr
ENDP
OSView_CmdMemWrINT16U PROC
;;;684 static void OSView_CmdMemWrINT16U (void)
;;;685 {
0004a4 e92d4010 PUSH {r4,lr}
;;;686 INT16U *p;
;;;687
;;;688
;;;689 p = (INT16U *)OSView_RxGetINT32U();
0004a8 ebfffffe BL OSView_RxGetINT32U
0004ac e1a04000 MOV r4,r0
;;;690 (*p) = OSView_RxGetINT16U();
0004b0 ebfffffe BL OSView_RxGetINT16U
0004b4 e1c400b0 STRH r0,[r4,#0]
;;;691 }
0004b8 e8bd4010 POP {r4,lr}
0004bc e12fff1e BX lr
ENDP
OSView_CmdMemWrINT8U PROC
;;;674 static void OSView_CmdMemWrINT8U (void)
;;;675 {
0004c0 e92d4010 PUSH {r4,lr}
;;;676 INT8U *p;
;;;677
;;;678
;;;679 p = (INT8U *)OSView_RxGetINT32U();
0004c4 ebfffffe BL OSView_RxGetINT32U
0004c8 e1a04000 MOV r4,r0
;;;680 (*p) = OSView_RxGetINT8U();
0004cc ebfffffe BL OSView_RxGetINT8U
0004d0 e5c40000 STRB r0,[r4,#0]
;;;681 }
0004d4 e8bd4010 POP {r4,lr}
0004d8 e12fff1e BX lr
ENDP
OSView_TxStoINT16U PROC
;;;1118 static void OSView_TxStoINT16U (INT16U tx_data)
;;;1119 {
0004dc e92d4010 PUSH {r4,lr}
0004e0 e1a04000 MOV r4,r0
;;;1120 OSView_TxStoINT8U(tx_data >> 8);
0004e4 e1a00444 ASR r0,r4,#8
0004e8 ebfffffe BL OSView_TxStoINT8U
;;;1121 OSView_TxStoINT8U(tx_data & 0x00FF);
0004ec e20400ff AND r0,r4,#0xff
0004f0 ebfffffe BL OSView_TxStoINT8U
;;;1122 }
0004f4 e8bd4010 POP {r4,lr}
0004f8 e12fff1e BX lr
ENDP
OSView_TxStoINT32U PROC
;;;1125 static void OSView_TxStoINT32U (INT32U tx_data)
;;;1126 {
0004fc e92d4010 PUSH {r4,lr}
000500 e1a04000 MOV r4,r0
;;;1127 OSView_TxStoINT16U(tx_data >> 16);
000504 e59f1414 LDR r1,|L1.2336|
000508 e0010824 AND r0,r1,r4,LSR #16
00050c ebfffffe BL OSView_TxStoINT16U
;;;1128 OSView_TxStoINT16U(tx_data & 0x0000FFFFL);
000510 e1a00804 LSL r0,r4,#16
000514 e1a00820 LSR r0,r0,#16
000518 ebfffffe BL OSView_TxStoINT16U
;;;1129 }
00051c e8bd4010 POP {r4,lr}
000520 e12fff1e BX lr
ENDP
OSView_CmdMemRdINT32U PROC
;;;652 static void OSView_CmdMemRdINT32U (void)
;;;653 {
000524 e92d4030 PUSH {r4,r5,lr}
;;;654 INT32U addr;
;;;655 INT8U nbytes;
;;;656
;;;657
;;;658 addr = OSView_RxGetINT32U();
000528 ebfffffe BL OSView_RxGetINT32U
00052c e1a04000 MOV r4,r0
;;;659 nbytes = OSView_RxGetINT8U();
000530 ebfffffe BL OSView_RxGetINT8U
000534 e1a05000 MOV r5,r0
;;;660 while (nbytes--) {
000538 ea000002 B |L1.1352|
|L1.1340|
;;;661 OSView_TxStoINT32U(*(INT32U *)addr);
00053c e5940000 LDR r0,[r4,#0]
000540 ebfffffe BL OSView_TxStoINT32U
;;;662 addr += 4;
000544 e2844004 ADD r4,r4,#4
|L1.1352|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -