读书人

读取单片机内flash里的字符串,该如何处

发布时间: 2013-03-01 18:33:02 作者: rapoo

读取单片机内flash里的字符串
现写一个程序,用到读取flash内的字符数组。
将flash里的chSrc[128]读到DOT[128]中使用。
当前代码是


__flash unsiged char chSrc[128]; //已定义
......

void ReadMem()
{
unsiged char CtI;
unsiged char DOT[128];
for(CtI=0; CtI<12; CtI++)
{
DOT[CtI]=chSrc[CtI];
}
......
}

使用memcpy()可以在内存中复制数据,不能复制flash中的数据。

这么写memcpy(DOT,chSrc,128);
报错“Error[Pe167]: argument of type "unsigned char __flash *" is incompatible with parameter of type "void const *" E:\工作\Source\LcdDriver.c 229 ”

问题,该怎么写才能用memcpy或类似的函数完成此功能?
chSrc[128]是一个比较大的字符数组,只能放在flash里不能预置到内存里。 flash c 单片机
[解决办法]
1. FLASH操作有page限制。或者一次性操作容量限制。
2. FLASH操作有专用指令。一般的芯片供应商提供的操作方式和一般的内存是不同的。
3. 需要自行建立专用函数,实现FLASH读写功能。然后传递到标准函数输入端。

[解决办法]
强制类型转换试过么?

读书人网 >单片机

热点推荐