Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: указатель на flash
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
VladimirYU
Что то туплю.
имеется массив во флэш

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

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

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

В программе:

Func ( MASSIVE);

Выдается ошибка. Вопрос: как правильно передать указатель на flash в функцию.
IAR 4.12A, Заранее спасибо.
id_gene
Func(&MASSIVE[0])
Указатель - адрес первого элемента.
Непомнящий Евгений
void Func ( __flash char* Ptr_massive)
{
}

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


Спасибо, догнал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.