Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как поместить char const* во флеш
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Zlumd
Пытаюсь сделать следующее:
Код
const char a1[]="a1";
const char a2[]="a2";
const char a3[]="a3";
const char*aa[]={a1,a2,a3};
a1, a2, a3 линкер ложит во флеш, а аа линкер ложит в RAM.
Как заставить линкер положить aa во флеш?
Пробовал делать:
Код
const char*aa[]@".rodata"={a1,a2,a3};
Все равно линкер ложит aa в RAM.
Единственный вариант, который работает, это:
Код
const long aa[]={(long)a1,(long)a2,(long)a3};
Но это некрасиво, потом везде в программе приходится пребразовывать long обратно в char*.
Может кто-нибудь подскажет более красивое решение?
shreck
Цитата(Zlumd @ Jul 6 2012, 08:50) *
Как заставить линкер положить aa во флеш?

Код
const char* const aa[] = ...

Оно?
prottoss
Цитата(Zlumd @ Jul 6 2012, 07:50) *
Пытаюсь сделать следующее:

Вместо const char* aa[]={a1,a2,a3}; /* указатель на константу */

сделайте const char* const aa[]={a1,a2,a3}; /* константный указатель на константу */
Zlumd
Цитата(shreck @ Jul 6 2012, 09:04) *
Код
const char* const aa[] = ...
Оно?
Оно. Спасибо.
Цитата(prottoss @ Jul 6 2012, 09:09) *
сделайте const char* const aa[]={a1,a2,a3}; /* константный указатель на константу */
Действительно работает. Спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.