Now I am developing a project base on CAN communication. I need to write some bytes to the EEPROM according to UDS specification. If the global interrupt must be disabled during the program or erase operations of the EEPROM? If so, how can I solve the problem of CAN communication loss caused by EEPROM operation?
I do not know whether you are talking about EEPROM or FLASH EEPROM.
If the code is run out of the:
1) FLASH EEPROM, then you are not allowed to neither to run the code out of this memory nor to read it. In this case the program which has to be executed must run from another memory. Usually RAM. Or you can use EEPROM.
2) The code can be entire working out of the FLASH when EEPROM is E/W. But it is not allowed to be neither read nor to be code running out of the EEPROM when EEPROM is E/W.
For table describing this please look at chapter 24.4.5 Allowed Simultaneous P-Flash and EEPROM Operations in the data sheet.
i have attached a codes for EEPROM as well as for FLASH E/W which perform safe write functions when the part of the code which is used to check flash process is running out of another memory.
So, what you have to ensure is that if you erase or write the EEPROM or the FLASH EEPROM you are not allowed to access them from another process which is usually launched by interrupt and following of interrupt processing in the memory which is currently E/W.
Thank you for your reply.
I want to operate the EEPROM whose global address ranges from 0x0_0400 to 0x0_13FF. Is it real EEPROM or simulated with FLASH? It is called DFLASH in the prm file in CW5.2. My application codes are stored in the non-paged FLASH and paged FLASH, so I am worried about whether the interrupt servie functions will disturb the operation of EEPROM.