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

📄 os_view.txt

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