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));核心思想,用结构体自动分配地址,免得人工分配地址的麻烦,维护起来非常方便 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |