Цитата(Dog Pawlowa @ Jan 7 2008, 12:10)

strncmp_P в IARе не нашел.
Не подскажете, кто праздновать устал, как это записать по IAR'ски?
Можно это сделать без копирования флэшевой строки в ОЗУ?
strncmp_P сравнение строк в ИАРе есть. Из хелпа:
Цитата
int strncmp_P(const char *s1, PGM_P s2, size_t n);
Identical to strncmp except that the string s2 is in flash memory, not in data memory.
This function is available in both the CLIB and the DLIB library.
Эта функция как раз и сравнивает без копирования.
Если не хочется применять библиотечную функцию, могу предложить свою:
Код
//==============================================================//
// Compare n bytes strings from SRAM and FLASH //
// Return: 0 - strings are identical, 1 - not equal //
//==============================================================//
unsigned char TextCmp(char *str1, char __flash *str2, unsigned char n)
{
unsigned char i, result = 0;
for (i=0; i<n; i++) result |= *str1++ ^ *str2++;
return result;
}
Сообщение отредактировал IgorKossak - Jan 7 2008, 14:05