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

 
 
> ILINK: Размещение секций в два региона памяти
jcxz
сообщение Dec 24 2012, 03:28
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Имеется довольно большой проект для LPC1754, в котором два несмежных региона RAM.
IAR 5.50.1.
Одного региона для размещения всех секций .bss программы не хватает. Пытаюсь заставить линкёр размещать в два региона, но что-то не получается.
Судя по документации два несмежных региона можно описать как:
define region RAM_region = mem:[from 0x10000000 size 0x4000] | mem:[from 0x2007C000 size 0x4000];
и потом:
place in RAM_region { rw, first block CSTACK, section .FRAM, block HEAP, section .bssStk };
Но не работает - линкёр выдаёт ошибку, что не может разместить в первую часть региона:
Error[Lp015]: committed sections in [0x10000000-0x10003fff] too large to fit -- code may need too many veneers
Почему он не пытается использовать вторую часть????

Если пытаться определить как 2 региона:
define region RAM_regionA = mem:[from 0x10000000 size 0x4000];
define region RAM_regionB = mem:[from 0x2007C000 size 0x4000];
то при попытке направить rw-секции в разные регионы:
place in RAM_regionA { rw, ... };
place in RAM_regionB { rw, ... };
Выдаётся сообщение об ошибке:
Error[Lc037]: ambiguous section match: "zi section .bss in ade.o" matches more than one pattern

Желания определять для каждой переменной свою отдельную секцию, отличную от .bss - нет, ибо это - криво.
Надо именно - размазать секцию .bss по двум регионам.
Типа как это просто и удобно делается в CCS от TI:
.bss : { *(.bss) } >> DARAM1 | DARAM2 | DARAM7

Неужто в IAR об этом не подумали?????
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 16:19
Рейтинг@Mail.ru


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