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

 
 
> IAR 4.20: Всю оставшуюся память - хипу
meister
сообщение Jan 31 2009, 10:20
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 219
Регистрация: 20-11-07
Пользователь №: 32 484



Как написать в xcl файле, чтобы все оставшиеся адреса из диапазона отдавались указанному сегменту (HEAP)?

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Jan 31 2009, 15:24
Сообщение #2


Гуру
******

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



Цитата(meister @ Jan 31 2009, 12:20) *
Как написать в xcl файле, чтобы все оставшиеся адреса из диапазона отдавались указанному сегменту (HEAP)?
Боюсь, что с библиотечной реализацией поддержки кучи - никак. Линкеру можно задать только максимальный размер сегмента (указанием доступных адресов) и минимальный (тем методом, которым задаются размеры стеков). Реализовать ваше желание можно объявив два сегмента, с привязкой к началу и концу свободной памяти, и заставив менеджер кучи брать память по началу первого и концу второго сегментов, а не по началу и размеру сегмента HEAP. В скрипте это может выглядеть примерно так:
Код
было:

-D_CSTACK_SIZE=(1024)
-D_IRQ_STACK_SIZE=(.1024)
-D_HEAP_SIZE=(.1024*8)

-Z(DATA)DATA_I,DATA_Z,DATA_N=RAMSTART-RAMEND
-Z(DATA)HEAP+_HEAP_SIZE=RAMSTART-RAMEND

-Z(DATA)CSTACK+_CSTACK_SIZE#RAMSTART-RAMEND
-Z(DATA)IRQ_STACK+_IRQ_STACK_SIZE#RAMSTART-RAMEND
будет:

-Z(DATA)DATA_I,DATA_Z,DATA_N=RAMSTART-RAMEND
-Z(DATA)HEAP_START=RAMSTART-RAMEND

-Z(DATA)CSTACK+_CSTACK_SIZE#RAMSTART-RAMEND
-Z(DATA)IRQ_STACK+_IRQ_STACK_SIZE#RAMSTART-RAMEND
-Z(DATA)HEAP_END#RAMSTART-RAMEND
А вот как исправить библиотечный менеджер, не имея его исходников - даже и не подскажу. Можете поискать на форуме, zltigo выкладывал свой менеджер, его вполне можно подточить.


--------------------
На любой вопрос даю любой ответ
"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 Текстовая версия Сейчас: 23rd August 2025 - 22:59
Рейтинг@Mail.ru


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