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

 
 
> Вопрос по размещению в памяти, AT91SAM7S256
АДИКМ
сообщение Feb 19 2007, 14:17
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 630
Регистрация: 2-08-05
Пользователь №: 7 294



Имеется массив данных (знакогенератор).
Как задать для него фиксированный адрес размещения в памяти (флеш)?
Нечто подобное ассемблерному org и т.д...
ИАР, Си.
Если можно с примером, весьма плаваю в этом вопросе.


--------------------
летаю на пепелаце...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Feb 19 2007, 15:46
Сообщение #2


Гуру
******

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



Цитата(АДИКМ @ 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.
А флеш это или не флеш определяется только адресом.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 5th July 2025 - 22:16
Рейтинг@Mail.ru


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