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

📄 bsp_i2c.lst

📁 IARSOURCECODE是基于LPC2478嵌入式软件IAR EWARM V4.42的应用实例代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   0000015C   1010A0E3           MOV      R1,#+16
   \   00000160   001080E5           STR      R1,[R0, #+0]
    341                           OSSemPost(I2C_SemWait);
   \   00000164   ........           LDR      R0,??DataTable65  ;; I2C_SemWait
   \   00000168   000090E5           LDR      R0,[R0, #+0]
   \   0000016C   ........           _BLF     OSSemPost,??OSSemPost??rA
    342                           VICIntEnClear  =  (1 << VIC_I2C0);
   \   00000170   EB00E0E3           MVN      R0,#+235
   \   00000174   F00EC0E3           BIC      R0,R0,#0xF00
   \   00000178   801FA0E3           MOV      R1,#+512
   \   0000017C   001080E5           STR      R1,[R0, #+0]
   \   00000180   610000EA           B        ??I2C_ISR_Handler_9
    343                       }
    344                       break;
    345          
    346                  case I2STAT_SLA_W_NOACK:
    347                  case I2STAT_DAT_T_NOACK:
    348                  case I2STAT_SLA_R_NOACK:
    349                       I20CONSET          = I2CON_STO;
   \                     ??I2C_ISR_Handler_2:
   \   00000184   E004A0E3           MOV      R0,#-536870912
   \   00000188   700B80E3           ORR      R0,R0,#0x1C000
   \   0000018C   1010A0E3           MOV      R1,#+16
   \   00000190   001080E5           STR      R1,[R0, #+0]
    350                       I20CONCLR          = I2CON_STA | I2CON_SI;
   \   00000194   ........           LDR      R0,??DataTable66  ;; 0xffffffffe001c018
   \   00000198   2810A0E3           MOV      R1,#+40
   \   0000019C   001080E5           STR      R1,[R0, #+0]
    351                       OSSemPost(I2C_SemWait);
   \   000001A0   ........           LDR      R0,??DataTable65  ;; I2C_SemWait
   \   000001A4   000090E5           LDR      R0,[R0, #+0]
   \   000001A8   ........           _BLF     OSSemPost,??OSSemPost??rA
    352                       VICIntEnClear      =  (1 << VIC_I2C0);
   \   000001AC   EB00E0E3           MVN      R0,#+235
   \   000001B0   F00EC0E3           BIC      R0,R0,#0xF00
   \   000001B4   801FA0E3           MOV      R1,#+512
   \   000001B8   001080E5           STR      R1,[R0, #+0]
   \   000001BC   520000EA           B        ??I2C_ISR_Handler_9
    353                       break;
    354          
    355                  case I2STAT_ARB_LOST:
    356                       I20CONCLR          = I2CON_STA | I2CON_SI;
   \                     ??I2C_ISR_Handler_4:
   \   000001C0   ........           LDR      R0,??DataTable66  ;; 0xffffffffe001c018
   \   000001C4   2810A0E3           MOV      R1,#+40
   \   000001C8   001080E5           STR      R1,[R0, #+0]
    357                       OSSemPost(I2C_SemWait);
   \   000001CC   ........           LDR      R0,??DataTable65  ;; I2C_SemWait
   \   000001D0   000090E5           LDR      R0,[R0, #+0]
   \   000001D4   ........           _BLF     OSSemPost,??OSSemPost??rA
    358                       VICIntEnClear      =  (1 << VIC_I2C0);
   \   000001D8   EB00E0E3           MVN      R0,#+235
   \   000001DC   F00EC0E3           BIC      R0,R0,#0xF00
   \   000001E0   801FA0E3           MOV      R1,#+512
   \   000001E4   001080E5           STR      R1,[R0, #+0]
   \   000001E8   470000EA           B        ??I2C_ISR_Handler_9
    359                       break;
    360          
    361          
    362                  case I2STAT_SLA_R_ACK:
    363                       if (I2C_Count <= 1) {
   \                     ??I2C_ISR_Handler_5:
   \   000001EC   ........           LDR      R0,??DataTable63  ;; I2C_Count
   \   000001F0   0000D0E5           LDRB     R0,[R0, #+0]
   \   000001F4   020050E3           CMP      R0,#+2
   \   000001F8   0400002A           BCS      ??I2C_ISR_Handler_11
    364                           I20CONSET      = I2CON_AA;
   \   000001FC   E004A0E3           MOV      R0,#-536870912
   \   00000200   700B80E3           ORR      R0,R0,#0x1C000
   \   00000204   0410A0E3           MOV      R1,#+4
   \   00000208   001080E5           STR      R1,[R0, #+0]
   \   0000020C   020000EA           B        ??I2C_ISR_Handler_12
    365                       } else {
    366                           I20CONCLR      = I2CON_AA;
   \                     ??I2C_ISR_Handler_11:
   \   00000210   ........           LDR      R0,??DataTable66  ;; 0xffffffffe001c018
   \   00000214   0410A0E3           MOV      R1,#+4
   \   00000218   001080E5           STR      R1,[R0, #+0]
    367                       }
    368                       I20CONCLR          = I2CON_STA | I2CON_SI;
   \                     ??I2C_ISR_Handler_12:
   \   0000021C   ........           LDR      R0,??DataTable66  ;; 0xffffffffe001c018
   \   00000220   2810A0E3           MOV      R1,#+40
   \   00000224   001080E5           STR      R1,[R0, #+0]
   \   00000228   370000EA           B        ??I2C_ISR_Handler_9
    369                       break;
    370          
    371                  case I2STAT_DAT_R_ACK:
    372                       temp               = I20DAT;
   \                     ??I2C_ISR_Handler_6:
   \   0000022C   8E02A0E3           MOV      R0,#-536870904
   \   00000230   700B80E3           ORR      R0,R0,#0x1C000
   \   00000234   001090E5           LDR      R1,[R0, #+0]
    373                      *I2C_BufPtr         = temp;
   \   00000238   ........           LDR      R0,??DataTable61  ;; I2C_BufPtr
   \   0000023C   000090E5           LDR      R0,[R0, #+0]
   \   00000240   0010C0E5           STRB     R1,[R0, #+0]
    374                       I2C_BufPtr        += 1;
   \   00000244   ........           LDR      R0,??DataTable61  ;; I2C_BufPtr
   \   00000248   ........           LDR      R1,??DataTable61  ;; I2C_BufPtr
   \   0000024C   001091E5           LDR      R1,[R1, #+0]
   \   00000250   011091E2           ADDS     R1,R1,#+1
   \   00000254   001080E5           STR      R1,[R0, #+0]
    375                       I2C_Count         -= 1;
   \   00000258   ........           LDR      R0,??DataTable63  ;; I2C_Count
   \   0000025C   ........           LDR      R1,??DataTable63  ;; I2C_Count
   \   00000260   0010D1E5           LDRB     R1,[R1, #+0]
   \   00000264   011051E2           SUBS     R1,R1,#+1
   \   00000268   0010C0E5           STRB     R1,[R0, #+0]
    376                       if (I2C_Count <= 1) {
   \   0000026C   ........           LDR      R0,??DataTable63  ;; I2C_Count
   \   00000270   0000D0E5           LDRB     R0,[R0, #+0]
   \   00000274   020050E3           CMP      R0,#+2
   \   00000278   0200002A           BCS      ??I2C_ISR_Handler_13
    377                           I20CONCLR      = I2CON_AA;
   \   0000027C   ........           LDR      R0,??DataTable66  ;; 0xffffffffe001c018
   \   00000280   0410A0E3           MOV      R1,#+4
   \   00000284   001080E5           STR      R1,[R0, #+0]
    378                       }
    379                       I20CONCLR          = I2CON_STA | I2CON_SI;
   \                     ??I2C_ISR_Handler_13:
   \   00000288   ........           LDR      R0,??DataTable66  ;; 0xffffffffe001c018
   \   0000028C   2810A0E3           MOV      R1,#+40
   \   00000290   001080E5           STR      R1,[R0, #+0]
   \   00000294   1C0000EA           B        ??I2C_ISR_Handler_9
    380                       break;
    381          
    382                  case I2STAT_DAT_R_NOACK:
    383                       temp               = I20DAT;
   \                     ??I2C_ISR_Handler_7:
   \   00000298   8E02A0E3           MOV      R0,#-536870904
   \   0000029C   700B80E3           ORR      R0,R0,#0x1C000
   \   000002A0   001090E5           LDR      R1,[R0, #+0]
    384                      *I2C_BufPtr         = temp;
   \   000002A4   ........           LDR      R0,??DataTable61  ;; I2C_BufPtr
   \   000002A8   000090E5           LDR      R0,[R0, #+0]
   \   000002AC   0010C0E5           STRB     R1,[R0, #+0]
    385                       I2C_Count         -= 1;
   \   000002B0   ........           LDR      R0,??DataTable63  ;; I2C_Count
   \   000002B4   ........           LDR      R1,??DataTable63  ;; I2C_Count
   \   000002B8   0010D1E5           LDRB     R1,[R1, #+0]
   \   000002BC   011051E2           SUBS     R1,R1,#+1
   \   000002C0   0010C0E5           STRB     R1,[R0, #+0]
    386                       I20CONSET          = I2CON_STO;
   \   000002C4   E004A0E3           MOV      R0,#-536870912
   \   000002C8   700B80E3           ORR      R0,R0,#0x1C000
   \   000002CC   1010A0E3           MOV      R1,#+16
   \   000002D0   001080E5           STR      R1,[R0, #+0]
    387                       I20CONCLR          = I2CON_STA | I2CON_SI;
   \   000002D4   ........           LDR      R0,??DataTable66  ;; 0xffffffffe001c018
   \   000002D8   2810A0E3           MOV      R1,#+40
   \   000002DC   001080E5           STR      R1,[R0, #+0]
    388                       OSSemPost(I2C_SemWait);
   \   000002E0   ........           LDR      R0,??DataTable65  ;; I2C_SemWait
   \   000002E4   000090E5           LDR      R0,[R0, #+0]
   \   000002E8   ........           _BLF     OSSemPost,??OSSemPost??rA
    389                       VICIntEnClear      =  (1 << VIC_I2C0);
   \   000002EC   EB00E0E3           MVN      R0,#+235
   \   000002F0   F00EC0E3           BIC      R0,R0,#0xF00
   \   000002F4   801FA0E3           MOV      R1,#+512
   \   000002F8   001080E5           STR      R1,[R0, #+0]
   \   000002FC   020000EA           B        ??I2C_ISR_Handler_9
    390                       break;
    391          
    392                  default:
    393                       I20CONCLR          = I2CON_STA | I2CON_SI;
   \                     ??I2C_ISR_Handler_8:
   \   00000300   ........           LDR      R0,??DataTable66  ;; 0xffffffffe001c018
   \   00000304   2810A0E3           MOV      R1,#+40
   \   00000308   001080E5           STR      R1,[R0, #+0]
    394                       break;
    395              }
    396          }
   \                     ??I2C_ISR_Handler_9:
   \   0000030C   0080BDE8           POP      {PC}             ;; return

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable28:
   \   00000000   ........           DC32     I2C_SemBusy

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable29:
   \   00000000   ........           DC32     I2C_Address

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable61:
   \   00000000   ........           DC32     I2C_BufPtr

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable63:
   \   00000000   ........           DC32     I2C_Count

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable65:
   \   00000000   ........           DC32     I2C_SemWait

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable66:
   \   00000000   18C001E0           DC32     0xffffffffe001c018

   Maximum stack usage in bytes:

     Function        CSTACK
     --------        ------
     I2C_ISR_Handler     4
     I2C_Init            4
     I2C_Read           16
     I2C_ReadReg        20
     I2C_Write          16


   Segment part sizes:

     Function/Label   Bytes
     --------------   -----
     _A_VICIntSelect     4
     _A_VICIntEnable     4
     _A_VICIntEnClear    4
     VICVectAddr9        4
     _A_PINSEL1          4
     _A_I2C0CONSET       4
     _A_I2C0STAT         4
     _A_I2C0DAT          4
     _A_I2C0SCLH         4
     _A_I2C0SCLL         4
     _A_I2C0CONCLR       4
     I2C_Address         1
     I2C_BufPtr          4
     I2C_Count           1
     I2C_SemWait         4
     I2C_SemBusy         4
     I2C_Init          180
     I2C_Read          164
     I2C_ReadReg       280
     I2C_Write         164
     I2C_ISR_Handler   784
     ??DataTable28       4
     ??DataTable29       4
     ??DataTable61       4
     ??DataTable63       4
     ??DataTable65       4
     ??DataTable66       4
      Others            48

 
 1 632 bytes in segment CODE
    44 bytes in segment DATA_AN
    14 bytes in segment DATA_Z
    12 bytes in segment INITTAB
 
 1 596 bytes of CODE memory (+ 48 bytes shared)
    14 bytes of DATA memory (+ 44 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -