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

 
 
> резервирование места в ОЗУ
yung
сообщение Jan 13 2012, 14:37
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



Здравствуйте! Работаю с Atmega128 и компилятором ICC6.31. Возникла необходимость, чтобы ряд глобальных переменных находился по фиксированным адресам. Сделал это путем, предложенным встроенным application builder-ом

void mapping_init(void)
{
asm(
".area memory(abs)\n"
".org 0x0a00\n"
" _temp1:: .blkb 4\n"

".text\n"
);
}

В АВР-студио эта процедура не видится (стоит ret) вместо тела. А компилятор не видит, что эта область занята и пытается по тем же адресам расположить другие переменные. Можно ли как-то объяснить ему, что место уже занято?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
yung
сообщение Jan 14 2012, 07:16
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



Цитата(Палыч @ Jan 14 2012, 09:58) *
Но, можно сделать другой финт: сказать транслятору, что размер памяти меньше, чем есть на самом деле, а остаток использовать для распределения переменных по фиксированным адресам.

А можно поподробнее? И не будет ли проблем в том, что у меня еще 128кБ внешней памяти стоит?
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jan 14 2012, 20:25
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(yung @ Jan 14 2012, 11:16) *
А можно поподробнее?

1. Menu -> Project -> Options -> Target
2. Device Coinfiguration = Custom
3. Internal SRAM. Если есть внешнее ОЗУ, то задаём ключем -bdata:XXXX.YYYY в Other Options

Если желаем освободить область в:
1) нижних адресах Internal RAM - увеличиваем Data Address
2) верхних адресах Internal RAM - уменьшаем Data Memory
3) нижних адресах External RAM - увеличиваем значение XXXX в ключе -bdata:XXXX.YYYY
4) верхних адресах External RAM - уменьшаем значение YYYY в ключе -bdata:XXXX.YYYY

Цитата(yung @ Jan 14 2012, 11:16) *
И не будет ли проблем в том, что у меня еще 128кБ внешней памяти стоит?
Если посмотреть в DS:
Цитата
Up to 64Kbytes Optional External Memory Space
Вероятно речь идет о внешней памяти, подключенной минуя шины адреса\данных МК?
Go to the top of the page
 
+Quote Post



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

 


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


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