From 65daf32f2edc8f5b40366ebb58f0040c06cb00c5 Mon Sep 17 00:00:00 2001 From: liumin Date: Sun, 6 Jul 2025 16:14:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=20XC88x=5FFLHANDLER.ASM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- XC88x_FLHANDLER.ASM | 166 -------------------------------------------- 1 file changed, 166 deletions(-) delete mode 100644 XC88x_FLHANDLER.ASM diff --git a/XC88x_FLHANDLER.ASM b/XC88x_FLHANDLER.ASM deleted file mode 100644 index 6c49a6b..0000000 --- a/XC88x_FLHANDLER.ASM +++ /dev/null @@ -1,166 +0,0 @@ -;************************************************************************************ -;* FILE : XC88x_FLHANDLER.ASM * -;* DESCRIPTION : Flash handler routine for XC88x AA and AB * -;* COPYRIGHT : (c) 2006 Infineon Technologies AG * -;* UPDATED : 14/03/2006 * -;************************************************************************************ -$ NOMOD51 -$ DEBUG -#include "XC88x_FLADDR.H" - -FLASH_ERASE CODE FLASH_ERASE_BROM_ENTRY -FLASH_PROG CODE FLASH_PROGRAM_BROM_ENTRY -FLASH_ERASE_ABORT CODE FLASH_ERASE_ABORT_BROM_ENTRY -FLASH_READ_STATUS CODE FLASH_READ_STATUS_BROM_ENTRY -FLASH_PROTECT CODE FLASH_PROTECT_BROM_ENTRY - -DSEG AT MAGIC_MEMORY -DS RESERVED_BYTES ; Reserved for FLASH Handler in Boot ROM - - - - -;------------------------------------------------------------------------------------------ -; Function Name : bit DFlErase (unsigned int DFlash0Sector, unsigned int DFlash1Sector) -; Description : Erase DFlash Sectors (Bank3 and Bank4) -; Input Parameter : DFlash0Sector => Bit0 = Erase Sector0 -; Bit1 = Erase Sector1 -; Bit2 = Erase Sector2 -; Bit3 = Erase Sector3 -; Bit4 = Erase Sector4 -; Bit5 = Erase Sector5 -; Bit6 = Erase Sector6 -; Bit7 = Erase Sector7 -; Bit8 = Erase Sector8 -; Bit9 = Erase Sector9 -; DFlash1Sector => Bit0 = Erase Sector0 -; Bit1 = Erase Sector1 -; Bit2 = Erase Sector2 -; Bit3 = Erase Sector3 -; Bit4 = Erase Sector4 -; Bit5 = Erase Sector5 -; Bit6 = Erase Sector6 -; Bit7 = Erase Sector7 -; Bit8 = Erase Sector8 -; Bit9 = Erase Sector9 -; -; e.g: DFlash0Sector = 0x202 -; DFlash1Sector = 0x380 -; ==> Will erase Bank3 Sector 1 -; erase Bank3 Sector 9 -; erase Bank4 Sector 7 -; erase Bank4 Sector 8 -; erase Bank4 Sector 9 -; Return Value : Bit => 1 = Successfull -; 0 = Fail -; Required Stack Size = 12 -;------------------------------------------------------------------------------------------ -#if USE_DLFERASE -?PR?_DFlErase?XC88x_FLHANDLER SEGMENT CODE -RSEG ?PR?_DFlErase?XC88x_FLHANDLER -PUBLIC _DFlErase -_DFlErase: - USING USE_BANK - MOV AR1,R6 ; BANK3 - MOV AR0,R7 ; BANK3 - - MOV AR4,R4 ; BANK4 - MOV AR3,R5 ; BANK4 - - CLR A - MOV AR5, A ; BANK0 - MOV AR6, A ; BANK1 - MOV AR7, A ; BANK2 - - PUSH PSW - PUSH ACC - PUSH B -#if (USE_BANK == 0) - ANL PSW, #0xE7 ; Set to Bank0 -#elseif (USE_BANK == 1) - SETB PSW.3 - CLR PSW.4 -#elif (USE_BANK == 2) - CLR PSW.3 - SETB PSW.4 -#elif (USE_BANK == 3) - ORL PSW, #0x18 -#endif - - LCALL FLASH_ERASE - JC _derase_fail - POP B - POP ACC - POP PSW - SETB C - RET -_derase_fail: - POP B - POP ACC - POP PSW - CLR C -RET -#endif - -;------------------------------------------------------------------------------------------ -; Function Name: bit FlProg(unsigned char idata *WlBuf) -; Description: Program the 32byte data in the WlBuf to the EEPROM -; When calling this function, user should already programmed -; the DPTR with the EEPROM address (aligned to 32byte boundary) -; Input Parameter: *WlBuf ==> The pointer to the starting location of the buffer -; in the IDATA memory. -; Return Value: Bit => 1 = Successfull -; 0 = Fail -; Required Stack Size = 12 -;------------------------------------------------------------------------------------------ -?PR?_FlProg?XC88x_FLHANDLER SEGMENT CODE -RSEG ?PR?_FlProg?XC88x_FLHANDLER -PUBLIC _FlProg -_FlProg: -using USE_BANK - MOV AR0,R7 ; move C51 parameter registers to AR0 - ; this is the pointer to the WLBuf - -; MOV A,#0x6F -; MOV DPH,A -; MOV A,#0x0 ; the DPL will = DPL+0x20 after one successful program -; MOV DPL,A - - PUSH PSW - PUSH ACC - PUSH B -#if (USE_BANK == 0) - ANL PSW, #0xE7 ; Set to Bank0 -#elif (USE_BANK == 1) - SETB PSW.3 - CLR PSW.4 -#elif (USE_BANK == 2) - CLR PSW.3 - SETB PSW.4 -#elif (USE_BANK == 3) - ORL PSW, #0x18 -#endif - - LCALL FLASH_PROG ; LCALL FLASH_PROG - JC _prog_fail - POP B - POP ACC - POP PSW - SETB C - RET -_prog_fail: - POP B - POP ACC - POP PSW - CLR C -RET - - - - - - - -END - -;;#endif ;;#if (XC88xAA)