📄 os_view.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 903] for uVision
; commandline ArmCC [--debug -c --asm --interleave -oos_view.o --depend=os_view.d --device=DARMP --apcs=interwork -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\ARM\Generic\RVMDK -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\ARM\RVMDK -I..\..\..\..\..\uC-LIB -I..\..\..\..\..\uCOSView\Source -I..\..\..\..\..\uCOSView\Ports\ARM7\LPC2468\IAR -Id:\Keil\ARM\INC\Philips ..\..\..\..\..\uCOSView\Source\os_view.c]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
OSView_TxHandler PROC
;;;1007 void OSView_TxHandler (void)
;;;1008 {
000000 e92d4010 PUSH {r4,lr}
;;;1009 INT8U tx_data;
;;;1010
;;;1011
;;;1012 switch (OSView_TxState) {
000004 e59f08e0 LDR r0,|L1.2284|
000008 e5d00000 LDRB r0,[r0,#0] ; OSView_TxState
00000c e3500009 CMP r0,#9
000010 308ff100 ADDCC pc,pc,r0,LSL #2
000014 ea0000d9 B |L1.896|
000018 ea000007 B |L1.60|
00001c ea000025 B |L1.184|
000020 ea000038 B |L1.264|
000024 ea000049 B |L1.336|
000028 ea0000b3 B |L1.764|
00002c ea0000bf B |L1.816|
000030 ea00006a B |L1.480|
000034 ea00007d B |L1.560|
000038 ea00008d B |L1.628|
|L1.60|
;;;1013 case OS_VIEW_TX_STATE_SD0:
00003c e1a00000 MOV r0,r0
;;;1014 if (OSView_TxLen > 0 || OSView_TxStrLen > 0) { /* Packet in buffer or string waiting to be send ? */
000040 e59f08a8 LDR r0,|L1.2288|
000044 e1d000b0 LDRH r0,[r0,#0] ; OSView_TxLen
000048 e3500000 CMP r0,#0
00004c ca000003 BGT |L1.96|
000050 e59f089c LDR r0,|L1.2292|
000054 e1d000b0 LDRH r0,[r0,#0] ; OSView_TxStrLen
000058 e3500000 CMP r0,#0
00005c da00000f BLE |L1.160|
|L1.96|
;;;1015 OSView_Tx1(OS_VIEW_PROTOCOL_TX_SD0);
000060 e3a0008c MOV r0,#0x8c
000064 ebfffffe BL OSView_Tx1
;;;1016 OSView_TxCtr++;
000068 e59f0888 LDR r0,|L1.2296|
00006c e5900000 LDR r0,[r0,#0] ; OSView_TxCtr
000070 e2800001 ADD r0,r0,#1
000074 e59f187c LDR r1,|L1.2296|
000078 e5810000 STR r0,[r1,#0] ; OSView_TxCtr
;;;1017 OSView_TxActiveFlag = OS_TRUE;
00007c e3a00001 MOV r0,#1
000080 e59f1874 LDR r1,|L1.2300|
000084 e5c10000 STRB r0,[r1,#0] ; OSView_TxActiveFlag
;;;1018 OSView_TxState = OS_VIEW_TX_STATE_SD1;
000088 e59f185c LDR r1,|L1.2284|
00008c e5c10000 STRB r0,[r1,#0] ; OSView_TxState
;;;1019 OSView_TxIx = 0;
000090 e3a00000 MOV r0,#0
000094 e59f1864 LDR r1,|L1.2304|
000098 e1c100b0 STRH r0,[r1,#0] ; OSView_TxIx
00009c ea000004 B |L1.180|
|L1.160|
;;;1020 } else { /* If there is nothing to do end transmission */
;;;1021 OSView_TxActiveFlag = OS_FALSE;
0000a0 e3a00000 MOV r0,#0
0000a4 e59f1850 LDR r1,|L1.2300|
0000a8 e5c10000 STRB r0,[r1,#0] ; OSView_TxActiveFlag
;;;1022 OSView_TxIntDis(); /* No more data to send, disable Tx interrupts */
0000ac ebfffffe BL OSView_TxIntDis
;;;1023 break;
0000b0 ea0000ba B |L1.928|
|L1.180|
;;;1024 }
;;;1025 break;
0000b4 ea0000b9 B |L1.928|
|L1.184|
;;;1026
;;;1027 case OS_VIEW_TX_STATE_SD1:
0000b8 e1a00000 MOV r0,r0
;;;1028 OSView_Tx1(OS_VIEW_PROTOCOL_TX_SD1);
0000bc e3a000ed MOV r0,#0xed
0000c0 ebfffffe BL OSView_Tx1
;;;1029 OSView_TxCtr++;
0000c4 e59f082c LDR r0,|L1.2296|
0000c8 e5900000 LDR r0,[r0,#0] ; OSView_TxCtr
0000cc e2800001 ADD r0,r0,#1
0000d0 e59f1820 LDR r1,|L1.2296|
0000d4 e5810000 STR r0,[r1,#0] ; OSView_TxCtr
;;;1030 if (OSView_TxLen > 0) {
0000d8 e59f0810 LDR r0,|L1.2288|
0000dc e1d000b0 LDRH r0,[r0,#0] ; OSView_TxLen
0000e0 e3500000 CMP r0,#0
0000e4 da000003 BLE |L1.248|
;;;1031 OSView_TxState = OS_VIEW_TX_STATE_DATA_LEN;
0000e8 e3a00002 MOV r0,#2
0000ec e59f17f8 LDR r1,|L1.2284|
0000f0 e5c10000 STRB r0,[r1,#0] ; OSView_TxState
0000f4 ea000002 B |L1.260|
|L1.248|
;;;1032 } else {
;;;1033 OSView_TxState = OS_VIEW_TX_STATE_STR_LEN;
0000f8 e3a00006 MOV r0,#6
0000fc e59f17e8 LDR r1,|L1.2284|
000100 e5c10000 STRB r0,[r1,#0] ; OSView_TxState
|L1.260|
;;;1034 }
;;;1035 break;
000104 ea0000a5 B |L1.928|
|L1.264|
;;;1036
;;;1037 case OS_VIEW_TX_STATE_DATA_LEN: /* Include the packet length in the packet */
000108 e1a00000 MOV r0,r0
;;;1038 OSView_Tx1(OSView_TxLen);
00010c e59f17dc LDR r1,|L1.2288|
000110 e1d110b0 LDRH r1,[r1,#0] ; OSView_TxLen
000114 e20100ff AND r0,r1,#0xff
000118 ebfffffe BL OSView_Tx1
;;;1039 OSView_TxCtr++;
00011c e59f07d4 LDR r0,|L1.2296|
000120 e5900000 LDR r0,[r0,#0] ; OSView_TxCtr
000124 e2800001 ADD r0,r0,#1
000128 e59f17c8 LDR r1,|L1.2296|
00012c e5810000 STR r0,[r1,#0] ; OSView_TxCtr
;;;1040 OSView_TxState = OS_VIEW_TX_STATE_DATA;
000130 e3a00003 MOV r0,#3
000134 e59f17b0 LDR r1,|L1.2284|
000138 e5c10000 STRB r0,[r1,#0] ; OSView_TxState
;;;1041 OSView_TxChkSum = OSView_TxLen;
00013c e59f07ac LDR r0,|L1.2288|
000140 e1d000b0 LDRH r0,[r0,#0] ; OSView_TxLen
000144 e59f17b8 LDR r1,|L1.2308|
000148 e5c10000 STRB r0,[r1,#0] ; OSView_TxChkSum
;;;1042 break;
00014c ea000093 B |L1.928|
|L1.336|
;;;1043
;;;1044 case OS_VIEW_TX_STATE_DATA:
000150 e1a00000 MOV r0,r0
;;;1045 tx_data = OSView_TxBuf[OSView_TxIx];
000154 e59f07ac LDR r0,|L1.2312|
000158 e59f17a0 LDR r1,|L1.2304|
00015c e1d110b0 LDRH r1,[r1,#0] ; OSView_TxIx
000160 e7d04001 LDRB r4,[r0,r1]
;;;1046 OSView_Tx1(tx_data);
000164 e1a00004 MOV r0,r4
000168 ebfffffe BL OSView_Tx1
;;;1047 OSView_TxCtr++;
00016c e59f0784 LDR r0,|L1.2296|
000170 e5900000 LDR r0,[r0,#0] ; OSView_TxCtr
000174 e2800001 ADD r0,r0,#1
000178 e59f1778 LDR r1,|L1.2296|
00017c e5810000 STR r0,[r1,#0] ; OSView_TxCtr
;;;1048 OSView_TxChkSum += tx_data;
000180 e59f077c LDR r0,|L1.2308|
000184 e5d00000 LDRB r0,[r0,#0] ; OSView_TxChkSum
000188 e0800004 ADD r0,r0,r4
00018c e59f1770 LDR r1,|L1.2308|
000190 e5c10000 STRB r0,[r1,#0] ; OSView_TxChkSum
;;;1049 OSView_TxIx++;
000194 e59f0764 LDR r0,|L1.2304|
000198 e1d000b0 LDRH r0,[r0,#0] ; OSView_TxIx
00019c e2800001 ADD r0,r0,#1
0001a0 e3c00801 BIC r0,r0,#0x10000
0001a4 e59f1754 LDR r1,|L1.2304|
0001a8 e1c100b0 STRH r0,[r1,#0] ; OSView_TxIx
;;;1050 if (OSView_TxIx >= OSView_TxLen) { /* See if we are done sending the packet */
0001ac e2810000 ADD r0,r1,#0
0001b0 e1d000b0 LDRH r0,[r0,#0] ; OSView_TxIx
0001b4 e59f1734 LDR r1,|L1.2288|
0001b8 e1d110b0 LDRH r1,[r1,#0] ; OSView_TxLen
0001bc e1500001 CMP r0,r1
0001c0 ba000005 BLT |L1.476|
;;;1051 OSView_TxState = OS_VIEW_TX_STATE_CHKSUM;
0001c4 e3a00004 MOV r0,#4
0001c8 e59f171c LDR r1,|L1.2284|
0001cc e5c10000 STRB r0,[r1,#0] ; OSView_TxState
;;;1052 OSView_TxLen = 0;
0001d0 e3a00000 MOV r0,#0
0001d4 e59f1714 LDR r1,|L1.2288|
0001d8 e1c100b0 STRH r0,[r1,#0] ; OSView_TxLen
|L1.476|
;;;1053 }
;;;1054 break;
0001dc ea00006f B |L1.928|
|L1.480|
;;;1055
;;;1056 case OS_VIEW_TX_STATE_STR_LEN: /* String sending */
0001e0 e1a00000 MOV r0,r0
;;;1057 OSView_Tx1(OSView_TxStrLen + 1);
0001e4 e59f1708 LDR r1,|L1.2292|
0001e8 e1d110b0 LDRH r1,[r1,#0] ; OSView_TxStrLen
0001ec e2811001 ADD r1,r1,#1
0001f0 e20100ff AND r0,r1,#0xff
0001f4 ebfffffe BL OSView_Tx1
;;;1058 OSView_TxCtr++;
0001f8 e59f06f8 LDR r0,|L1.2296|
0001fc e5900000 LDR r0,[r0,#0] ; OSView_TxCtr
000200 e2800001 ADD r0,r0,#1
000204 e59f16ec LDR r1,|L1.2296|
000208 e5810000 STR r0,[r1,#0] ; OSView_TxCtr
;;;1059 OSView_TxState = OS_VIEW_TX_STATE_STR_TYPE;
00020c e3a00007 MOV r0,#7
000210 e59f16d4 LDR r1,|L1.2284|
000214 e5c10000 STRB r0,[r1,#0] ; OSView_TxState
;;;1060 OSView_TxChkSum = OSView_TxStrLen + 1;
000218 e59f06d4 LDR r0,|L1.2292|
00021c e1d000b0 LDRH r0,[r0,#0] ; OSView_TxStrLen
000220 e2800001 ADD r0,r0,#1
000224 e59f16d8 LDR r1,|L1.2308|
000228 e5c10000 STRB r0,[r1,#0] ; OSView_TxChkSum
;;;1061 break;
00022c ea00005b B |L1.928|
|L1.560|
;;;1062
;;;1063 case OS_VIEW_TX_STATE_STR_TYPE:
000230 e1a00000 MOV r0,r0
;;;1064 OSView_Tx1('C');
000234 e3a00043 MOV r0,#0x43
000238 ebfffffe BL OSView_Tx1
;;;1065 OSView_TxCtr++;
00023c e59f06b4 LDR r0,|L1.2296|
000240 e5900000 LDR r0,[r0,#0] ; OSView_TxCtr
000244 e2800001 ADD r0,r0,#1
000248 e59f16a8 LDR r1,|L1.2296|
00024c e5810000 STR r0,[r1,#0] ; OSView_TxCtr
;;;1066 OSView_TxState = OS_VIEW_TX_STATE_STR_DATA;
000250 e3a00008 MOV r0,#8
000254 e59f1690 LDR r1,|L1.2284|
000258 e5c10000 STRB r0,[r1,#0] ; OSView_TxState
;;;1067 OSView_TxChkSum += 'C';
00025c e59f06a0 LDR r0,|L1.2308|
000260 e5d00000 LDRB r0,[r0,#0] ; OSView_TxChkSum
000264 e2800043 ADD r0,r0,#0x43
000268 e59f1694 LDR r1,|L1.2308|
00026c e5c10000 STRB r0,[r1,#0] ; OSView_TxChkSum
;;;1068 break;
000270 ea00004a B |L1.928|
|L1.628|
;;;1069
;;;1070 case OS_VIEW_TX_STATE_STR_DATA:
000274 e1a00000 MOV r0,r0
;;;1071 tx_data = OSView_TxStrBuf[OSView_TxIx];
000278 e59f068c LDR r0,|L1.2316|
00027c e59f167c LDR r1,|L1.2304|
000280 e1d110b0 LDRH r1,[r1,#0] ; OSView_TxIx
000284 e7d04001 LDRB r4,[r0,r1]
;;;1072 OSView_Tx1(tx_data);
000288 e1a00004 MOV r0,r4
00028c ebfffffe BL OSView_Tx1
;;;1073 OSView_TxCtr++;
000290 e59f0660 LDR r0,|L1.2296|
000294 e5900000 LDR r0,[r0,#0] ; OSView_TxCtr
000298 e2800001 ADD r0,r0,#1
00029c e59f1654 LDR r1,|L1.2296|
0002a0 e5810000 STR r0,[r1,#0] ; OSView_TxCtr
;;;1074 OSView_TxChkSum += tx_data;
0002a4 e59f0658 LDR r0,|L1.2308|
0002a8 e5d00000 LDRB r0,[r0,#0] ; OSView_TxChkSum
0002ac e0800004 ADD r0,r0,r4
0002b0 e59f164c LDR r1,|L1.2308|
0002b4 e5c10000 STRB r0,[r1,#0] ; OSView_TxChkSum
;;;1075 if (++OSView_TxIx >= OSView_TxStrLen) {
0002b8 e59f0640 LDR r0,|L1.2304|
0002bc e1d000b0 LDRH r0,[r0,#0] ; OSView_TxIx
0002c0 e2800001 ADD r0,r0,#1
0002c4 e3c00801 BIC r0,r0,#0x10000
0002c8 e59f1630 LDR r1,|L1.2304|
0002cc e1c100b0 STRH r0,[r1,#0] ; OSView_TxIx
0002d0 e59f161c LDR r1,|L1.2292|
0002d4 e1d110b0 LDRH r1,[r1,#0] ; OSView_TxStrLen
0002d8 e1500001 CMP r0,r1
0002dc ba000005 BLT |L1.760|
;;;1076 OSView_TxState = OS_VIEW_TX_STATE_CHKSUM;
0002e0 e3a00004 MOV r0,#4
0002e4 e59f1600 LDR r1,|L1.2284|
0002e8 e5c10000 STRB r0,[r1,#0] ; OSView_TxState
;;;1077 OSView_TxStrLen = 0;
0002ec e3a00000 MOV r0,#0
0002f0 e59f15fc LDR r1,|L1.2292|
0002f4 e1c100b0 STRH r0,[r1,#0] ; OSView_TxStrLen
|L1.760|
;;;1078 }
;;;1079 break;
0002f8 ea000028 B |L1.928|
|L1.764|
;;;1080
;;;1081 case OS_VIEW_TX_STATE_CHKSUM: /* Epilog ... checksum & end delimiter */
0002fc e1a00000 MOV r0,r0
;;;1082 OSView_Tx1(OSView_TxChkSum);
000300 e59f05fc LDR r0,|L1.2308|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -