| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- C51 COMPILER V9.53.0.0 FLASH 09/30/2018 11:45:28 PAGE 1
- C51 COMPILER V9.53.0.0, COMPILATION OF MODULE FLASH
- OBJECT MODULE PLACED IN .\Output\Flash.obj
- COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\..\Code\User\Driver\Flash.c LARGE OPTIMIZE(0,SPEED) BROWSE INCDIR(../
- -../Code/Include;../../Code/User;../../Code/User/Common;../../Code/User/Driver) DEFINE(FOSC_160000=1) DEBUG OBJECTEXTEND
- -PRINT(.\Output\LST\Flash.lst) TABS(2) OBJECT(.\Output\Flash.obj)
- line level source
- 1
- 2 #include "Flash.h"
- 3
- 4 volatile unsigned char xdata page_buffer[128];
- 5
- 6
- 7 UINT8 Read_APROM_BYTE ( UINT16 code *u16_addr )
- 8 {
- 9 1 UINT8 rdata;
- 10 1 rdata = *u16_addr >> 8;
- 11 1 return rdata;
- 12 1 }
- 13 /*********************************************************************************************************
- -********
- 14 write_DATAFLASH_BYTE :
- 15 user can copy all this subroutine into project, then call this function in main.
- 16 **********************************************************************************************************
- -********/
- 17 void Write_DATAFLASH_BYTE ( unsigned int u16EPAddr, unsigned char u8EPData )
- 18 {
- 19 1 unsigned char looptmp = 0;
- 20 1 unsigned int u16_addrl_r;
- 21 1 unsigned int RAMtmp;
- 22 1
- 23 1 //Check page start address
- 24 1 u16_addrl_r = ( u16EPAddr / 128 ) * 128;
- 25 1
- 26 1 //Save APROM data to XRAM0
- 27 1 for ( looptmp = 0; looptmp < 0x80; looptmp++ )
- 28 1 {
- 29 2 RAMtmp = Read_APROM_BYTE ( ( unsigned int code * ) ( u16_addrl_r + looptmp ) );
- 30 2 page_buffer[looptmp] = RAMtmp;
- 31 2 }
- 32 1
- 33 1 // Modify customer data in XRAM
- 34 1 page_buffer[u16EPAddr & 0x7f] = u8EPData;
- 35 1
- 36 1 //Erase APROM DATAFLASH page
- 37 1 IAPAL = u16_addrl_r & 0xff;
- 38 1 IAPAH = ( u16_addrl_r >> 8 ) & 0xff;
- 39 1 IAPFD = 0xFF;
- 40 1 set_IAPEN;
- 41 1 set_APUEN;
- 42 1 IAPCN = 0x22;
- 43 1 set_IAPGO;
- 44 1
- 45 1 //Save changed RAM data to APROM DATAFLASH
- 46 1 set_IAPEN;
- 47 1 set_APUEN;
- 48 1 IAPCN = 0x21;
- 49 1
- 50 1 for ( looptmp = 0; looptmp < 0x80; looptmp++ )
- 51 1 {
- C51 COMPILER V9.53.0.0 FLASH 09/30/2018 11:45:28 PAGE 2
- 52 2 IAPAL = ( u16_addrl_r & 0xff ) + looptmp;
- 53 2 IAPAH = ( u16_addrl_r >> 8 ) & 0xff;
- 54 2 IAPFD = page_buffer[looptmp];
- 55 2 set_IAPGO;
- 56 2 }
- 57 1
- 58 1 clr_APUEN;
- 59 1 clr_IAPEN;
- 60 1 }
- 61
- MODULE INFORMATION: STATIC OVERLAYABLE
- CODE SIZE = 581 ----
- CONSTANT SIZE = ---- ----
- XDATA SIZE = 139 ----
- PDATA SIZE = ---- ----
- DATA SIZE = ---- ----
- IDATA SIZE = ---- ----
- BIT SIZE = ---- ----
- END OF MODULE INFORMATION.
- C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|