Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по размещению в памяти
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
АДИКМ
Имеется массив данных (знакогенератор).
Как задать для него фиксированный адрес размещения в памяти (флеш)?
Нечто подобное ассемблерному org и т.д...
ИАР, Си.
Если можно с примером, весьма плаваю в этом вопросе.
Сергей Борщ
Цитата(АДИКМ @ Feb 19 2007, 13:17) *
ИАР, Си.
Если можно с примером, весьма плаваю в этом вопросе.
Путей как всегда два.
1) "прямой" - указать адрес
Код
#pragma location = 0x12345678;
uint8_t const CharGen[]
= {...};
или
uint8_t const CharGen[] @ 0x12345678
= {...};


2) "правильный" - Выделить отдельный сегмент под эти данные и указать место размещения этого сегмента линкеру:
Код
#pragma segment = "MY_CONST_SEG"
#pragma location = "MY_CONST_SEG"
uint8_t const CharGen[]
= {...};
или
#pragma segment = "MY_CONST_SEG"
uint8_t const CharGen[] @ "MY_CONST_SEG"

и в .xcl:
-Z(DATA)MY_CONST_SEG=0x12345678

EVARM_CompilerRef.pdf->Using the compiler->Placing code and data->Data placement at an absolute location.
А флеш это или не флеш определяется только адресом.
АДИКМ
Цитата(Сергей Борщ @ Feb 19 2007, 16:46) *
Цитата(АДИКМ @ Feb 19 2007, 13:17) *

ИАР, Си.
Если можно с примером, весьма плаваю в этом вопросе.
Путей как всегда два.
1) "прямой" - указать адрес
Код
#pragma location = 0x12345678;
uint8_t const CharGen[]
= {...};
или
uint8_t const CharGen[] @ 0x12345678
= {...};


2) "правильный" - Выделить отдельный сегмент под эти данные и указать место размещения этого сегмента линкеру:
Код
#pragma segment = "MY_CONST_SEG"
#pragma location = "MY_CONST_SEG"
uint8_t const CharGen[]
= {...};
или
#pragma segment = "MY_CONST_SEG"
uint8_t const CharGen[] @ "MY_CONST_SEG"

и в .xcl:
-Z(DATA)MY_CONST_SEG=0x12345678

EVARM_CompilerRef.pdf->Using the compiler->Placing code and data->Data placement at an absolute location.
А флеш это или не флеш определяется только адресом.




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