| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /************************************************************************
- * ---- 居加居 ----
- * 文件名: Flash.c
- * 编写人员: Kinve JQ
- * 说明:
- * 版本: V0.1
- * 编写日期: 2018-09-30
- * 程序维护:
- * 维护记录:
- * 2018-09-30.Kinve:1.创建文件
- * 免责声明:
- * (c) Author Kinve JQ. All rights reserved.
- **************************************************************************/
- #include "Flash.h"
- volatile unsigned char xdata page_buffer[128];
- UINT8 Read_APROM_BYTE ( UINT16 code *u16_addr )
- {
- UINT8 rdata;
- rdata = *u16_addr >> 8;
- return rdata;
- }
- /*****************************************************************************************************************
- write_DATAFLASH_BYTE :
- user can copy all this subroutine into project, then call this function in main.
- ******************************************************************************************************************/
- void Write_DATAFLASH_BYTE ( unsigned int u16EPAddr, unsigned char u8EPData )
- {
- unsigned char looptmp = 0;
- unsigned int u16_addrl_r;
- unsigned int RAMtmp;
- //Check page start address
- u16_addrl_r = ( u16EPAddr / 128 ) * 128;
- //Save APROM data to XRAM0
- for ( looptmp = 0; looptmp < 0x80; looptmp++ )
- {
- RAMtmp = Read_APROM_BYTE ( ( unsigned int code * ) ( u16_addrl_r + looptmp ) );
- page_buffer[looptmp] = RAMtmp;
- }
- // Modify customer data in XRAM
- page_buffer[u16EPAddr & 0x7f] = u8EPData;
- //Erase APROM DATAFLASH page
- IAPAL = u16_addrl_r & 0xff;
- IAPAH = ( u16_addrl_r >> 8 ) & 0xff;
- IAPFD = 0xFF;
- set_IAPEN;
- set_APUEN;
- IAPCN = 0x22;
- set_IAPGO;
- //Save changed RAM data to APROM DATAFLASH
- set_IAPEN;
- set_APUEN;
- IAPCN = 0x21;
- for ( looptmp = 0; looptmp < 0x80; looptmp++ )
- {
- IAPAL = ( u16_addrl_r & 0xff ) + looptmp;
- IAPAH = ( u16_addrl_r >> 8 ) & 0xff;
- IAPFD = page_buffer[looptmp];
- set_IAPGO;
- }
- clr_APUEN;
- clr_IAPEN;
- }
- /*************** (C) COPYRIGHT Kinve JQ *******END OF FILE **************/
|