|
Не могу выполнить команду strcpy над массивами, Один массив во флешь. другой в оперативке |
|
|
|
Feb 21 2007, 06:52
|

Местный
  
Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517

|
Вот код. Думаю, что неправильно объявляю переменные char temp_inf[]=""; __flash char const knopka2[]={"knopka2"}; strcpy(temp_inf, knopka2); эту строчку не хочет компелить Где ошибка  ? Или подскажите плиз, как это правильно делается
|
|
|
|
|
 |
Ответов
|
Feb 21 2007, 10:01
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(*SERG @ Feb 21 2007, 05:52)  strcpy(temp_inf, knopka2); эту строчку не хочет компелить Где ошибка  ? Ошибка в том, что вы используете функцию, которой необходимо, чтобы обе строки были в ОЗУ. Для доступа во флеш используются совсем другие команды ассемблера. Поищите подходящую функцию в pgmspace.h Цитата(*SERG @ Feb 21 2007, 08:57)  Так понял что можно ещё через указатель работать, как лучше то? Что значит "еще"? ваши temp_inf и knopka2 и есть самые настоящие указатели.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Feb 21 2007, 12:56
|

Местный
  
Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517

|
Цитата(Сергей Борщ @ Feb 21 2007, 10:01)  Цитата(*SERG @ Feb 21 2007, 05:52)  strcpy(temp_inf, knopka2); эту строчку не хочет компелить Где ошибка  ? Ошибка в том, что вы используете функцию, которой необходимо, чтобы обе строки были в ОЗУ. Для доступа во флеш используются совсем другие команды ассемблера. Поищите подходящую функцию в pgmspace.h Цитата(*SERG @ Feb 21 2007, 08:57)  Так понял что можно ещё через указатель работать, как лучше то? Что значит "еще"? ваши temp_inf и knopka2 и есть самые настоящие указатели. Вот пример из пдф, что же тогда за переменная msg Examples A program defines a couple of strings that are stored in flash memory: __flash char str1[] = "Message 1"; __flash char str2[] = "Message 2"; The program creates a __flash pointer to point to one of these strings, and assigns it to str1: char __flash *msg; msg=str1;
|
|
|
|
|
Feb 21 2007, 14:47
|

Местный
  
Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517

|
Цитата(prottoss @ Feb 21 2007, 13:20)  Цитата(*SERG @ Feb 21 2007, 16:56)  Вот пример из пдф, что же тогда за переменная msg Examples A program defines a couple of strings that are stored in flash memory: __flash char str1[] = "Message 1"; __flash char str2[] = "Message 2"; The program creates a __flash pointer to point to one of these strings, and assigns it to str1: char __flash *msg; msg=str1; str1, str2 и msg - УКАЗАТЕЛИ НА ТИП __flash charТ.е. в перменной msg находиться адрес начала массива str1, так чтоли? И если так, то каким образом массив из флешь в озу можно переписать?
|
|
|
|
Сообщений в этой теме
*SERG Не могу выполнить команду strcpy над массивами Feb 21 2007, 06:52 mihask Цитата(*SERG @ Feb 21 2007, 09:52) Вот ко... Feb 21 2007, 08:52 *SERG Да вроде разобрался, надо подключить библиотеку #i... Feb 21 2007, 09:57    Сергей Борщ Цитата(*SERG @ Feb 21 2007, 13:47) Т.е. в... Feb 21 2007, 15:19     *SERG Цитата(Сергей Борщ @ Feb 21 2007, 15:19) ... Feb 21 2007, 19:15      prottoss Цитата(*SERG @ Feb 21 2007, 23:15) Цитата... Feb 21 2007, 19:31       *SERG Цитата(prottoss @ Feb 21 2007, 19:31) Цит... Feb 21 2007, 19:50       xemul Может просто слегка подправить стандартную strcpy?... Feb 21 2007, 20:49        exSSerge IAR для AVR имеет специальное расширение для указа... Feb 21 2007, 21:27      Сергей Борщ Цитата(*SERG @ Feb 21 2007, 18:15) Пока п... Feb 21 2007, 19:57    prottoss Цитата(*SERG @ Feb 21 2007, 18:47) каким ... Feb 21 2007, 16:00 *SERG Хорошо, порасбираюсь что к чему. спасибо!... Feb 22 2007, 06:21
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|