/** ########################################################################## ** Filename : ** Project : ** Module : ** Processor : ** Version : ** Compiler : ** Date/Time : ** Abstract : ** Contents : ** Note : ** ** (c) Copyright dmdz Co.,Ltd ** -------------------------------------------------------------------------- ** R E V I S I O N H I S T O R Y ** -------------------------------------------------------------------------- ** Date Ver Author Description ** -20230602- --V1.0-- --mingyea--- --修改-- ** #########################################################################*/ /*--------------------------------------------------------------------------- - I N C L U D E F I L E S ----------------------------------------------------------------------------*/ #include "common_types.h" #include "error.h" //#include "eeprom.h" #include "nvm.h" /*--------------------------------------------------------------------------- - D E F I N E S / M A C R O S ----------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------- - T Y P E D E F I N I T I O N S ----------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------- - S T A T I C V A R I A B L E S ----------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------- * G L O B A L V A R I A B L E S ----------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------- - C O N S T A N T S ----------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------- - F U N C T I O N P R O T O T Y P E ----------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------- |Prototype : |Called by : |Preconditions : |Input parameters : |Output parameters : |Return value : |Description : ----------------------------------------------------------------------------*/ u8 ram_read_bytes(u32 addr,u8 *p_data,u16 len) { u8 l_result; u8 *p_src; u16 i; if( (addrRAM_END_ADDR) || ((addr+len)>(RAM_END_ADDR+1u)) ) { l_result = (u8)ERR_FAILED; } else { p_src = (u8 *)(addr); for (i = 0; i < len; i++) { p_data[i] = p_src[i]; /*lint !e511*/ } l_result = (u8)ERR_OK; } return l_result; } /*--------------------------------------------------------------------------- |Prototype : |Called by : |Preconditions : |Input parameters : |Output parameters : |Return value : |Description : ----------------------------------------------------------------------------*/ u8 ram_write_bytes(u32 addr,u8 *p_data,u16 len) { u8 l_result; u8 *p_addr; u16 i; if( (addrRAM_END_ADDR) || ((addr+len)>(RAM_END_ADDR+1u)) ) { l_result = (u8)ERR_FAILED; } else { p_addr = (u8 *)(addr); for (i = 0; i < len; i++) { p_addr[i] = p_data[i] ; /*lint !e511*/ } l_result = (u8)ERR_OK; } return l_result; } /*--------------------------------------------------------------------------- |Prototype : |Called by : |Preconditions : |Input parameters : |Output parameters : |Return value : |Description : ----------------------------------------------------------------------------*/ u8 flash_read_bytes(u32 addr,u8 *p_data,u16 len) { u8 l_result; u8 *p_src; u16 i; if( (addrFLASH_END_ADDR) || ((addr+len)>(FLASH_END_ADDR+1u)) ) { l_result = (u8)ERR_FAILED; } else { p_src = (u8 *)(addr); for (i = 0; i < len; i++) { p_data[i] = p_src[i]; /*lint !e511*/ } l_result = (u8)ERR_OK; } return l_result; } /*--------------------------------------------------------------------------- |Prototype : |Called by : |Preconditions : |Input parameters : |Output parameters : |Return value : |Description : ----------------------------------------------------------------------------*/ void nvm_init(void) { //u8 i; flash_init(); //#ifdef NVM_EEPROM_EXT_EN //eeprom_init(); //#endif //nvm_eeprom_init(); //eeprom_ext_init(); #if 0 g_nvm_test.result = nvm_read_bytes(NVM_TYPE_EEPROM,0x100300,&g_nvm_test.read_data[0],16); for(i=0;i<20;i++) { g_nvm_test.read_data[i] = 0; g_nvm_test.write_data[i] = 0x36+i; } g_nvm_test.result = nvm_write_bytes(NVM_TYPE_EEPROM,0x100300,&g_nvm_test.write_data[0],16); g_nvm_test.result = nvm_read_bytes(NVM_TYPE_EEPROM,0x100300,&g_nvm_test.read_data[0],16); g_nvm_test.result = nvm_read_bytes(NVM_TYPE_FLASH,0xfe0000,&g_nvm_test.read_data[0],16); g_nvm_test.result = nvm_read_bytes(NVM_TYPE_RAM,0x001000ul,&g_nvm_test.read_data[0],8); for(i=0;i<20;i++) { g_nvm_test.write_data[i] = 0x36+i; } g_nvm_test.result = nvm_write_bytes(NVM_TYPE_RAM,0x001000ul,&g_nvm_test.write_data[0],8); g_nvm_test.result = nvm_read_bytes(NVM_TYPE_RAM,0x001000ul,&g_nvm_test.read_data[0],8); #endif } /*--------------------------------------------------------------------------- |Prototype : |Called by : |Preconditions : |Input parameters : |Output parameters : |Return value : |Description : ----------------------------------------------------------------------------*/ void nvm_task(void) { //#ifdef NVM_EEPROM_EXT_EN //eeprom_task(); //#endif } /*--------------------------------------------------------------------------- |Prototype : |Called by : |Preconditions : |Input parameters : |Output parameters : |Return value : |Description : ----------------------------------------------------------------------------*/ u8 nvm_read_bytes(nvm_type_e type,u32 addr, u8 *p_data, u16 num) { u8 l_result = (u8)ERR_FAILED; switch(type) { case NVM_TYPE_EEPROM: //#ifdef NVM_EEPROM_EXT_EN l_result =eeprom_read_u8_ext(addr,p_data,num); //#endif break; case NVM_TYPE_RAM: l_result =ram_read_bytes(addr,p_data,num); break; case NVM_TYPE_FLASH: l_result =flash_read_bytes(addr,p_data,num); break; default: //code break; } return l_result; } /*--------------------------------------------------------------------------- |Prototype : |Called by : |Preconditions : |Input parameters : |Output parameters : |Return value : |Description : ----------------------------------------------------------------------------*/ u8 nvm_write_bytes(nvm_type_e type,u32 addr, u8 *p_data, u16 num) { u8 l_result = (u8)ERR_FAILED; switch(type) { case NVM_TYPE_EEPROM: //#ifdef NVM_EEPROM_EXT_EN l_result =eeprom_write_u8_ext(addr,p_data,num); //#endif break; case NVM_TYPE_RAM: l_result =ram_write_bytes(addr,p_data,num); break; case NVM_TYPE_FLASH: //l_result =flash_read_bytes(addr,p_data,num); break; default: //code break; } return l_result; }