You need to sign in or sign up before continuing.
NVM.c 3.43 KB
Newer Older
梁百峰's avatar
梁百峰 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
#include "TYW_stdint.h"
#include "NVM.h"
#include "Internal_EEPROM.h"
#include <string.h>


#define EEPROM_BASE_ADDR 0
#define EEPROM_PAGE_SIZE 16


void NVM_Usr_Init(void)
{
    uint8_t        readbuff [ 512 ];
    uint8_t        writebuff [ 512 ];
    r_eel_status_t loc_condition;

    //CAFD
    memset(readbuff, 0, sizeof(readbuff));
    memset(writebuff, 0, sizeof(writebuff));



    loc_condition = Internal_EEL_Read(INTERNAL_EE_BLOCK_05, readbuff, INTERNAL_EE_BLOCK_05_size);
    if ( (readbuff [ 0 ] != 0x35) || (readbuff [ 1 ] != 0x53) || (readbuff [ 2 ] != 0x7A) || (readbuff [ 3 ] != 0xA7) || (loc_condition == R_EEL_ERR_NO_INSTANCE) )
    {

        writebuff [ 0 ] = 0x35u;
        writebuff [ 1 ] = 0x53u;
        writebuff [ 2 ] = 0x7Au;
        writebuff [ 3 ] = 0xA7u;
        Internal_EEL_Write(INTERNAL_EE_BLOCK_05, writebuff, INTERNAL_EE_BLOCK_05_size);
        Internal_EEL_Read(INTERNAL_EE_BLOCK_05, readbuff, INTERNAL_EE_BLOCK_05_size);

    }


    //CAFD CTRL
    memset(readbuff, 0, sizeof(readbuff));
    memset(writebuff, 0, sizeof(writebuff));
    loc_condition = Internal_EEL_Read(INTERNAL_EE_BLOCK_06, readbuff, INTERNAL_EE_BLOCK_06_size);
    if ( (readbuff [ 0 ] != 0x35) || (readbuff [ 1 ] != 0x53) || (readbuff [ 2 ] != 0x7A) || (readbuff [ 3 ] != 0xA7) || (loc_condition == R_EEL_ERR_NO_INSTANCE) )
    {
        writebuff [ 0 ] = 0x35u;
        writebuff [ 1 ] = 0x53u;
        writebuff [ 2 ] = 0x7Au;
        writebuff [ 3 ] = 0xA7u;
        writebuff [ 4 ] = 0x00u;
        Internal_EEL_Write(INTERNAL_EE_BLOCK_06, writebuff, INTERNAL_EE_BLOCK_06_size);
        Internal_EEL_Read(INTERNAL_EE_BLOCK_06, readbuff, INTERNAL_EE_BLOCK_06_size);

    }


    //USR
    memset(readbuff, 0, sizeof(readbuff));
    memset(writebuff, 0, sizeof(writebuff));
    loc_condition = Internal_EEL_Read(INTERNAL_EE_BLOCK_07, readbuff, INTERNAL_EE_BLOCK_07_size);
    if ( (readbuff [ 0 ] != 0x35) || (readbuff [ 1 ] != 0x53) || (readbuff [ 2 ] != 0x7A) || (readbuff [ 3 ] != 0xA7) || (loc_condition == R_EEL_ERR_NO_INSTANCE) )
    {
        writebuff [ 0 ] = 0x35u;
        writebuff [ 1 ] = 0x53u;
        writebuff [ 2 ] = 0x7Au;
        writebuff [ 3 ] = 0xA7u;


        Internal_EEL_Write(INTERNAL_EE_BLOCK_07, writebuff, INTERNAL_EE_BLOCK_07_size);
        Internal_EEL_Read(INTERNAL_EE_BLOCK_07, readbuff, INTERNAL_EE_BLOCK_07_size);
    }
    //     Internal_EEL_Write(i, write, 64);
}

void CAFD_NVM_Update(void)
{
    uint8_t        readbuff [ 512 ];
    uint8_t        writebuff [ 512 ];
    r_eel_status_t loc_condition;
    //CAFD
    memset(readbuff, 0, sizeof(readbuff));
    memset(writebuff, 0, sizeof(writebuff));
    writebuff [ 0 ] = 0x35u;
    writebuff [ 1 ] = 0x53u;
    writebuff [ 2 ] = 0x7Au;
    writebuff [ 3 ] = 0xA7u;

    Internal_EEL_Write(INTERNAL_EE_BLOCK_05, writebuff, INTERNAL_EE_BLOCK_05_size);
    Internal_EEL_Read(INTERNAL_EE_BLOCK_05, readbuff, INTERNAL_EE_BLOCK_05_size);

}

void CAFD_CTRL_Update(uint8_t status)
{
    uint8_t        readbuff [ 512 ];
    uint8_t        writebuff [ 512 ];
    r_eel_status_t loc_condition;
    //CAFD CTRL
    memset(readbuff, 0, sizeof(readbuff));
    memset(writebuff, 0, sizeof(writebuff));
    writebuff [ 0 ] = 0x35u;
    writebuff [ 1 ] = 0x53u;
    writebuff [ 2 ] = 0x7Au;
    writebuff [ 3 ] = 0xA7u;
    writebuff [ 4 ] = status;
    Internal_EEL_Write(INTERNAL_EE_BLOCK_06, writebuff, INTERNAL_EE_BLOCK_06_size);
    Internal_EEL_Read(INTERNAL_EE_BLOCK_06, readbuff, INTERNAL_EE_BLOCK_06_size);

}