Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: eCos: часто встерчающаяся ошибка
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
ZAA
Собираем httpd-сервер на основе eCos. Контроллер AT91SAM7x256. В качестве основы взята конфигурация eCos - NET. Следующая ошибка встертилась:
1) при попытке собрать тесты (причём и в других конфигурациях тоже встречалась не раз). Пришлось в мэйкфайле закомментировать те тесты, на которые ругался make, убрать standalone stack, lwip stack, урезать размеры некоторых буферов... В общем кое-как тесты собрались
2) при компиляции сервера после устранения всех ошибок возникла та же ошибка:

/src/gnutools/arm-elf/bin/../lib/gcc-lib/arm-elf/3.2.1/../../../../arm-elf/bin/ld: address 0x 1415c8 of test section .rodata is not within region rom
/src/gnutools/arm-elf/bin/../lib/gcc-lib/arm-elf/3.2.1/../../../../arm-elf/bin/ld: address 0x 1415c8 of test section .rodata1 is not within region rom
/src/gnutools/arm-elf/bin/../lib/gcc-lib/arm-elf/3.2.1/../../../../arm-elf/bin/ld: address 0x 1415c8 of test section .fixup is not within region rom
/src/gnutools/arm-elf/bin/../lib/gcc-lib/arm-elf/3.2.1/../../../../arm-elf/bin/ld: address 0x 1415c8 of test section .gcc_except_table is not within region rom
/src/gnutools/arm-elf/bin/../lib/gcc-lib/arm-elf/3.2.1/../../../../arm-elf/bin/ld: address 0x 212478 of test section .bss is not within region ram
collect2: ld returned 1 exit status
make: *** [test] Ошибка 1

help.gif помогите, плз, кто встречался с подобными ошибками!!!
v_shamaev
Цитата(ZAA @ Apr 1 2008, 14:28) *
Собираем httpd-сервер на основе eCos. Контроллер AT91SAM7x256. В качестве основы взята конфигурация eCos - NET. Следующая ошибка встертилась:
1) при попытке собрать тесты (причём и в других конфигурациях тоже встречалась не раз). Пришлось в мэйкфайле закомментировать те тесты, на которые ругался make, убрать standalone stack, lwip stack, урезать размеры некоторых буферов... В общем кое-как тесты собрались
2) при компиляции сервера после устранения всех ошибок возникла та же ошибка:

/src/gnutools/arm-elf/bin/../lib/gcc-lib/arm-elf/3.2.1/../../../../arm-elf/bin/ld: address 0x 1415c8 of test section .rodata is not within region rom
/src/gnutools/arm-elf/bin/../lib/gcc-lib/arm-elf/3.2.1/../../../../arm-elf/bin/ld: address 0x 1415c8 of test section .rodata1 is not within region rom
/src/gnutools/arm-elf/bin/../lib/gcc-lib/arm-elf/3.2.1/../../../../arm-elf/bin/ld: address 0x 1415c8 of test section .fixup is not within region rom
/src/gnutools/arm-elf/bin/../lib/gcc-lib/arm-elf/3.2.1/../../../../arm-elf/bin/ld: address 0x 1415c8 of test section .gcc_except_table is not within region rom
/src/gnutools/arm-elf/bin/../lib/gcc-lib/arm-elf/3.2.1/../../../../arm-elf/bin/ld: address 0x 212478 of test section .bss is not within region ram
collect2: ld returned 1 exit status
make: *** [test] Ошибка 1

help.gif помогите, плз, кто встречался с подобными ошибками!!!


Так прямо же написано - не влезает в память. Если лень собирать тесты по-одному - поправьте ld-скрипт, подкиньте памяти - оно все и соберется. Только вот пускать те тесты, которые не вмещаются в память не надо.

P.S. Для какой модели памяти собирали eCos?
ZAA
Цитата(v_shamaev @ Apr 1 2008, 15:19) *
Так прямо же написано - не влезает в память. Если лень собирать тесты по-одному - поправьте ld-скрипт, подкиньте памяти - оно все и соберется. Только вот пускать те тесты, которые не вмещаются в память не надо.

P.S. Для какой модели памяти собирали eCos?


Спасибо. Но собственно говоря, меня больше беспокоит само приложение сервера. Ему не хватает памяти процессора. Увеличили в target.ld и RAM, и ROM - приложение собралось, но elf-файл слишком много весит - 3,2 Мб, а полученный из него бинарник - 270 с лишним кБ. А памяти-то всего 64 RAM и 256 flash. Как-нибудь можно "ужать" сами экосовские библиотеки при сборке? какие пакеты можно убрать, чтоб это не нарушало впоследствии работу приложения??? Ещё раз спасибо! smile.gif
v_shamaev
Цитата(ZAA @ Apr 1 2008, 17:04) *
Спасибо. Но собственно говоря, меня больше беспокоит само приложение сервера. Ему не хватает памяти процессора. Увеличили в target.ld и RAM, и ROM - приложение собралось, но elf-файл слишком много весит - 3,2 Мб, а полученный из него бинарник - 270 с лишним кБ. А памяти-то всего 64 RAM и 256 flash. Как-нибудь можно "ужать" сами экосовские библиотеки при сборке? какие пакеты можно убрать, чтоб это не нарушало впоследствии работу приложения??? Ещё раз спасибо! smile.gif

Единственный способ ужать - это проанализировать карту загрузки, и убрать лишнее из конфигурации. У вас случай такой - руками придется делать. Может, что из функциональности убрать - net он харчистый. При настройке запросто можно получить несобираемую конструкцию, поэтому конфиги (собираемые) лучше хранить, я обычно их нумерую, тогда можно и не запутаться. Сами сборки можно и вытирать, если место не хватает.
ZAA
Цитата(v_shamaev @ Apr 1 2008, 16:36) *
Единственный способ ужать - это проанализировать карту загрузки, и убрать лишнее из конфигурации. У вас случай такой - руками придется делать. Может, что из функциональности убрать - net он харчистый. При настройке запросто можно получить несобираемую конструкцию, поэтому конфиги (собираемые) лучше хранить, я обычно их нумерую, тогда можно и не запутаться. Сами сборки можно и вытирать, если место не хватает.


Спасибо за совет! Завтра попробую!
axle
Цитата(ZAA @ Apr 1 2008, 20:04) *
А памяти-то всего 64 RAM и 256 flash.

64 чего? кБ? Да при таком количестве RAM надо забыть о стеке FreeBSD. Посмотрите хотя бы на опцию CYGPKG_NET_MEM_USAGE - память выделенная для сетевого буфера. Ее значение вычисляется как (256*1024)+(CYGPKG_NET_MAXSOCKETS*1024), т.е. 272 кБ по умолчанию. lol.gif

Посмотрите на стек lwIP. Требования к памяти меньше, но какие точно сказать не могу, я с ним не работал.
ZAA
Цитата(axle @ Apr 2 2008, 09:44) *
64 чего? кБ? Да при таком количестве RAM надо забыть о стеке FreeBSD. Посмотрите хотя бы на опцию CYGPKG_NET_MEM_USAGE - память выделенная для сетевого буфера. Ее значение вычисляется как (256*1024)+(CYGPKG_NET_MAXSOCKETS*1024), т.е. 272 кБ по умолчанию. lol.gif

Посмотрите на стек lwIP. Требования к памяти меньше, но какие точно сказать не могу, я с ним не работал.



Все ж таки удалось собрать этот FreeBSD путем всяческих урезаний и сокращения памяти (которая в конфигурации самого стека). Собрался и тест ping. Но ethernet ведет себя очень странно. Наверняка это из-за наших ухищрений происходит. 2 нижние лампочки моргают одновременно с периодичностью где-то в секунду, при этом Link вообще мелькает с большой частотой. Ну и не пингуется ничего соответственно. С чем именно может быть связана такое неправильное поведение ethernet'а???
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.