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

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

?? f_amd_arm.s

?? realview22.rar
?? S
?? 第 1 頁 / 共 2 頁
字號:

        bgt     write_loop                      ; yes, continue

        mov     r6,#0x90                                ; Reset Unlock Block
        EXPAND  r6
        str     r6,[r1]
        mov     r6,#0x0
        str     r6,[r1]

        cmp     R9,#0                           ; want verify?
        beq     done_write                      ; no, just quit

        mov     R2,R9                           ; reset count
        sub     R4,R4,R2                        ; back up to start of block to verify
        sub     R5,R5,R2                        ; back up to start of buffer to verify
        b       FLASH_validate                  ; go on to validate code

done_write
        b       flash_exit                      ; Stop routine on breakpoint

;* -----------------------------------------------------------------------
;  FLASH_validate - validate write to a Flash block
;
;  Notes:
;     - this compares a buffer and a flash block. The caller uses this
;       after a write to verify the write worked.
;     - the host knows about block sizes and all, and passes in the needed
;       info.
;
;  Input/Output:
;     - In: R1=Base of Flash block to verify
;           R0=Page of Flash (no meaning for ARM)
;           R2=Count of bytes to verify
;           R4=Offset in block to verify from
;           R5=Address of buffer to verify against
;           R8=Page of buffer (no meaning for ARM)
;     - Out:R0=status code (0=OK, else error)
;     - Scratch: R6,R7
;  ----------------------------------------------------------------------- */

FLASH_validate
        mov     R6,#0
        mov     R7,#0
validate_loop
        LOAD    R7,[R5],#WIDTH  ; load value from buffer
        LOAD    R6,[R4],#WIDTH  ; load value from Flash
        cmp     R6,R7           ; same?
        bne     bad_validate    ; no, failed

        subs    R2,R2,#WIDTH    ; decrement count, more?
        bgt     validate_loop   ; yes, continue

        b       flash_exit      ; Stop routine on breakpoint
        
bad_validate
        mov     R0,#1           ; compare
        b       flash_exit      ; Stop routine on breakpoint

;* -----------------------------------------------------------------------
;  FLASH_break - end of function entry for all Flash routines
;
;  Notes:
;     - this routine is the Stop routine for the flash code. It runs over
;       what should be a break (set by host). If the host messes up, it
;       will loop forever allowing the host to halt it.
;
;  Input/Output:
;     - In: R0=status code to return (0=OK, else error)
;           R1=base of Flash block operated on
;   ----------------------------------------------------------------------- */

Local_init                      ; we have no local init
flash_exit_reset
                bl              reset_flash
flash_exit

FLASH_break
        nop                     ; place to put breakpoint from host
forever
        b       forever         ; in case host screws up

;************************************************************************/
;* STATIC FUNCTIONS                                                     */
;************************************************************************/

;* -----------------------------------------------------------------------
;  erase_block - erase a sector of the flash and check if OK
;
;  Notes:
;     - this handles erase of a Flash erase and returns status in R0
;       as well as the Z flag
;
;  Input/Output:
;     - In: R1=Base of Flash
;     - Out:R0=Status (0=OK, else failed)
;     - Scratch: R0,R6
;  ----------------------------------------------------------------------- */

erase_block
       
        mov     r0,r1,LSR#13
        mov     r0,r0,LSL#13                    ; R0 now has sector base with
                                                                        ; bottom 13 bits sets to 0
        ldr     R7,=0x555                       ; address of erase msg 1
        add     R7,R0,R7,LSL#2                          
        mov     R6,#0xAA                        ; data of erase setup msg 1
        EXPAND  R6
        STORE   R6,[R7]                         ; send Flash erase
        
        ldr     R7,=0x2AA                       ; address of erase msg 2
        add     R7,R0,R7,LSL#2                          
        mov     R6,#0x55                        ; data of erase setup msg 2
        EXPAND  R6
        STORE   R6,[R7]                         ; send Flash erase

        ldr     R7,=0x555                       ; address of erase msg 3
        add     R7,R0,R7,LSL#2                          
        mov     R6,#0x80                        ; data of erase setup msg 3
        EXPAND  R6
        STORE   R6,[R7]                         ; send Flash erase

        ldr     R7,=0x555                       ; address of erase msg 4
        add     R7,R0,R7,LSL#2                          
        mov     R6,#0xAA                        ; data of erase setup msg 4
        EXPAND  R6
        STORE   R6,[R7]                         ; send Flash erase
        
        ldr     R7,=0x2AA                       ; address of erase msg 5
        add     R7,R0,R7,LSL#2                          
        mov     R6,#0x55                        ; data of erase setup msg 5
        EXPAND  R6
        STORE   R6,[R7]                         ; send Flash erase
        
        mov     R6,#0x30                        ; data of erase setup msg 6
        EXPAND  R6
        STORE   R6,[R1]                         ; Finally erase sector

        mov     R6,R14                          ; save link for calls below
                
        bl      wait_for_ready_erase    ; Check flash has erased
        
        mov     R15,R6                          ; Return with code in R0 and Z bit
                
;* -----------------------------------------------------------------------
;  wait_for_ready_erase - wait for Flash to complete an erase operation 
;                                         (DQ7= 1) and check the erase was successful (DQ5=0).
;
;  Notes:
;     - this reads the error status of the Flash and returns in R0.
;     - DQ7 = Ready (when high in erase or nDQ7 in program mode)
;     - DQ6 = Toggles during embedded erase or program
;     - DQ5 = Erase/Program Successful (low when successful)
;     - DQ3 = Sector Erase Timer (Timeout when high)
;     - DQ2 = Toggles when addresses are made in sector being erased
;     - DQ1 = Write to Buffer abort (low when no abort)
;
;  Input/Output:
;     - In: R1=Base of Flash
;     - Scratch: R0,R7
;  ----------------------------------------------------------------------- */


wait_for_ready_erase
        
        LOAD    R0,[R1]                         ; read status of flash

        mov     R7,#0xA0                                ; Check DQ5 has not gone high while DQ7 low
        EXPAND  R7
        ands    R0,R0,R7
        mov     r7,#0x20
        cmp     r0,r7
        beq     flash_exit_reset                ; Need to reset flash if DQ5 high
        
        LOAD    R0,[R1]                         ; read status of flash

        mov     R7,#0x80                                ; Check DQ7 has gone high
        EXPAND  R7
        ands    R0,R0,R7
        beq     wait_for_ready_erase
        
check_erase_data
        LOAD    R0,[R1]                                 ; Read Flash
        ldr     R7,=0xffffffff                  ; Check data has returned to 0xffffffff
        cmp     R0,R7
        bne     check_erase_data
        
        mov     R0,#0x0                 ; No Error to report
        mov     R15,R14                         ; Return

;* -----------------------------------------------------------------------
;  wait_for_ready_program - wait for Flash to complete an program operation.
;
;  Notes:
;     - this reads the error status of the Flash and returns in R0.
;     - DQ7 = Ready (when high in erase or nDQ7 in program mode)
;     - DQ6 = Toggles during embedded erase or program
;     - DQ5 = Erase/Program Successful (low when successful)
;     - DQ3 = Sector Erase Timer (Timeout when high)
;     - DQ2 = Toggles when addresses are made in sector being erased
;     - DQ1 = Write to Buffer abort (low when no abort)
;
;  Input/Output:
;     - In: R4=Address in flash writing to
;     - In: R7= Value being written
;     - Scratch: R0,R6,R7
;  ----------------------------------------------------------------------- */

wait_for_ready_program

        mov     R6,#0x80
        EXPAND  R6
        and     R7,R7,R6                        ; find out whether DQ7 and DQ23 should be
                                                                        ; be high or low while programming
                ; DEBUG CODE
                ; Copy register values into SRAM
                ;ldr     r0,=0x38100000
                ;str     r1,[r0]
                ;str     r2,[r0,#0x4]
                ;str     r3,[r0,#0x8]
                ;str     r4,[r0,#0xC]
                ;str     r5,[r0,#0x10]
                ;str     r6,[r0,#0x14]
                ;str     r7,[r0,#0x18]
                ;str     r8,[r0,#0x1C]
                ;str     r9,[r0,#0x20]
                ;END DEBUG CODE



wait_for_write          
        LOAD    R0,[R4,#-0x4]       ; read status of flash at program address
        and     R0,R0,R6
        cmp     R0,R7                           ; Wait until DQ7 and DQ23 are not inverted      
        
        bne             wait_for_write
        
        mov     R0,#0x0             ; No Error to report
        mov     R15,R14                 ; Return

;* -----------------------------------------------------------------------
;  reset flash - Reset Flash
;
;  Input/Output:
;     - In: R1=Base of Flash
;     - Scratch: R7
;  ----------------------------------------------------------------------- */

reset_flash
        
        mov     r7,#0xf0
        EXPAND  r7
        str     r7,[r1]
        mov     R15,R14                 ; Return

        END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品亚洲一区二区在线播放| 日韩欧美久久久| 国产一区二区在线免费观看| 亚洲卡通动漫在线| 久久九九久久九九| 国产亚洲精品超碰| 欧美亚洲综合久久| 99久久精品国产精品久久| 久久99精品国产麻豆不卡| 一区二区三区毛片| 国产精品高潮呻吟| 久久欧美一区二区| 日韩一区二区免费电影| 在线免费不卡电影| av成人免费在线| 国产毛片精品一区| 久久99在线观看| 日韩国产欧美在线观看| 亚洲少妇30p| 国产精品全国免费观看高清| 精品成人a区在线观看| 欧美一区二区三区视频免费播放| 91麻豆视频网站| 成人午夜免费av| 国产成人av电影在线观看| 久久不见久久见免费视频1| 石原莉奈在线亚洲二区| 亚洲午夜影视影院在线观看| 亚洲视频免费在线| 亚洲欧美中日韩| 中文字幕一区二区三区蜜月 | 国产一区在线观看麻豆| 丝袜美腿亚洲一区| 爽好久久久欧美精品| 午夜视频一区二区| 首页国产欧美久久| 日韩影视精彩在线| 美腿丝袜亚洲一区| 久久99国产精品久久| 91丝袜美腿高跟国产极品老师 | 欧美日韩一级视频| 欧美另类一区二区三区| 欧美疯狂做受xxxx富婆| 91精品国产免费久久综合| 欧美日韩中文字幕一区| 91精品国产综合久久久久 | 成人欧美一区二区三区1314| 国产欧美精品一区二区色综合| 国产日韩欧美电影| 国产精品久久久久久久久久久免费看 | 欧美va天堂va视频va在线| 精品成人免费观看| 欧美国产1区2区| 亚洲精品免费电影| 亚洲国产综合视频在线观看| 午夜激情久久久| 日本aⅴ精品一区二区三区| 日韩va亚洲va欧美va久久| 美女mm1313爽爽久久久蜜臀| 精品一区二区三区在线播放 | 欧美激情综合网| 综合色天天鬼久久鬼色| 成人福利电影精品一区二区在线观看| 福利一区二区在线观看| 97久久精品人人澡人人爽| 欧美日韩免费一区二区三区| 日韩限制级电影在线观看| 久久这里只精品最新地址| 国产精品美女久久福利网站 | 男人的j进女人的j一区| 国产乱码一区二区三区| 91亚洲永久精品| 日韩一区二区免费在线电影| 中文字幕免费在线观看视频一区| 一区二区三区欧美| 激情综合一区二区三区| 91丝袜美腿高跟国产极品老师| 欧美人妇做爰xxxⅹ性高电影 | 亚洲国产aⅴ天堂久久| 国产真实乱子伦精品视频| 91玉足脚交白嫩脚丫在线播放| 欧美日韩久久久| 中文一区二区在线观看| 偷窥少妇高潮呻吟av久久免费| 国产自产v一区二区三区c| 色偷偷久久人人79超碰人人澡| 日韩三区在线观看| 亚洲日本在线a| 国产在线看一区| 欧美男同性恋视频网站| 国产女主播在线一区二区| 亚洲va欧美va天堂v国产综合| 国产99久久久久| 欧美一级二级在线观看| 亚洲色大成网站www久久九九| 久久se精品一区精品二区| 欧美伊人久久久久久久久影院 | 久久九九久久九九| 日韩精品一二三区| 91麻豆国产自产在线观看| 久久久久国产精品麻豆ai换脸| 亚洲超碰97人人做人人爱| 成人久久视频在线观看| 精品国产自在久精品国产| 亚洲成av人片在线观看无码| 成人毛片在线观看| 久久久www免费人成精品| 日韩精品一二三| 欧美日韩一区二区三区在线| 亚洲日本韩国一区| 波多野结衣的一区二区三区| 精品国产人成亚洲区| 日韩av在线发布| 欧美三级电影精品| 亚洲精品美国一| 久久影院午夜论| 麻豆国产91在线播放| 欧美日韩免费高清一区色橹橹| 国产精品久久看| 高清国产午夜精品久久久久久| 26uuu欧美| 久久成人18免费观看| 日韩亚洲欧美高清| 免费高清不卡av| 日韩一级大片在线观看| 日本一区中文字幕 | 精品精品欲导航| 日韩不卡一区二区三区| 51精品久久久久久久蜜臀| 午夜精品一区在线观看| 欧美日韩国产成人在线91| 午夜亚洲国产au精品一区二区| 91久久精品一区二区| 亚洲精品视频免费看| 一本在线高清不卡dvd| 一区二区三区日韩精品视频| 色菇凉天天综合网| 亚洲一区二区三区在线播放| 欧美亚洲高清一区| 午夜精品久久久久久久久| 717成人午夜免费福利电影| 日韩精品欧美精品| 精品国产乱码久久久久久浪潮| 国产在线精品一区二区夜色 | 欧美人牲a欧美精品| 日韩精品视频网| 2020国产精品| 成人高清免费观看| 亚洲九九爱视频| 欧美日韩电影在线| 裸体健美xxxx欧美裸体表演| 精品av综合导航| 成人av中文字幕| 亚洲一区二三区| 日韩欧美另类在线| 高清不卡在线观看| 亚洲一区二区三区自拍| 日韩一区二区高清| 成人一区二区视频| 亚洲自拍与偷拍| 精品欧美一区二区在线观看| 国产69精品久久99不卡| 一区二区三区在线视频免费观看| 欧美精品在线视频| 国产一区二区精品久久99| 国产精品久久777777| 欧美精品aⅴ在线视频| 国产一区二区三区久久久| 亚洲免费观看高清完整| 91精品视频网| 成人黄色777网| 日韩经典一区二区| 国产精品美女久久福利网站| 欧美日韩精品一区二区三区 | www欧美成人18+| 91免费在线视频观看| 免费在线观看一区二区三区| 国产欧美日韩亚州综合 | 欧美日韩久久一区二区| 欧美主播一区二区三区美女| 日韩一区精品字幕| 国产精品久久久久久久久久免费看| 欧美日韩在线电影| 成人手机电影网| 美女精品自拍一二三四| 亚洲欧美在线视频观看| 日韩欧美国产一区在线观看| 91浏览器打开| 国产一区不卡精品| 午夜激情久久久| 日韩一区中文字幕| 久久久久久久久久久久电影| 欧美性xxxxxxxx| 粉嫩av一区二区三区| 青青青伊人色综合久久| 亚洲免费观看高清完整版在线观看熊 | 日韩欧美的一区二区| 在线观看视频91| 波多野结衣亚洲一区| 国产综合色视频|