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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? f_amd_sst_arm.s

?? realview22.rar
?? S
?? 第 1 頁 / 共 2 頁
字號:
; ============================================================================
; F_AMD_SST_ARM - Flash programming algorithm for AMD||SST Flash
; derived from f_atmel_arm.s
;
; Library Name: Included into container .s file.
;
; Module Name:  F_AMD_SST_ARM.S
; Module Descr: Flash programming for RVD: Atmel Flash devices
; Creation Date:Nov. 2001
; Author:       Jonathan Jefferies
;
; THIS INFORMATION IS PROPRIETARY TO
; ARM, Inc. (Walnut Creek Design Center)
; 1981 North Broadway, Suit 245
; Walnut Creek, CA 94596
; USA
; ----------------------------------------------------------------------
; Copyright (c) 2001  ARM, Inc.
; ALL RIGHTS RESERVED;
;
; Revisions of F_AMD_SST_ARM.S: (latest revision on top)
; #.#  Name  Date      Description
; $Revision: 1.1.2.2 $
; ---  ----- --------  -----------------------------------------------------
; 1.0 Jonathan Jefferies Initial version
;
; Implementation notes:
;
; GENERAL
; -------
;
;       This file is to be included into another asm file which has the
; board/chip specific knowledge needed for initialization and the like.
; That is, this is the algorithm only.
;
;       This file is based on information on AMD & SST flash devices
; of various forms. It is generalized to handle x8 and x16 accesses.
; It does not need to know the block sizes or positions as that is all
; passed in. 
;
;       Minimally this will work with various AMD A29LV400 chips
; and SST 39VF400A chips.
;
;       This uses the standard RVD implementation for an API. That
; means that registers are used for passing arguments and returning
; status. The registers used are based on the save/restore list. The
; first registers are assumed to be the ones to use for passing args.
; In the case of ARM, this is R0, R1, R2, R3, etc.
;
; REGISTER MODEL
; --------------
;
;       The register model for this routine is as follows:
;       R0:     Input: page of Flash (not used on ARM)
;               Output:status return to host
;       R1:     Input: base address of Flash block to operate on
;       R2/R3/R4/R5/R8/R9: Input: arguments
;               Typical meanings: R2=Counter
;       R6/R7:Scratch
;
; -----------------------------------------------------------------------------
; Description:
; ----------------------------------------------------------------------------
;                               NOTICE
;
;       This code is proprietary; the use of this source is
; restricted, and all rights are reserved.
;
;       If reading for interest, enjoy.
;
;       If maintaining, read comments carefully! There are some inter-depen-
; dencies and connectivities. Areas with particular connection are marked.
; There are some variable protocols that are not self evident: check all uses
; of variables before making big changes.
; ============================================================================
;

;************************************************************************/
;* DEFINE ENTRY POINTS                                                  */
;************************************************************************/

;       EXPORT          FLASH_init      // provided by asm that includes us
;       EXPORT          FLASH_erase_all // not available
        EXPORT          FLASH_erase
        EXPORT          FLASH_write_erase
        EXPORT          FLASH_write
        EXPORT          FLASH_validate
        EXPORT          FLASH_break
;       EXPORT          FLASH_term      // we do not need one

;************************************************************************/
;* DEFINE MACROS AND EQUATES                                            */
;************************************************************************/

        MACRO
        PUSHX   $p1
        STMFD   r13!,{$p1}
        MEND
        MACRO
        POPX    $p1
        LDMFD   r13!,{$p1}
        MEND

        IF              WIDTH=1
          MACRO
           STORE        $p1,$p2,$p3
            IF "$p3" = ""
             strb       $p1,$p2
            ELSE
             strb       $p1,$p2,$p3
            ENDIF
          MEND
          MACRO
           LOAD         $p1,$p2,$p3
            IF "$p3" = ""
             ldrb       $p1,$p2
            ELSE
             ldrb       $p1,$p2,$p3
            ENDIF
          MEND
        ELSE                    ; width = 2
          MACRO
           STORE        $p1,$p2,$p3
            IF "$p3" = ""
              strh      $p1,$p2
            ELSE
              strh      $p1,$p2,$p3
            ENDIF
          MEND
          MACRO
           LOAD         $p1,$p2,$p3
            IF "$p3" = ""
             ldrh       $p1,$p2
            ELSE
             ldrh       $p1,$p2,$p3
            ENDIF
          MEND
        ENDIF

        MACRO                   ; RET is return via LR or named reg
          RET           $p1
           IF "$p1" = ""
            mov R15,R14         ; Return with code in R0
           ELSE
            mov R15,$p1         ; Return with code in R0
           ENDIF
        MEND

FC_AT1   EQU            0xAA    ; attention request 1 (OFF1)
FC_AT2   EQU            0x55    ; attention request 2 (OFF2)
FC_ID_EN EQU            0x90    ; enter ID mode
FC_ID_EX EQU            0xF0    ; exit ID mode
FC_WRITE EQU            0xA0    ; start writing block
FC_ERASE EQU            0x80    ; start erase of segment/block
FC_SECTE EQU            0x30    ; sector erase (into sector)
FC_QENTR EQU            0x98    ; CFI Query Entry

;************************************************************************/
;* THE DATA POINTERS FOR DATA TOO LARGE FOR IMMEDIATES                  */
;************************************************************************/

;       To write commands to the flashes require the base of the flash + 
;       the appropriate offset as given below.
;       note that SST and AMD differ. AMD uses 0x0555 where SST uses 0x5555
;       however AMD says that Address bits A17-A11 are don't cares for
;       unlock and command cycles, i.e. we get away using the SST offsets.
OFFSET1 DATA
        IF WIDTH = 1
         DCD            0x5555
        ELSE
         DCD            (0x5555*2)
        ENDIF
OFFSET2 DATA
        IF WIDTH = 1
         DCD            0x2AAA
        ELSE
         DCD            (0x2AAA*2)
        ENDIF

DELAY   DATA
        DCD             10
RETRIES
        DCD             0xFF000000

;************************************************************************/
;* THE GLOBAL FUNCTIONS (EXPORTED PUBLICLY)                             */
;************************************************************************/
 
;* -----------------------------------------------------------------------
;  Local_init - handle device part of init (get ID).
;
;  Notes:
;     - this verifies the product ID and returns if OK or not.
;
;  Input/Output:
;     - In: R1=Base of Flash
;           R0=Page of Flash (no meaning for ARM)
;     - Out:R0=status code (0=OK, else error)
;     - Scratch: R2,R6,R7,R8
;     - Persist: R11 - we set with Base of Flash
;  ----------------------------------------------------------------------- */

Local_init
        mov     R11,R1          ; R1 is input R11 is persistance
        mov     R0,#FC_ID_EN    ; enter ID mode 0x90
        bl      flash_control   ; send op to Flash

;       ldr     R0,DELAY        ; 100000 of delay
;init_delay                     ; delay a while
;       subs    R0,R0,#1
;       bne     init_delay

;       ldrh    R2,[R1]         ; get manu ID
        LOAD    R2,[R1]         ; get manu ID
        and     R2,R2,#0xFF     ; mask to one byte

        mov     R0,#FC_ID_EX    ; exit ID mode 0xF0
        STORE   r0,[R1,#0]
        mov     R0,#0           ; assume OK

        cmp     R2,#0x20        ; ST chip??
        cmpne   R2,#0xBF        ; SST chip??
        cmpne   R2,#0x01        ; AMD chip??
        movne   R0,#11          ; error
        b       FLASH_break     ; exit
        
;* -----------------------------------------------------------------------
;  FLASH_erase - erase a Flash block
;
;  Notes:
;     - this erases a Flash block on request from host. The host has

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
三级精品在线观看| 精品视频资源站| xnxx国产精品| 国产呦萝稀缺另类资源| 久久精品一区二区三区不卡牛牛| 精品一区二区在线播放| 久久亚洲一区二区三区明星换脸 | 久久精品一区四区| 盗摄精品av一区二区三区| 中文字幕一区二区三区不卡| 在线观看一区不卡| 人妖欧美一区二区| 精品国产一二三| 国产一区二区在线电影| 中文字幕一区二区5566日韩| 懂色中文一区二区在线播放| 日韩美女一区二区三区四区| 乱一区二区av| 国产精品视频一二三| 91麻豆精品视频| 日韩国产欧美在线视频| 《视频一区视频二区| 51精品国自产在线| 国产成人精品一区二| 亚洲美女区一区| 日韩一区二区免费在线电影| 国产精品白丝av| 日韩美女精品在线| 日韩一二在线观看| 99国产精品久久久久| 日本麻豆一区二区三区视频| 国产精品久久久久婷婷| 欧美日韩夫妻久久| 成人综合在线视频| 青青草原综合久久大伊人精品优势| 国产视频一区在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 麻豆精品一区二区综合av| 一区二区中文字幕在线| 欧美r级电影在线观看| 成人国产免费视频| 美洲天堂一区二卡三卡四卡视频 | 中文一区在线播放 | 欧美一区二区三区公司| 成人黄色在线视频| 激情六月婷婷久久| 亚洲国产精品尤物yw在线观看| 国产日产欧美一区二区三区| 欧美丰满高潮xxxx喷水动漫| 99免费精品在线| 九九国产精品视频| 亚洲va中文字幕| 中文字幕一区二区不卡| 欧美mv日韩mv| 欧美精品1区2区3区| 色综合久久88色综合天天6| 国产剧情在线观看一区二区| 日韩精品一二三四| 一区二区免费看| 日韩高清电影一区| 亚洲伦理在线免费看| 国产日韩欧美不卡| 久久久久9999亚洲精品| 日韩午夜精品视频| 欧美日韩国产一区二区三区地区| 99精品久久久久久| 成人av动漫网站| 大桥未久av一区二区三区中文| 久久国产精品无码网站| 青青草视频一区| 日韩电影免费一区| 日韩精品久久理论片| 一区二区三区蜜桃网| 亚洲色图色小说| 亚洲三级电影全部在线观看高清| 日本一区二区在线不卡| 国产视频一区二区在线| 久久婷婷成人综合色| 久久久久九九视频| 国产亚洲成av人在线观看导航| 2024国产精品| 精品裸体舞一区二区三区| 欧美tickling网站挠脚心| 精品国产乱码久久久久久蜜臀| 精品嫩草影院久久| 久久精品视频网| 国产精品素人视频| 亚洲视频网在线直播| 一区二区三区四区在线播放 | 欧美最新大片在线看| 在线视频你懂得一区| 欧美日韩高清一区二区不卡| 91精品国产手机| 精品国产乱码久久久久久夜甘婷婷 | 亚洲精品欧美激情| 亚洲va国产天堂va久久en| 日本vs亚洲vs韩国一区三区| 麻豆高清免费国产一区| 国产成人综合在线播放| 成人av在线资源网| 色狠狠一区二区三区香蕉| 欧美三级乱人伦电影| 精品久久久久久久人人人人传媒 | 亚洲午夜久久久久久久久电影网 | 亚洲精品视频一区| 午夜av电影一区| 国产一区欧美一区| av亚洲精华国产精华精| 欧美视频完全免费看| 精品少妇一区二区| 中文字幕一区二区三区av| 香蕉乱码成人久久天堂爱免费| 久久精品999| 91一区二区三区在线观看| 91麻豆精品国产自产在线| 久久一日本道色综合| 亚洲欧洲av另类| 麻豆精品一区二区| 国产成人啪午夜精品网站男同| 在线看国产一区| 久久女同精品一区二区| 一区二区三区丝袜| 国产毛片精品国产一区二区三区| 91黄色免费看| 久久精品人人做人人爽97| 亚洲成人免费电影| 成人综合婷婷国产精品久久蜜臀| 欧美三级日韩在线| 国产精品美女久久福利网站| 日日摸夜夜添夜夜添精品视频 | 欧美在线观看18| 久久久不卡网国产精品二区| 亚洲国产欧美在线| 成人激情午夜影院| 国产精品传媒入口麻豆| 免费在线欧美视频| 色狠狠av一区二区三区| 久久精品亚洲精品国产欧美kt∨| 午夜久久久久久久久 | 欧美自拍丝袜亚洲| 国产三级精品在线| 日本麻豆一区二区三区视频| 色偷偷久久一区二区三区| 久久精品亚洲国产奇米99| 七七婷婷婷婷精品国产| 伊人色综合久久天天人手人婷| 欧美亚洲综合色| 亚洲成人av一区| 国产人久久人人人人爽| 午夜成人免费视频| 欧美色手机在线观看| 国产精品伦理在线| 国产成人高清视频| 久久久国产一区二区三区四区小说 | 国产精品对白交换视频| 精品系列免费在线观看| 91精品国产欧美一区二区成人| 亚洲小说春色综合另类电影| 99久久99久久综合| 中文字幕一区二区三区av| 丁香天五香天堂综合| 国产日产欧美精品一区二区三区| 久久99精品视频| 精品美女一区二区| 激情五月婷婷综合网| 欧美一区二区视频免费观看| 亚洲免费色视频| 亚洲综合在线观看视频| 在线免费观看成人短视频| 久久久久久久久久久久久久久99 | 日本在线不卡视频| 色偷偷成人一区二区三区91| 国产精品美女久久久久aⅴ| 国产精品美女久久久久aⅴ| 欧美系列日韩一区| 香蕉乱码成人久久天堂爱免费| 成人丝袜18视频在线观看| 国产精品三级电影| 国产美女精品一区二区三区| 日韩无一区二区| 奇米综合一区二区三区精品视频| 久久久.com| 狠狠色丁香久久婷婷综合丁香| 91精品国产综合久久久蜜臀图片| 欧美aaaaa成人免费观看视频| 欧美中文字幕一二三区视频| 亚洲色图另类专区| 一本大道av伊人久久综合| 亚洲成人手机在线| 欧美精品九九99久久| 午夜天堂影视香蕉久久| 日韩欧美黄色影院| 久久精品99久久久| 精品99一区二区| 国产精品77777竹菊影视小说| 中文字幕一区三区| 在线观看欧美精品| 日韩国产欧美三级| 国产日韩欧美a| 91蜜桃视频在线|