Virtual EEPORM and production

Hi,

i want to use the virtual eeprom on a RA2E1. In principal this mechanism is working and i can write and read the record IDs. During production of the board i want to be able to program the initial content of this rec id. Is there any documentation or example how to build the binary file of the memory address starting from 0x40100000. 

Thanks Michael

Parents
  • Hi Michael,

    Thanks for reaching out to Renesas Engineering Community.

    If I understand correctly you want to program the data flash of the device only, right ?

    The data flash can be written in both ways, by Renesas Flash Programmer, or by self programming (by the software running on the device).

    To program only the data flash with Renesas Flash Programmer, the file used to program the device would need to contain only data for the data flash address range. A .srec, .hex or .bin file can be used with RFP to provide the data to be programmed into the flash.

    Regards

    AZ

  • Hi,

    how to write into to data flash is clear. I am using the JLINK this works very well.


    This was not really the question i have. The implementation of the renesas virtual eeprom needs a correct structure. 

    https://renesas.github.io/fsp/group___r_m___v_e_e___f_l_a_s_h.html

    I want to flash a initial value of a virtual eeprom content into device.

    After the production and flashing of the bin files there should be a default value in, which must be unique for ever device. In operation the values must be update in virtual eeprom

    Thanks Michael

  • Then the .bin file should program the data flash with data that can be used from VEEPROM drivers (segment header, initial record, reference data).

    The way of programming the data flash would be the same but with different data.

  • If you decide to use the reference data to keep that unique value, you just need to program the reference data.  It should go into the last bytes of your data flash. For reference, see code from RM_VEE_FLASH_Format

     

    #if RM_VEE_FLASH_CFG_REF_DATA_SUPPORT
        if ((0 != p_ctrl->p_cfg->ref_data_size) && (NULL != p_ref_data) && (FSP_SUCCESS == err))
        {
            err =
                rm_vee_blocking_write(p_ctrl,
                                      (uint32_t) p_ref_data,
                                      (RM_VEE_FLASH_LOGICAL_END_ADDRESS - p_ctrl->p_cfg->ref_data_size),
                                      p_ctrl->p_cfg->ref_data_size);
        }
    
    #else
        FSP_PARAMETER_NOT_USED(p_ref_data);
    #endif
    
    

Reply
  • If you decide to use the reference data to keep that unique value, you just need to program the reference data.  It should go into the last bytes of your data flash. For reference, see code from RM_VEE_FLASH_Format

     

    #if RM_VEE_FLASH_CFG_REF_DATA_SUPPORT
        if ((0 != p_ctrl->p_cfg->ref_data_size) && (NULL != p_ref_data) && (FSP_SUCCESS == err))
        {
            err =
                rm_vee_blocking_write(p_ctrl,
                                      (uint32_t) p_ref_data,
                                      (RM_VEE_FLASH_LOGICAL_END_ADDRESS - p_ctrl->p_cfg->ref_data_size),
                                      p_ctrl->p_cfg->ref_data_size);
        }
    
    #else
        FSP_PARAMETER_NOT_USED(p_ref_data);
    #endif
    
    

Children