现写一个程序,用到读取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读写功能。然后传递到标准函数输入端。
------解决方案--------------------
强制类型转换试过么?