加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FLash、EE经典存储的方法

发布时间:2020-12-15 17:30:47 所属栏目:百科 来源:网络整理
导读:笔者作为一枚小小的程序员已经快三年了,和大家分享一点有技术含量的东西,关于FLASH EE参数存储的方法 #define OFFSETOF(s,m) (Uint16)(((s*)0)-m)#define LENOF(s,m) sizeof(((s*)0)-m) typedef struct{ unsigned char A_RSVD; // this is rsvd by develop

笔者作为一枚小小的程序员已经快三年了,和大家分享一点有技术含量的东西,关于FLASH EE参数存储的方法


#define OFFSETOF(s,m)         (Uint16)&(((s*)0)->m)
#define LENOF(s,m)            sizeof(((s*)0)->m)
typedef struct
{
    unsigned char A_RSVD; // this is rsvd by developer

    //for user
    unsigned char A_PDDI[4];
    //0xF184					//applicationSoftwareFingerprint 10
    unsigned char A_ASFP[10];
    //0xF190  Original VIN 17
    unsigned char A_OVIN[17];
    //0xF1A0  Current  VIN 17
    unsigned char A_CVIN[17];
}USER_DATA;

#define USER_VARS_ADDR(m)   OFFSETOF(USER_DATA,m)
#define USER_VARS_LEN(m)    LENOF(USER_DATA,m)
参数初始化方法
const USER_DATA user_data_val = {
    1000,//rsvd0;
    1,//rsvd1;
    "x20x14",// rsvd2[4];
    "123",//rsvd3[5];
    "",//rsvd4[6];
    "",//rsvd5[7];
    "",//rsvd6[8];
    "",//rsvd7[9];
    "",//rsvd8[10];
    "",//rsvd9[11];
};
读写方法
write_user_vars(USER_VARS_ADDR(A_CVIN),tmp,USER_VARS_LEN(A_CVIN));
read_user_vars(USER_VARS_ADDR(A_RSVD),USER_VARS_LEN(A_RSVD));
核心思想,用结构体自动分配地址,免得人工分配地址的麻烦,维护起来非常方便

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读