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

📄 f_read.lst

📁 用ADuC8xx单片机实现AD转换、DA转换、片内flashdata的操作、定时器、计数器和I2C通信的源码
💻 LST
字号:
C51 COMPILER V6.03  F_READ                                                                 10/07/2000 00:42:35 PAGE 1   


C51 COMPILER V6.03, COMPILATION OF MODULE F_READ
OBJECT MODULE PLACED IN .\f_read.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\f_read.c OPTIMIZE(9,SPEED) DEBUG OBJECTEXTEND

stmt level    source

   1          #include <ADUC812.H>
   2          #include "f_adi.h"
   3          
   4          /*---------------------------------------------------------
   5          ---------------------------------------------------------*/
   6          unsigned long flash_read (
   7            void *buffer,            /* Buffer to fill */
   8            unsigned long len,       /* Bytes to read */
   9            unsigned long address)   /* FLASH address to read from */
  10          {
  11   1      unsigned char *s = buffer;
  12   1      unsigned long i;
  13   1      unsigned int addr;
  14   1      
  15   1      /*-------------------------------------
  16   1      If the address is too big, exit.
  17   1      --------------------------------------*/
  18   1      if (address >= ADI_EEMEM_SIZE)
  19   1        return (0UL);
  20   1      
  21   1      /*-------------------------------------
  22   1      Otherwise, read the starting page.
  23   1      --------------------------------------*/
  24   1      addr = (unsigned int) address;
  25   1      
  26   1      EADRL = addr >> 2;
  27   1      ECON = ADI_EE_READ_PAGE;
  28   1      
  29   1      for (i = 0; i < len; i++)
  30   1        {
  31   2      
  32   2      /*-------------------------------------
  33   2      Read the appropriate EE byte.
  34   2      --------------------------------------*/
  35   2        switch (addr & 0x03)
  36   2          {
  37   3          case 0: s[i] = EDATA1; break;
  38   3          case 1: s[i] = EDATA2; break;
  39   3          case 2: s[i] = EDATA3; break;
  40   3          case 3: s[i] = EDATA4; break;
  41   3          }
  42   2        
  43   2      
  44   2        if (++addr >= ADI_EEMEM_SIZE)
  45   2          break;
  46   2      
  47   2        if ((addr & 0x03) == 0)
  48   2          {
  49   3          EADRL = addr >> 2;
  50   3          ECON = ADI_EE_READ_PAGE;
  51   3          }
  52   2        }
  53   1      
  54   1      return (i);
  55   1      }
C51 COMPILER V6.03  F_READ                                                                 10/07/2000 00:42:35 PAGE 2   

  56          
  57          /*---------------------------------------------------------
  58          ---------------------------------------------------------*/


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


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

⌨️ 快捷键说明

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