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

 
 
 
Reply to this topicStart new topic
> указатель на flash, Как передать в функцию?
VladimirYU
сообщение Jan 15 2008, 09:09
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Что то туплю.
имеется массив во флэш

__flash char MASSIVE [] = { 0xaa, 0xbb,...}

есть функция работающая с подобными массивами

void Func ( char* Ptr_massive)
{
..........
}

В программе:

Func ( MASSIVE);

Выдается ошибка. Вопрос: как правильно передать указатель на flash в функцию.
IAR 4.12A, Заранее спасибо.
Go to the top of the page
 
+Quote Post
id_gene
сообщение Jan 15 2008, 09:13
Сообщение #2


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



Func(&MASSIVE[0])
Указатель - адрес первого элемента.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Jan 15 2008, 09:15
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



void Func ( __flash char* Ptr_massive)
{
}

Func ( MASSIVE);
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Jan 15 2008, 09:21
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Цитата(id_gene @ Jan 15 2008, 13:13) *
Func(&MASSIVE[0])
Указатель - адрес первого элемента.


Это понятно, но компилятор говорит о не совместимости "char*" и "__flash char*", именно об это речь.
Func(MASSIVE) и Func(&MASSIVE[0]) эквивалентные вызовы.

Цитата(Непомнящий Евгений @ Jan 15 2008, 13:15) *
void Func ( __flash char* Ptr_massive)
{
}

Func ( MASSIVE);


Евгений, не поверишь, ругется, говорит что атрибут памяти __flash не может указываться среди параметров. Сам с этого варианта начинал.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Jan 15 2008, 09:26
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Сорри, поспешил. Вот так надо:
void Func ( char __flash * Ptr_massive)
{
}
__flash char * Ptr_massive - это означает, что сам указатель лежит во флеше...
Go to the top of the page
 
+Quote Post
VladimirYU
сообщение Jan 15 2008, 09:52
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782



Цитата(Непомнящий Евгений @ Jan 15 2008, 13:26) *
Сорри, поспешил. Вот так надо:
void Func ( char __flash * Ptr_massive)
{
}
__flash char * Ptr_massive - это означает, что сам указатель лежит во флеше...


Спасибо, догнал.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:54
Рейтинг@Mail.ru


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