当前位置: 代码迷 >> 单片机 >> 读取单片机内flash里的字符串,该如何处理
  详细解决方案

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

热度:46   发布时间:2016-04-28 15:29:50.0
读取单片机内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读写功能。然后传递到标准函数输入端。

------解决方案--------------------
强制类型转换试过么?

  相关解决方案