⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_view.txt

📁 lpc2478开发板基于IAR编译器移植ucos实验例程
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; 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 + -