KT (29.11.2010 10:12, просмотров: 2170)
Может кому пригодится. Сохранение константного массива в памяти программ, если не хватает для этих целей EEPROM, проверялось HI-TECH PICC18 9.63 pro Ниже пример из мануала
#include<htc.h>
const unsigned char old_text[]="insert text here";
unsigned char new_text[]="HI-TECHS oftware";
void main(void)
{
const unsigned char*source=new_text;
far unsigned char*dest=(far unsigned char*)old_text;
unsigned char data;
unsigned int length=sizeof(new_text);
//Read abyte of data from flash address 1000h
data=flash_read(0x1000);
//Copy data from source to destination in flash.
//source does not have be in flash.
//Any required flash erasures done internally.
flash_write(source,length,dest);
//Erase block containing the address4000h
flash_erase(0x4000);
}
Сначала наступил на грабли, оказалось указатели source и dest необходимо объявлять всякий раз, перед использованием функций flash_read, flash_write, flash_erase как и указано в примере.