⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sst39flash.lst

📁 DownLoad_sst39sf010.zip--嵌入式系统中关于SST39SF010的FLASH的BOOTLOADER源程序(KC51)
💻 LST
字号:
C51 COMPILER V7.06   SST39FLASH                                                            11/29/2004 16:44:52 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE SST39FLASH
OBJECT MODULE PLACED IN SST39Flash.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE SST39Flash.c OPTIMIZE(4,SPEED) DEBUG OBJECTEXTEND CODE

stmt level    source

   1          /*********************************************************************
   2           
   3            (c) copyright Extell Company 2001 
   4            ALL RIGHTS RESERVED
   5           
   6           *********************************************************************
   7                  ESR-700 Demonstration Program for Voice Recognition Application
   8           *********************************************************************
   9          
  10            File:         SST39Flash.c
  11           
  12            Project:      ESR-700 demo program for Voice Recognition Application
  13           
  14            Description:  SST Flash memory Fuctions
  15           
  16            Date:         Sep. 2001
  17             
  18           ********************************************************************/
  19          #include "main.h"
  20          #include "extell51.h"
  21          
  22          
  23          #define UNLOCK1_OFFSET  0x5555
  24          #define UNLOCK2_OFFSET  0x2aaa
  25          #define COMMAND_OFFSET  0x5555
  26          
  27          #define FLASH_CMD_UNLOCK1               0xAA
  28          #define FLASH_CMD_UNLOCK2               0x55
  29          #define FLASH_CMD_READ_RESET    0xF0
  30          #define FLASH_CMD_AUTOSELECT    0x90
  31          #define FLASH_CMD_BYTE_PROGRAM  0xA0
  32          #define FLASH_CMD_ERASE_SETUP   0x80
  33          #define FLASH_CMD_CHIP_ERASE    0x10
  34          #define FLASH_CMD_SECTOR_ERASE  0x30
  35          #define FLASH_CMD_ERASE_SUSPEND 0xB0
  36          #define FLASH_CMD_ERASE_RESUME  0x30
  37          
  38          #define DQ7                                             0x80
  39          #define DQ6                                             0x40
  40          #define DQ5                                             0x20
  41          void FlashWrite(unsigned int addr, unsigned char fdata);
  42          unsigned char FlashWriteConfirm(unsigned int addr, unsigned char fdata);
  43          unsigned char ChipErase(void);
  44          unsigned char SectorErase(unsigned int SectorAddr);
  45          
  46          
  47          void FlashWrite(unsigned int addr, unsigned char fdata)
  48          {
  49   1              write_XDATA(UNLOCK1_OFFSET,FLASH_CMD_UNLOCK1);
  50   1              write_XDATA(UNLOCK2_OFFSET,FLASH_CMD_UNLOCK2);
  51   1              write_XDATA(COMMAND_OFFSET,FLASH_CMD_BYTE_PROGRAM);
  52   1              write_XDATA(addr,fdata);
  53   1      }
  54          
  55          
C51 COMPILER V7.06   SST39FLASH                                                            11/29/2004 16:44:52 PAGE 2   

  56          unsigned char SectorErase(unsigned int SectorAddr)
  57          {
  58   1              unsigned char data prev,next;
  59   1              bit PollingCheck=0;
  60   1              write_XDATA(UNLOCK1_OFFSET,FLASH_CMD_UNLOCK1);
  61   1              write_XDATA(UNLOCK2_OFFSET,FLASH_CMD_UNLOCK2);
  62   1              write_XDATA(COMMAND_OFFSET,FLASH_CMD_ERASE_SETUP);
  63   1              write_XDATA(UNLOCK1_OFFSET,FLASH_CMD_UNLOCK1);
  64   1              write_XDATA(UNLOCK2_OFFSET,FLASH_CMD_UNLOCK2);
  65   1              write_XDATA(SectorAddr,FLASH_CMD_SECTOR_ERASE);
  66   1              prev = read_XDATA(0);
  67   1              next= read_XDATA(0);
  68   1              while((prev&DQ6)!= (next&DQ6))
  69   1              {
  70   2                      prev = next;
  71   2                      next= read_XDATA(0);
  72   2                      if(next&DQ7) PollingCheck = 1;
  73   2              }
  74   1              if(!PollingCheck)
  75   1              {
  76   2                      next= read_XDATA(0);
  77   2                      if(next&DQ7) return(OK);
  78   2                      else return(ERROR);
  79   2              }
  80   1              return(OK);
  81   1      }
C51 COMPILER V7.06   SST39FLASH                                                            11/29/2004 16:44:52 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _FlashWrite (BEGIN)
                                           ; SOURCE LINE # 47
;---- Variable 'fdata' assigned to Register 'R5' ----
;---- Variable 'addr' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 48
                                           ; SOURCE LINE # 49
0000 905555            MOV     DPTR,#05555H
0003 74AA              MOV     A,#0AAH
0005 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 50
0006 902AAA            MOV     DPTR,#02AAAH
0009 7455              MOV     A,#055H
000B F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 51
000C 905555            MOV     DPTR,#05555H
000F 74A0              MOV     A,#0A0H
0011 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 52
0012 8F82              MOV     DPL,R7
0014 8E83              MOV     DPH,R6
0016 ED                MOV     A,R5
0017 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 53
0018 22                RET     
             ; FUNCTION _FlashWrite (END)

             ; FUNCTION _SectorErase (BEGIN)
                                           ; SOURCE LINE # 56
;---- Variable 'SectorAddr' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 57
                                           ; SOURCE LINE # 59
0000 C200        R     CLR     PollingCheck
                                           ; SOURCE LINE # 60
0002 905555            MOV     DPTR,#05555H
0005 74AA              MOV     A,#0AAH
0007 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 61
0008 902AAA            MOV     DPTR,#02AAAH
000B 7455              MOV     A,#055H
000D F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 62
000E 905555            MOV     DPTR,#05555H
0011 7480              MOV     A,#080H
0013 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 63
0014 74AA              MOV     A,#0AAH
0016 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 64
0017 902AAA            MOV     DPTR,#02AAAH
001A 7455              MOV     A,#055H
001C F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 65
001D 8F82              MOV     DPL,R7
001F 8E83              MOV     DPH,R6
0021 7430              MOV     A,#030H
0023 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 66
0024 900000            MOV     DPTR,#00H
0027 E0                MOVX    A,@DPTR
C51 COMPILER V7.06   SST39FLASH                                                            11/29/2004 16:44:52 PAGE 4   

0028 FF                MOV     R7,A
;---- Variable 'prev' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 67
0029 E0                MOVX    A,@DPTR
002A FE                MOV     R6,A
;---- Variable 'next' assigned to Register 'R6' ----
002B         ?C0002:
                                           ; SOURCE LINE # 68
002B EE                MOV     A,R6
002C 5440              ANL     A,#040H
002E FD                MOV     R5,A
002F EF                MOV     A,R7
0030 5440              ANL     A,#040H
0032 6D                XRL     A,R5
0033 600E              JZ      ?C0003
                                           ; SOURCE LINE # 69
                                           ; SOURCE LINE # 70
0035 AF06              MOV     R7,AR6
                                           ; SOURCE LINE # 71
0037 900000            MOV     DPTR,#00H
003A E0                MOVX    A,@DPTR
003B FE                MOV     R6,A
                                           ; SOURCE LINE # 72
003C 30E7EC            JNB     ACC.7,?C0002
003F D200        R     SETB    PollingCheck
                                           ; SOURCE LINE # 73
0041 80E8              SJMP    ?C0002
0043         ?C0003:
                                           ; SOURCE LINE # 74
0043 20000D      R     JB      PollingCheck,?C0005
                                           ; SOURCE LINE # 75
                                           ; SOURCE LINE # 76
0046 900000            MOV     DPTR,#00H
0049 E0                MOVX    A,@DPTR
                                           ; SOURCE LINE # 77
004A 30E703            JNB     ACC.7,?C0006
004D 7F00              MOV     R7,#00H
004F 22                RET     
0050         ?C0006:
                                           ; SOURCE LINE # 78
0050 7F01              MOV     R7,#01H
0052 22                RET     
                                           ; SOURCE LINE # 79
0053         ?C0005:
                                           ; SOURCE LINE # 80
0053 7F00              MOV     R7,#00H
                                           ; SOURCE LINE # 81
0055         ?C0007:
0055 22                RET     
             ; FUNCTION _SectorErase (END)



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    111    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.

C51 COMPILER V7.06   SST39FLASH                                                            11/29/2004 16:44:52 PAGE 5   


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -