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

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

?? pgm_alg.asm

?? TMS320C2000Flash操作
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;--------------------------------------------------------------------------------------------------
; Filename         : PGM_ALG.ASM	  
; Last Modified    : 23 Jan 2002.
; Version          : 1.3
; Originator       : Texas Instruments, DSP Digital Control Systems Group.
;--------------------------------------------------------------------------------------------------
; Description:
;
; This file contains the implementation of the core clear algorithm for 
; progamming user data into the LF240x Flash.
;--------------------------------------------------------------------------------------------------
;--------------------------------------------------------------------------------------------------
; Revision History
; 
; Ver 1.0 (25 May 2001)
; 
;           Comments: Derived from previous source code. Several modifications in place for 
;                     enhanced embeddability.
; Ver 1.1 (10 Aug 2001)
;           Comments: Added code to save/restore the hardware stack. This excludes the possibility
;                     of hardware stack overflow.
;
; Ver 1.2 (16 Oct 2001)
;           Comments: No changes to this file. Changed version number only.
; Ver 1.3 (23 Jan 2002)
;           Comments: 
;                   * Fixed a bug in this file:
;                     Near line 295 (now near line 315) a line of code had a direct address coded
;                     in for data space #0064h. This line is not in keeping with re-locatable 
;                     variables, and the functionality of this line was replaced with relocatable
;                     code when deriving v1.0.
;                     This line of code would corrupt the contents of memory location #0064h.
;                     Hence this line of code was removed.
;                     This line used to read as follows:
;;;;                  BLDD flashAlgoVars.DATA_PTR,#0064h ;Get the next data value to be programmed.
;                      
;                   * This program algorithm will work for DEV_TYPE LF2407 and LF2401A, see 
;                       ..\include\VAR.H on how to choose and set DEV_TYPE.
;
;                   * Modified the macros ACCESS_REGS and ACCESS_ARRAY to not use a hard coded data
;                     mem address. This is to bring these macros in line with the rest of the algo
;                     which uses allocated addresses. These macros still use a hard coded address
;                     for the i/o space address 0xff0f (0ff0fh) since that is a special address,
;                     which will always address the i/o latch which controls the flash memory
;                     mode.
;--------------------------------------------------------------------------------------------------
;--------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------
;
;--------------------------------------------------------------------------------------------------
; Symbols exported from this file
;--------------------------------------------------------------------------------------------------
        .globl  PROGRAM_FLASH

;--------------------------------------------------------------------------------------------------
; Import register definitions and symbol declarations.
;--------------------------------------------------------------------------------------------------
        .include ..\include\var.h

        .include ..\include\rundefs.h
;--------------------------------------------------------------------------------------------------
; Program sections generated by this file:
; All code in this algorithm implementation is assembled into the named section 'ALG_Text". 
; Any relocation sensitive code is placed in the named section 'PSPL_text'.
;--------------------------------------------------------------------------------------------------
            .sect     "PGM_text"

;--------------------------------------------------------------------------------------------------
; Define macros to set the Flash Mode.
; ACCESS_REGS gives access to the Flash Registers in the Pgm Mem Space and ACCESS_ARRAY  gives 
; access to the Flash ARRAY in Pgm Mem Space.
;
;--------------------------------------------------------------------------------------------------
ACCESS_REGS        .macro    
                OUT    flashAlgoVars.PAD,0ff0fh        
                .endm

ACCESS_ARRAY    .macro    
                IN     flashAlgoVars.PAD,0ff0fh
                .endm

;--------------------------------------------------------------------------------------------------
; Define Short DELAY loop macro. 
;  This will be used to generate a short delay upto 256 cycles.
;--------------------------------------------------------------------------------------------------
SDELAY          .macro  COUNT
                RPT     COUNT
                NOP
                .endm
;--------------------------------------------------------------------------------------------------



;--------------------------------------------------------------------------------------------------
; PROGRAM_FLASH:
;--------------------------------------------------------------------------------------------------
; This function is the implementation of the clear algorithm for the pre-erase preconditioning of 
; the flash array. This function is desginated as a LEVEL_1 subroutine.
;--------------------------------------------------------------------------------------------------
PROGRAM_FLASH:                          ; Call label for assembly-language client applications.
_programFlash:                          ; Call label for C-language client applications.
        .label  ProgramAlgoStartMain
        LDP     #flashAlgoVars.ADDR

STACK_SAVE:
        LAR     AR2,#flashAlgoVars.STACK0       ;Use AR2 to save the hardware stack.
        MAR     *,AR2                           ;Make AR2 the current AR

        RPT     #7                              ;Save all the 8 hardware stack locations
        POPD    *+                              ;into RAM block.
       
;--------------------------------------------------------------------------------------------------
; Enable the flash for programming:
; To accept programming commands the following must happen:
;   1. Place the flash in the register mode.
;   2. Copy the sector key to the SECT register.
;   3. Enable the core by setting Bit 0 of the ENAB Register
;--------------------------------------------------------------------------------------------------
ENABLE: ACCESS_REGS                                              ;Put the flash in register mode.

        LACC    #SECT                                            ;Enable sector.
        BLDD    #flashAlgoVars.SECTOR_CMD,flashAlgoVars.PAD      ;
        TBLW    flashAlgoVars.PAD       

        LACC    #ENAB                                            ;Enable core.
        SPLK    #0001h,flashAlgoVars.PAD                         ;
        TBLW    flashAlgoVars.PAD                                ;

;--------------------------------------------------------------------------------------------------
        SPLK    #0000,flashAlgoVars.FL_CMD                       ;
;--------------------------------------------------------------------------------------------------
;       BLDD    flashAlgoVars.DATA_PTR,#flashAlgoVars.DATA       ;Point to first data 
                                                                 ;to be programmed.
;--------------------------------------------------------------------------------------------------
; PGM:
;--------------------------------------------------------------------------------------------------
; This is the loop at the core of the program algorithm. This performs the following steps to 
; program the flash with the new contents of the flash
;   1.  Reads the flash.
;   2.  Compares the contents read out to those pointed to by the 
;       variable DATA_PTR.
;   3.  If any bits need to be programmed forms a bitmask and calls the PROG
;       routine to apply the program pulse.
;
;--------------------------------------------------------------------------------------------------
PGM:    SPLK    #MX_PCNT,flashAlgoVars.PLS_CNT  ;Initialise the pulse counter.

PGVERON:
        LACC    #WADDR                          ;Load WADDR with the address of 
                                                ;the word to be programmed.
        CALL    SETWADDR                        ;Call the routine to do so.

        LACC    flashAlgoVars.FL_CMD            ;Compose the flash command to read
                                                ;the user space in PROGVER mode.
        XOR     #0004h              
        SACL    flashAlgoVars.PAD    

        LACC    #CTRL                           ;Set up the PROGVER mode.
        TBLW    flashAlgoVars.PAD
        SDELAY  #T_pvsu                         ;Wait for T_pvsu(P)

        LACC    #PMPC                           ;Activate the PROGVER mode.
        SPLK    #0005h,flashAlgoVars.PAD    
        TBLW    flashAlgoVars.PAD
        SDELAY  #T_pva_e                        ;Wait T_pva(E)

        CALL    READWORD                        ;Read the word pointed to by ADDR.
    
PGVEROFF:
        SPLK    #0000h,flashAlgoVars.PAD1       ;Deactivate the PROGVER mode.
        CALL    CLRCMD

        SDELAY  #Tpv_h_P                        ; Wait for Program verify hold time

        SPLK    #0001h,flashAlgoVars.PAD1       ;Clear out PMPC and CTRL
        CALL    CLRCMD                          ;Since PMPC is cleared already, it is unchanged.

        SDELAY  #Tpv_h_C                        ;Hold the normal read mode.

;--------------------------------------------------------------------------------------------------
; Compare:
;--------------------------------------------------------------------------------------------------
; This section of code compares the data read out from the flash with the data
; intended to be programmed in the flash.
;   1.  Get the data read out during the read.
;   2.  Create a bitmask by XOR-ing the data read out during verify with the 
;       intended data pointed to by DATA_PTR.
;   3.  If not equal, builds the mask and calls the PROG routine.
;--------------------------------------------------------------------------------------------------
; Notes on building the mask:
;
; This implementation uses the Bitmask = DATA + !READ_Flash boolean expression for building the
; bitmask. (The + is the boolean operator OR, and ! is inversion.)
; The mask building works as follows:
;
;   1. Read the flash data. 
;   2. Invert this by XOR-ing this with 0xffff.
;   3. OR this with the reference data from the buffer.
;   4. Store the result as the mask into the DATA (subsequently sent to WDATA).
;
;   For example lets say the flash cells contain the 16 bits:  cccc cccc cccc cccc.
;
;   CCCC        cccc cccc cccc cccc  (flash contents)
;   XOR 
;   FFFF        1111 1111 1111 1111  (all ones mask)
;   ----        ---- ---- ---- ----
;   PPPP        pppp pppp pppp pppp  (intermediate result)
;   OR          
;   DDDD        dddd dddd dddd dddd  (reference data from RAM buffer)
;   ----        ---- ---- ---- ----
;   MMMM        mmmm mmmm mmmm mmmm  (mask for writing in WDATA)
;
;   Now the bits m are the result as p = ((C ^ 1) + y). The truth table for this is:
; 
;   d    c   c^1 or !c       m = p = !c + d  Action caused by m     Comments
;--------------------------------------------------------------------------------------------------
;   0    0    1              1               No pulse applied.      Note 1.
;   0    1    0              0               Pulse applied.         Note 2.
;   1    0    1              1               No pulse applied.      Note 3.
;   1    1    0              1               No pulse applied.      Note 4.
;
; 
; Note 1:  This is the case wheen the reference data is a 0 and the flash cell is a 0.
;          Clearly since Cell = Reference data, no pulse is needed, and this is what 
;          happens with WDATA = 1 for this bit.
;
; Note 2:  Case where the reference data is a 0, but the cell is a 1. So a pulse is 
;          applied, to program the cell to a 0.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩精品视频一区| 老司机精品视频线观看86| 国产女人18水真多18精品一级做| 欧美福利视频一区| 精品视频在线看| 欧美日韩国产欧美日美国产精品| 欧亚一区二区三区| 欧美系列一区二区| 欧美日韩成人一区| 666欧美在线视频| 欧美成人高清电影在线| 欧美va亚洲va在线观看蝴蝶网| 欧美va亚洲va香蕉在线| 精品国产1区2区3区| 久久久久久久电影| 亚洲视频免费在线观看| 亚洲一区二区三区激情| 国产河南妇女毛片精品久久久| 国产精品资源网| 成人黄色小视频在线观看| 一本一本大道香蕉久在线精品| 色菇凉天天综合网| 欧美日韩一级片网站| 欧美v日韩v国产v| 久久久久久麻豆| 亚洲视频一区二区在线| 午夜视频在线观看一区| 国产最新精品免费| 99久久99久久久精品齐齐| 在线观看一区日韩| 日韩一级片在线观看| 国产欧美精品一区二区色综合朱莉| 最近中文字幕一区二区三区| 亚洲国产日日夜夜| 久久se精品一区精品二区| 成人黄色免费短视频| 欧美日韩精品专区| 久久网站最新地址| 一区二区三区中文字幕电影| 日本视频免费一区| 不卡的av网站| 在线成人免费观看| 国产精品私人自拍| 视频精品一区二区| 粉嫩在线一区二区三区视频| 欧美在线视频全部完| 久久伊99综合婷婷久久伊| 亚洲精品老司机| 激情偷乱视频一区二区三区| 一本大道久久a久久综合婷婷| 日韩一区二区免费高清| 中文字幕免费观看一区| 五月婷婷久久丁香| 成人黄色在线视频| 欧美第一区第二区| 亚洲美女免费在线| 国产激情精品久久久第一区二区| 欧美私模裸体表演在线观看| 国产亚洲一二三区| 亚洲va欧美va天堂v国产综合| 国产99久久久精品| 91精品国产综合久久久久久久久久 | 国产三级三级三级精品8ⅰ区| 亚洲精品国产一区二区精华液| 狠狠色狠狠色综合| 欧美午夜精品久久久久久超碰| 欧美国产一区二区| 美女网站色91| 欧美三级视频在线观看| 中文字幕欧美一区| 韩国理伦片一区二区三区在线播放| 在线欧美小视频| 亚洲国产经典视频| 国产呦精品一区二区三区网站| 欧美日韩免费一区二区三区| 国产精品三级在线观看| 寂寞少妇一区二区三区| 欧美肥妇毛茸茸| 亚洲一区二区在线免费看| 粉嫩嫩av羞羞动漫久久久| 日韩三级伦理片妻子的秘密按摩| 一区二区三区四区在线免费观看 | 欧美一区二区三区性视频| 亚洲欧美激情视频在线观看一区二区三区| 韩日欧美一区二区三区| 欧美一级午夜免费电影| 性欧美疯狂xxxxbbbb| 91黄视频在线| 伊人开心综合网| 91片在线免费观看| 亚洲日本va午夜在线电影| av亚洲精华国产精华精华| 亚洲国产精品二十页| 国产成人精品综合在线观看| 久久九九全国免费| 国产精品一区二区三区乱码| 精品国产制服丝袜高跟| 美女视频网站黄色亚洲| 日韩欧美久久久| 蜜芽一区二区三区| 日韩欧美一级片| 久久99精品国产.久久久久| 日韩视频中午一区| 久久精品国产亚洲aⅴ| 日韩精品专区在线影院观看| 另类调教123区| 欧美成人高清电影在线| 国产精品一级黄| 欧美精彩视频一区二区三区| 国产a精品视频| 国产精品久久久久aaaa| 99综合电影在线视频| 国产精品久久久久久久久久免费看 | 菠萝蜜视频在线观看一区| 国产精品久久久久久久午夜片 | 久久伊99综合婷婷久久伊| 国产一区二区在线电影| 国产日韩在线不卡| bt欧美亚洲午夜电影天堂| 综合在线观看色| 欧美亚洲国产怡红院影院| 亚洲成在人线免费| 日韩视频123| 国产精品香蕉一区二区三区| 国产女主播视频一区二区| 91麻豆6部合集magnet| 亚洲观看高清完整版在线观看| 日韩一区二区在线看| 国产麻豆日韩欧美久久| 国产精品久久久久久久裸模| 欧美在线制服丝袜| 蜜桃一区二区三区在线观看| 久久久久国色av免费看影院| 91丨porny丨中文| 日日噜噜夜夜狠狠视频欧美人 | 另类欧美日韩国产在线| 国产精品情趣视频| 欧美日韩你懂得| 国产精品一区二区在线观看网站| 亚洲欧美一区二区在线观看| 欧美午夜精品理论片a级按摩| 精品一区二区三区久久久| 国产精品传媒在线| 欧美绝品在线观看成人午夜影视| 国产在线播放一区| 亚洲日本电影在线| 精品999久久久| 91久久免费观看| 韩国成人在线视频| 亚洲国产另类精品专区| 久久久亚洲欧洲日产国码αv| 色婷婷国产精品| 国产一区二区毛片| 亚洲国产欧美另类丝袜| 国产蜜臀av在线一区二区三区| 在线亚洲一区二区| 国产传媒日韩欧美成人| 亚洲高清在线精品| 中文字幕一区二区三区色视频| 欧美日韩国产高清一区二区三区| 成人激情免费视频| 麻豆久久久久久久| 亚洲综合激情另类小说区| 久久久久久久久蜜桃| 欧美精品v国产精品v日韩精品 | 日韩精品影音先锋| 色综合网色综合| 国产黄人亚洲片| 久久超碰97中文字幕| 亚洲午夜电影在线观看| 国产精品乱子久久久久| 精品美女一区二区| 欧美人牲a欧美精品| 99久久精品费精品国产一区二区| 久久精品国产久精国产| 午夜久久久久久电影| 中文字幕在线不卡国产视频| 久久香蕉国产线看观看99| 7777女厕盗摄久久久| 在线一区二区三区| 99在线热播精品免费| 国产成人亚洲精品狼色在线| 麻豆91在线看| 视频一区中文字幕| 亚洲一级二级在线| 亚洲三级电影网站| 国产精品久久久久久久浪潮网站| 久久美女高清视频| 日韩女优电影在线观看| 欧美军同video69gay| 欧美体内she精视频| 色哟哟国产精品| 99久久精品一区二区| 国产69精品久久99不卡| 国产精品538一区二区在线| 国产一区二区在线观看免费| 激情六月婷婷久久| 国精产品一区一区三区mba视频| 久久激五月天综合精品| 日本不卡高清视频|