Перейти к содержанию
    

eCos: часто встерчающаяся ошибка

Собираем 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: помогите, плз, кто встречался с подобными ошибками!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Собираем 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: помогите, плз, кто встречался с подобными ошибками!!!

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Единственный способ ужать - это проанализировать карту загрузки, и убрать лишнее из конфигурации. У вас случай такой - руками придется делать. Может, что из функциональности убрать - net он харчистый. При настройке запросто можно получить несобираемую конструкцию, поэтому конфиги (собираемые) лучше хранить, я обычно их нумерую, тогда можно и не запутаться. Сами сборки можно и вытирать, если место не хватает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Единственный способ ужать - это проанализировать карту загрузки, и убрать лишнее из конфигурации. У вас случай такой - руками придется делать. Может, что из функциональности убрать - net он харчистый. При настройке запросто можно получить несобираемую конструкцию, поэтому конфиги (собираемые) лучше хранить, я обычно их нумерую, тогда можно и не запутаться. Сами сборки можно и вытирать, если место не хватает.

 

Спасибо за совет! Завтра попробую!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А памяти-то всего 64 RAM и 256 flash.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...