亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? twid.lst

?? IAR5.2下 AT91SAM9260 ARM 對 MCP2515 控制源化碼
?? LST
?? 第 1 頁 / 共 3 頁
字號:
###############################################################################
#                                                                             #
#                                                       08/Mar/2009  18:02:09 #
# IAR ANSI C/C++ Compiler V5.20.2.21007/W32 EVALUATION for ARM                #
# Copyright 1999-2008 IAR Systems AB.                                         #
#                                                                             #
#    Cpu mode     =  arm                                                      #
#    Endian       =  little                                                   #
#    Source file  =  E:\IAR\at91lib\drivers\twi\twid.c                        #
#    Command line =  E:\IAR\at91lib\drivers\twi\twid.c -D at91sam9260 -D      #
#                    sdram -lC E:\IAR\at91sam9260-ek\basic-twi-eeprom-project #
#                    \ewp\at91sam9260_sdram\List\ --remarks --diag_suppress   #
#                    Pe826,Pe1375 -o E:\IAR\at91sam9260-ek\basic-twi-eeprom-p #
#                    roject\ewp\at91sam9260_sdram\Obj\ --no_cse --no_unroll   #
#                    --no_inline --no_code_motion --no_tbaa --no_clustering   #
#                    --no_scheduling --debug --endian=little                  #
#                    --cpu=ARM926EJ-S -e --fpu=None --dlib_config             #
#                    "D:\Program Files\IAR Systems\Embedded Workbench 5.0     #
#                    Evaluation\ARM\INC\DLib_Config_Full.h" -I                #
#                    E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\..\.. #
#                    \..\at91lib\ -I E:\IAR\at91sam9260-ek\basic-twi-eeprom-p #
#                    roject\ewp\..\..\..\at91lib\boards\at91sam9260-ek\ -I    #
#                    E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\..\.. #
#                    \..\at91lib\peripherals\ -I                              #
#                    E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\..\.. #
#                    \..\at91lib\components\ -I E:\IAR\at91sam9260-ek\basic-t #
#                    wi-eeprom-project\ewp\..\..\..\at91lib\usb\ -I           #
#                    "D:\Program Files\IAR Systems\Embedded Workbench 5.0     #
#                    Evaluation\ARM\INC\" --interwork --cpu_mode arm -On      #
#    List file    =  E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\at91s #
#                    am9260_sdram\List\twid.lst                               #
#    Object file  =  E:\IAR\at91sam9260-ek\basic-twi-eeprom-project\ewp\at91s #
#                    am9260_sdram\Obj\twid.o                                  #
#                                                                             #
#                                                                             #
###############################################################################

E:\IAR\at91lib\drivers\twi\twid.c
      1          /* ----------------------------------------------------------------------------
      2           *         ATMEL Microcontroller Software Support 
      3           * ----------------------------------------------------------------------------
      4           * Copyright (c) 2008, Atmel Corporation
      5           *
      6           * All rights reserved.
      7           *
      8           * Redistribution and use in source and binary forms, with or without
      9           * modification, are permitted provided that the following conditions are met:
     10           *
     11           * - Redistributions of source code must retain the above copyright notice,
     12           * this list of conditions and the disclaimer below.
     13           *
     14           * Atmel's name may not be used to endorse or promote products derived from
     15           * this software without specific prior written permission.
     16           *
     17           * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
     18           * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     19           * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
     20           * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
     21           * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     22           * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
     23           * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
     24           * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     25           * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     26           * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27           * ----------------------------------------------------------------------------
     28           */
     29          
     30          #ifndef trace_LEVEL
     31              #define trace_LEVEL  1
     32          #endif
     33          
     34          //------------------------------------------------------------------------------
     35          //         Headers
     36          //------------------------------------------------------------------------------
     37          
     38          #include "twid.h"
     39          #include <twi/twi.h>
     40          #include <utility/assert.h>
     41          #include <utility/trace.h>
     42          
     43          //------------------------------------------------------------------------------
     44          //         Local types
     45          //------------------------------------------------------------------------------
     46          
     47          /// TWI driver callback function.
     48          typedef void (*TwiCallback)(Async *);
     49          
     50          //------------------------------------------------------------------------------
     51          /// TWI asynchronous transfer descriptor.
     52          //------------------------------------------------------------------------------
     53          typedef struct _AsyncTwi 
     54          {
     55              /// Asynchronous transfer status.
     56              volatile unsigned char status;
     57              // Callback function to invoke when transfer completes or fails.
     58              TwiCallback callback;
     59              /// Pointer to the data buffer.
     60              unsigned char *pData;
     61              /// Total number of bytes to transfer.
     62              unsigned int num;
     63              /// Number of already transferred bytes.
     64              unsigned int transferred;
     65          
     66          } AsyncTwi;
     67          
     68          //------------------------------------------------------------------------------
     69          //         Global functions
     70          //------------------------------------------------------------------------------
     71          
     72          //------------------------------------------------------------------------------
     73          /// Initializes a TWI driver instance, using the given TWI peripheral. The
     74          /// peripheral must have been initialized properly before calling this function.
     75          /// \param pTwid  Pointer to the Twid instance to initialize.
     76          /// \param pTwi  Pointer to the TWI peripheral to use.
     77          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     78          void TWID_Initialize(Twid *pTwid, AT91S_TWI *pTwi)
     79          {
   \                     TWID_Initialize:
   \   00000000   38402DE9           PUSH     {R3-R5,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
   \   00000008   0150B0E1           MOVS     R5,R1
     80              trace_LOG(trace_DEBUG, "-D- TWID_Initialize()\n\r");
     81              SANITY_CHECK(pTwid);
   \   0000000C   000054E3           CMP      R4,#+0
   \   00000010   0400001A           BNE      ??TWID_Initialize_0
   \   00000014   5120A0E3           MOV      R2,#+81
   \   00000018   ........           LDR      R1,??DataTable20  ;; `?<Constant "E:\\\\IAR\\\\at91lib\\\\driver...">`
   \   0000001C   ........           LDR      R0,??DataTable21  ;; `?<Constant "Sanity check failed a...">`
   \   00000020   ........           BL       printf
   \                     ??TWID_Initialize_1:
   \   00000024   FEFFFFEA           B        ??TWID_Initialize_1
     82              SANITY_CHECK(pTwi);
   \                     ??TWID_Initialize_0:
   \   00000028   000055E3           CMP      R5,#+0
   \   0000002C   0400001A           BNE      ??TWID_Initialize_2
   \   00000030   5220A0E3           MOV      R2,#+82
   \   00000034   ........           LDR      R1,??DataTable20  ;; `?<Constant "E:\\\\IAR\\\\at91lib\\\\driver...">`
   \   00000038   ........           LDR      R0,??DataTable21  ;; `?<Constant "Sanity check failed a...">`
   \   0000003C   ........           BL       printf
   \                     ??TWID_Initialize_3:
   \   00000040   FEFFFFEA           B        ??TWID_Initialize_3
     83          
     84              // Initialize driver
     85              pTwid->pTwi = pTwi;
   \                     ??TWID_Initialize_2:
   \   00000044   005084E5           STR      R5,[R4, #+0]
     86              pTwid->pTransfer = 0;
   \   00000048   0000A0E3           MOV      R0,#+0
   \   0000004C   040084E5           STR      R0,[R4, #+4]
     87          }
   \   00000050   3180BDE8           POP      {R0,R4,R5,PC}    ;; return
     88          
     89          //------------------------------------------------------------------------------
     90          /// Interrupt handler for a TWI peripheral. Manages asynchronous transfer
     91          /// occuring on the bus. This function MUST be called by the interrupt service
     92          /// routine of the TWI peripheral if asynchronous read/write are needed.
     93          /// \param pTwid  Pointer to a Twid instance.
     94          //------------------------------------------------------------------------------

   \                                 In section .text, align 4, keep-with-next
     95          void TWID_Handler(Twid *pTwid)
     96          {
   \                     TWID_Handler:
   \   00000000   F8402DE9           PUSH     {R3-R7,LR}
   \   00000004   0040B0E1           MOVS     R4,R0
     97              unsigned char status;
     98              AsyncTwi *pTransfer = (AsyncTwi *) pTwid->pTransfer;
   \   00000008   040094E5           LDR      R0,[R4, #+4]
   \   0000000C   0060B0E1           MOVS     R6,R0
     99              AT91S_TWI *pTwi = pTwid->pTwi;
   \   00000010   000094E5           LDR      R0,[R4, #+0]
   \   00000014   0070B0E1           MOVS     R7,R0
    100          
    101              SANITY_CHECK(pTwid);
   \   00000018   000054E3           CMP      R4,#+0
   \   0000001C   0400001A           BNE      ??TWID_Handler_0
   \   00000020   6520A0E3           MOV      R2,#+101
   \   00000024   ........           LDR      R1,??DataTable20  ;; `?<Constant "E:\\\\IAR\\\\at91lib\\\\driver...">`
   \   00000028   ........           LDR      R0,??DataTable21  ;; `?<Constant "Sanity check failed a...">`
   \   0000002C   ........           BL       printf
   \                     ??TWID_Handler_1:
   \   00000030   FEFFFFEA           B        ??TWID_Handler_1
    102          
    103              // Retrieve interrupt status
    104              status = TWI_GetMaskedStatus(pTwi);
   \                     ??TWID_Handler_0:
   \   00000034   0700B0E1           MOVS     R0,R7
   \   00000038   ........           BL       TWI_GetMaskedStatus
   \   0000003C   0050B0E1           MOVS     R5,R0
    105          
    106              // Byte received
    107              if (TWI_STATUS_RXRDY(status)) 
   \   00000040   0500B0E1           MOVS     R0,R5
   \   00000044   FF0010E2           ANDS     R0,R0,#0xFF      ;; Zero extend
   \   00000048   020010E3           TST      R0,#0x2
   \   0000004C   1A00000A           BEQ      ??TWID_Handler_2
    108              {
    109                  pTransfer->pData[pTransfer->transferred] = TWI_ReadByte(pTwi);
   \   00000050   0700B0E1           MOVS     R0,R7
   \   00000054   ........           BL       TWI_ReadByte
   \   00000058   101096E5           LDR      R1,[R6, #+16]
   \   0000005C   082096E5           LDR      R2,[R6, #+8]
   \   00000060   0200C1E7           STRB     R0,[R1, +R2]
    110                  pTransfer->transferred++;
   \   00000064   100096E5           LDR      R0,[R6, #+16]
   \   00000068   010090E2           ADDS     R0,R0,#+1
   \   0000006C   100086E5           STR      R0,[R6, #+16]
    111          
    112                  // Transfer finished ?
    113                  if (pTransfer->transferred == pTransfer->num) 
   \   00000070   100096E5           LDR      R0,[R6, #+16]
   \   00000074   0C1096E5           LDR      R1,[R6, #+12]
   \   00000078   010050E1           CMP      R0,R1
   \   0000007C   0600001A           BNE      ??TWID_Handler_3
    114                  {
    115                      TWI_DisableIt(pTwi, AT91C_TWI_RXRDY);
   \   00000080   0210A0E3           MOV      R1,#+2
   \   00000084   0700B0E1           MOVS     R0,R7
   \   00000088   ........           BL       TWI_DisableIt
    116                      TWI_EnableIt(pTwi, AT91C_TWI_TXCOMP);
   \   0000008C   0110A0E3           MOV      R1,#+1
   \   00000090   0700B0E1           MOVS     R0,R7
   \   00000094   ........           BL       TWI_EnableIt
   \   00000098   300000EA           B        ??TWID_Handler_4
    117                  }
    118                  // Last byte ?
    119                  else if (pTransfer->transferred == (pTransfer->num - 1)) 
   \                     ??TWID_Handler_3:
   \   0000009C   100096E5           LDR      R0,[R6, #+16]
   \   000000A0   0C1096E5           LDR      R1,[R6, #+12]
   \   000000A4   011051E2           SUBS     R1,R1,#+1
   \   000000A8   010050E1           CMP      R0,R1
   \   000000AC   2B00001A           BNE      ??TWID_Handler_4
    120                      TWI_Stop(pTwi);
   \   000000B0   0700B0E1           MOVS     R0,R7
   \   000000B4   ........           BL       TWI_Stop
   \   000000B8   280000EA           B        ??TWID_Handler_4
    121              }
    122              // Byte sent
    123              else if (TWI_STATUS_TXRDY(status)) 
   \                     ??TWID_Handler_2:
   \   000000BC   0500B0E1           MOVS     R0,R5
   \   000000C0   FF0010E2           ANDS     R0,R0,#0xFF      ;; Zero extend
   \   000000C4   040010E3           TST      R0,#0x4
   \   000000C8   1300000A           BEQ      ??TWID_Handler_5
    124              {
    125                  // Transfer finished ?
    126                  if (pTransfer->transferred == pTransfer->num) 
   \   000000CC   100096E5           LDR      R0,[R6, #+16]
   \   000000D0   0C1096E5           LDR      R1,[R6, #+12]
   \   000000D4   010050E1           CMP      R0,R1
   \   000000D8   0600001A           BNE      ??TWID_Handler_6
    127                  {
    128                      TWI_DisableIt(pTwi, AT91C_TWI_TXRDY);
   \   000000DC   0410A0E3           MOV      R1,#+4
   \   000000E0   0700B0E1           MOVS     R0,R7
   \   000000E4   ........           BL       TWI_DisableIt
    129                      TWI_EnableIt(pTwi, AT91C_TWI_TXCOMP);
   \   000000E8   0110A0E3           MOV      R1,#+1
   \   000000EC   0700B0E1           MOVS     R0,R7
   \   000000F0   ........           BL       TWI_EnableIt
   \   000000F4   190000EA           B        ??TWID_Handler_4
    130                  }
    131                  // Bytes remaining
    132                  else 
    133                  {
    134                      TWI_WriteByte(pTwi, pTransfer->pData[pTransfer->transferred]);
   \                     ??TWID_Handler_6:
   \   000000F8   100096E5           LDR      R0,[R6, #+16]
   \   000000FC   081096E5           LDR      R1,[R6, #+8]

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级二级三级| 91精品国产综合久久国产大片| 一级日本不卡的影视| 6080国产精品一区二区| 大白屁股一区二区视频| 日韩高清在线不卡| 最好看的中文字幕久久| 久久亚洲精华国产精华液 | 精品一区二区免费在线观看| 91麻豆免费看| 欧美国产一区在线| 麻豆精品一区二区三区| 精品视频色一区| 国产剧情一区二区| 久久国产精品第一页| 一区二区三区在线观看视频| 在线观看日韩电影| 中文字幕一区二区日韩精品绯色| 国产成人超碰人人澡人人澡| 中文字幕欧美日韩一区| 九九久久精品视频| 久久众筹精品私拍模特| 蜜臀久久99精品久久久画质超高清 | 国产精品亚洲一区二区三区妖精 | 丁香桃色午夜亚洲一区二区三区| 欧美一卡二卡在线观看| 成人av电影在线播放| 一区二区三区在线播放| 欧洲一区二区av| 天堂va蜜桃一区二区三区| av欧美精品.com| 亚洲大片免费看| 6080国产精品一区二区| 午夜精品久久久久久久久久久| 欧美日韩国产经典色站一区二区三区| 亚洲大型综合色站| 欧美绝品在线观看成人午夜影视| 亚洲一区二区三区中文字幕| 91福利视频久久久久| 亚洲女同ⅹxx女同tv| 国产不卡在线一区| 国产精品久久久久久久第一福利 | 国产精品盗摄一区二区三区| fc2成人免费人成在线观看播放| 性感美女久久精品| 亚洲精品一线二线三线| 欧美日韩在线三级| 亚洲精品国产第一综合99久久| 精品av综合导航| 欧美大尺度电影在线| 黑人巨大精品欧美一区| 欧美va亚洲va在线观看蝴蝶网| 91麻豆精品国产91久久久久久久久 | 1区2区3区精品视频| 国产精品视频看| 中文字幕一区av| 亚洲永久免费视频| 亚洲福利一区二区| 日本欧美久久久久免费播放网| 毛片一区二区三区| 另类专区欧美蜜桃臀第一页| 91在线精品一区二区三区| 91国偷自产一区二区三区成为亚洲经典| 91麻豆免费看| 制服丝袜激情欧洲亚洲| 精品少妇一区二区三区在线播放 | 久久只精品国产| 国产精品色呦呦| 亚洲激情图片一区| 首页国产丝袜综合| 国产综合久久久久影院| 成人免费视频一区| 日本韩国精品在线| 欧美一二区视频| 久久精品欧美日韩| 亚洲欧美福利一区二区| 午夜精品久久久久久久| 国产麻豆精品久久一二三| 91美女在线观看| 欧美一区二区视频在线观看2020 | 欧美日韩免费不卡视频一区二区三区| 欧美美女喷水视频| 国产亚洲美州欧州综合国| 亚洲色图另类专区| 免费在线观看成人| eeuss鲁片一区二区三区| 欧美日韩国产首页在线观看| 久久一留热品黄| 亚洲精选一二三| 久久国产精品72免费观看| 99久久精品国产一区二区三区| 欧美日本一道本在线视频| 26uuu亚洲综合色| 亚洲欧洲美洲综合色网| 蜜臀久久99精品久久久久宅男| 91性感美女视频| 日韩欧美精品在线| 亚洲欧美偷拍卡通变态| 日韩视频一区二区在线观看| 五月激情综合色| 99久久久无码国产精品| 成人免费在线视频| 国产精品区一区二区三区| 日韩精品色哟哟| 色爱区综合激月婷婷| 久久精品水蜜桃av综合天堂| 亚洲bt欧美bt精品| 暴力调教一区二区三区| 日韩一级成人av| 亚洲综合一区二区| www.亚洲色图.com| 欧美xfplay| 日本欧美一区二区三区乱码 | 日本成人在线电影网| 成人av网站免费观看| 日韩欧美成人一区| 亚洲成人www| 在线视频一区二区三| 中文字幕av资源一区| 久久疯狂做爰流白浆xx| 欧美日韩精品欧美日韩精品一 | 夜夜嗨av一区二区三区网页| 国产福利一区在线| 精品免费日韩av| 日本不卡一二三区黄网| 欧美精品免费视频| 午夜欧美电影在线观看| 在线观看网站黄不卡| 成人免费一区二区三区视频 | 精品国产青草久久久久福利| 亚洲国产欧美另类丝袜| 在线免费精品视频| 亚洲美女视频在线| 色一情一乱一乱一91av| 亚洲欧洲在线观看av| 成a人片国产精品| 国产精品美女一区二区三区| 国产精品一区二区男女羞羞无遮挡 | 91小视频免费观看| 国产视频911| 国产 欧美在线| 国产欧美1区2区3区| 国产福利精品一区二区| 久久久电影一区二区三区| 国产一区二区三区黄视频| 精品国产成人系列| 国产精品自在在线| 国产精品久久三| 亚洲精品一区二区三区影院 | 制服丝袜一区二区三区| 亚洲人成小说网站色在线| caoporn国产精品| 亚洲欧洲av另类| 91福利区一区二区三区| 亚洲一区二区三区在线看 | 国产欧美日韩在线| 成人精品亚洲人成在线| 亚洲少妇中出一区| 91福利国产成人精品照片| 一区二区三区四区不卡在线| 欧美日韩aaaaa| 蜜臀91精品一区二区三区| 日韩欧美国产一区二区在线播放| 另类欧美日韩国产在线| 久久久久久免费网| 91在线视频官网| 日韩精品久久久久久| 26uuu久久综合| 99视频一区二区| 视频一区二区国产| 久久久久久9999| 在线亚洲免费视频| 久久99精品久久久久久久久久久久| 国产欧美日韩视频在线观看| 91麻豆免费看| 精品在线观看视频| 久久不见久久见中文字幕免费| 粉嫩久久99精品久久久久久夜| 蜜桃一区二区三区在线观看| 欧美欧美欧美欧美首页| 国产美女一区二区三区| 亚洲乱码国产乱码精品精98午夜 | 欧美另类变人与禽xxxxx| 韩国欧美国产1区| 亚洲人精品午夜| 日韩欧美国产一区二区三区| 成人99免费视频| 日本不卡中文字幕| 专区另类欧美日韩| 日韩精品一区二区三区蜜臀| 91麻豆精东视频| 国内精品久久久久影院一蜜桃| 亚洲男人的天堂一区二区| 日韩欧美一级二级三级| 色综合久久综合| 国产精品一卡二| 日韩专区欧美专区| 综合分类小说区另类春色亚洲小说欧美| 欧美撒尿777hd撒尿| 亚洲欧美日韩国产一区二区三区 |