Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Работа с флеш-памятью под msc1210
Отправлено
lexx_ryazanov 03 октября 2008 г. 10:33
Пишу программу для контроллера msc1210 (8051). Пишу на си. В качестве среды разработки использую Keil uVision.
Требуется в процессе работы программы сохранять во флеш-память некоторые значения. Полез в руководство контроллера, там предложен пример на си, в котором используется некая функция write_flash_chk():
while(1)
{
// copy the page from FLASH to RAM
for(i=0;i<PAGE_SIZE;i++)
Buffer[i] = *pFlashPage++; // increment the counter
Buffer[0] += 1;
// now erase the page
page_erase(PAGE_START, 0xff, DATA_FLASH);
Result = 0;
// and write the modified contents back into flash
for(i=0;i<PAGE_SIZE;i++)
Result |= write_flash_chk (PAGE_START+i, Buffer[i], DATA_FLASH);
// re-read the counter
pFlashPage = (char xdata *) PAGE_START;
…
}
Кое как я нашел заголовочный файл и библиотеку, где эта функция write_flash_chk() реализуется. Но использовать ее так и не смог, потому что третий параметр DATA_FLASH нигде и никак не описан. Ни в примере, ни в библиотеках, нигде. Даже гуглом пробовал искать – не нашел. Пробовал подставлять вместо нее какие-нибудь стандартные значения – 0, 1, адрес начала флеш памяти, адрес в который собираюсь писать – не помогает.
Помогите разобраться. Дайте хоть один пример работы с флеш на си, который я смог бы у себя на контроллере воспроизвести.
Составить ответ | Вернуться на конференцию
Ответы