реклама на сайте
подробности

 
 
> Как сказать по IARски?
Dog Pawlowa
сообщение Jan 7 2008, 10:10
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Адаптирую позаимствованное smile.gif

В произведении есть такие строки:
#define strncmp_flash(sram,sflash,n) strncmp_P(sram,PSTR(sflash),n)

strncmp_flash(cl,"help",4);

strncmp_P в IARе не нашел, PSTR тоже.
Не подскажете, кто праздновать устал, как это записать по IAR'ски?
Можно это сделать без копирования флэшевой строки в ОЗУ?
Спасибо.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Baser
сообщение Jan 7 2008, 10:30
Сообщение #2


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dog Pawlowa   Как сказать по IARски?   Jan 7 2008, 10:10
- - Сергей Борщ   Код#include <pgmspace.h> void Test(...   Jan 7 2008, 10:30
- - SSerge   А ещё рекомендую прочитать в доке на компилятор пр...   Jan 8 2008, 00:56
|- - Baser   Цитата(SSerge @ Jan 8 2008, 02:56) С испо...   Jan 8 2008, 07:43
|- - &-rey   2: SSerge А у вас какая версия IAR ? Дело в том чт...   Jan 11 2008, 10:00
|- - SSerge   > А у вас какая версия IAR ? 4.12A   Jan 11 2008, 16:36
- - Waso   День добрый! Назрел такой вопрос: как ИАР-у(4....   Jun 9 2008, 05:13
- - vet   он ее вроде бы и в данном случае игнорирует. можно...   Jun 9 2008, 05:21
- - Waso   Нет. всеравно не хочет. дело в том что там в цикле...   Jun 9 2008, 07:43
- - vet   Скомпилировал ради интереса этот пример. Код//#pra...   Jun 9 2008, 09:20
- - Waso   0_0 Красиво компилит! Только что заметил что у...   Jun 10 2008, 07:57
- - vet   приведенный мной выше листинг - это код THUMB. на ...   Jun 10 2008, 09:45
- - vashurin   Привет всем. Не стал создавать новую тему решил на...   Jul 15 2008, 06:24
- - vet   vashurin Код1 char __flash *p = (char __flash ...   Jul 15 2008, 09:52


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 03:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01806 секунд с 7
ELECTRONIX ©2004-2016