摘要:本文主要向大家介绍了Flash基础入门之贰:读写FLASH的方法,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。
本文主要向大家介绍了Flash基础入门之贰:读写FLASH的方法,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。
将需要存储的不同数据类型的变量作为结构体变量的元素,整体读取和写入,see code.
#include <stdio.h>
#include <malloc.h>
typedef struct
{
char i;
int j;
float k;
char a[10];
int b[10];
float c[10];
}FLASH;
void Write_buff(unsigned char *des_addr,unsigned char *source_addr,int cnt)
{
for(;cnt>0;cnt--)
{
*des_addr++ = *source_addr++;
}
}
void Read_buff(unsigned char *des_addr,unsigned char *source_addr,int cnt)
{
for(;cnt>0;cnt--)
{
*des_addr++ = *source_addr++;
}
}
int main()
{
char i,j;
FLASH flash_1,flash_2;
flash_1.i=10;
flash_1.j=20;
flash_1.k=30;
for(i=0;i<10;i++)
{
flash_1.a[i] = 'a'+i;
flash_1.b[i] = 0x11111100+i;
flash_1.c[i] = 3.0+(float)i/10.0;
}
char *buff = malloc(100);
Write_buff(buff,&flash_1.i,sizeof(FLASH));
Read_buff(&flash_2.i,buff,sizeof(FLASH));
printf("%d %d %f\r\n",flash_2.i,flash_2.j,flash_2.k);
for(;j<3;j++)
{
for(i=0;i<10;i++)
{
if(j==0)
printf("%c ",flash_2.a[i]);
else if(j==1)
printf("0x%8x ",flash_2.b[i]);
else if(j==2)
printf("%.1f ",flash_2.c[i]);
}
printf("\r\n");
}
}
代码功能
1:动态申请100个字节大小的buff,认为buff是FLASH中的一段内存;
2:将flash_1中需要存储的元素整体写入FLASH,然后从FLASH中读取sizeof(FLASH)大小的数据赋值给flash_2,最终打印flash_2元素验证;
3:Write_buff、Read_buff函数参数中源地址和目标地址须是char型变量,因为是取地址(指针),地址作为实参时,指针所指的数据类型被强制转换成char型,才能和FLASH中数据储存形式一致;
4:此代码已在ubuntu10.04上验证;
以上就介绍了Flash的相关知识,希望对Flash有兴趣的朋友有所帮助。了解更多内容,请关注职坐标常用软件Flash频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-IT技术咨询与就业发展一体化服务 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号