Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: bibishte в Oct 22, 2016, 17:19



Титла: avr проблем в Ubuntu 16.10
Публикувано от: bibishte в Oct 22, 2016, 17:19
Здравейте всички,
Опитвам се да компилирам и кача проект на Atmega8 контролер, но компилацията ми връща следната грешка:
Код:
** buffer overflow detected ***: /usr/lib/gcc/avr/4.9.2/../../../avr/bin/ld terminated
====== Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x790cb)[0x7f29b6e720cb]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x54)[0x7f29b6f132c4]
/lib/x86_64-linux-gnu/libc.so.6(+0x118240)[0x7f29b6f11240]
/lib/x86_64-linux-gnu/libc.so.6(+0x1177f9)[0x7f29b6f107f9]
/lib/x86_64-linux-gnu/libc.so.6(_IO_default_xsputn+0xa9)[0x7f29b6e76a09]
/lib/x86_64-linux-gnu/libc.so.6(_IO_vfprintf+0x106)[0x7f29b6e469d6]
/lib/x86_64-linux-gnu/libc.so.6(__vsprintf_chk+0x84)[0x7f29b6f10884]
/lib/x86_64-linux-gnu/libc.so.6(__sprintf_chk+0x7d)[0x7f29b6f107dd]
/usr/lib/gcc/avr/4.9.2/../../../avr/bin/ld(+0x39eca)[0x55ce19723eca]
/usr/lib/gcc/avr/4.9.2/../../../avr/bin/ld(+0xadb6d)[0x55ce19797b6d]
/usr/lib/gcc/avr/4.9.2/../../../avr/bin/ld(+0x33f24)[0x55ce1971df24]
/usr/lib/gcc/avr/4.9.2/../../../avr/bin/ld(+0x34af5)[0x55ce1971eaf5]
/usr/lib/gcc/avr/4.9.2/../../../avr/bin/ld(+0x349e7)[0x55ce1971e9e7]
/usr/lib/gcc/avr/4.9.2/../../../avr/bin/ld(+0x36f4a)[0x55ce19720f4a]
/usr/lib/gcc/avr/4.9.2/../../../avr/bin/ld(+0x25bf9)[0x55ce1970fbf9]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7f29b6e193f1]
/usr/lib/gcc/avr/4.9.2/../../../avr/bin/ld(+0x262ba)[0x55ce197102ba]
======= Memory map: ========
55ce196ea000-55ce19819000 r-xp 00000000 08:02 36045483                   /usr/lib/avr/bin/ld
55ce19a18000-55ce19a28000 r--p 0012e000 08:02 36045483                   /usr/lib/avr/bin/ld
55ce19a28000-55ce19a2c000 rw-p 0013e000 08:02 36045483                   /usr/lib/avr/bin/ld
55ce19a2c000-55ce19a33000 rw-p 00000000 00:00 0
55ce1a833000-55ce1a8bb000 rw-p 00000000 00:00 0                          [heap]
7f29b65c7000-7f29b65dd000 r-xp 00000000 08:02 1835071                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f29b65dd000-7f29b67dc000 ---p 00016000 08:02 1835071                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f29b67dc000-7f29b67dd000 r--p 00015000 08:02 1835071                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f29b67dd000-7f29b67de000 rw-p 00016000 08:02 1835071                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f29b67de000-7f29b67ee000 r-xp 00000000 08:02 30543174                   /usr/lib/gcc/avr/4.9.2/liblto_plugin.so.0.0.0
7f29b67ee000-7f29b69ee000 ---p 00010000 08:02 30543174                   /usr/lib/gcc/avr/4.9.2/liblto_plugin.so.0.0.0
7f29b69ee000-7f29b69ef000 r--p 00010000 08:02 30543174                   /usr/lib/gcc/avr/4.9.2/liblto_plugin.so.0.0.0
7f29b69ef000-7f29b69f0000 rw-p 00011000 08:02 30543174                   /usr/lib/gcc/avr/4.9.2/liblto_plugin.so.0.0.0
7f29b69f0000-7f29b6df9000 r--p 00000000 08:02 30410509                   /usr/lib/locale/locale-archive
7f29b6df9000-7f29b6fb6000 r-xp 00000000 08:02 1835314                    /lib/x86_64-linux-gnu/libc-2.24.so
7f29b6fb6000-7f29b71b6000 ---p 001bd000 08:02 1835314                    /lib/x86_64-linux-gnu/libc-2.24.so
7f29b71b6000-7f29b71ba000 r--p 001bd000 08:02 1835314                    /lib/x86_64-linux-gnu/libc-2.24.so
7f29b71ba000-7f29b71bc000 rw-p 001c1000 08:02 1835314                    /lib/x86_64-linux-gnu/libc-2.24.so
7f29b71bc000-7f29b71c0000 rw-p 00000000 00:00 0
7f29b71c0000-7f29b71c3000 r-xp 00000000 08:02 1835416                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f29b71c3000-7f29b73c2000 ---p 00003000 08:02 1835416                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f29b73c2000-7f29b73c3000 r--p 00002000 08:02 1835416                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f29b73c3000-7f29b73c4000 rw-p 00003000 08:02 1835416                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f29b73c4000-7f29b73dd000 r-xp 00000000 08:02 1835876                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7f29b73dd000-7f29b75dc000 ---p 00019000 08:02 1835876                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7f29b75dc000-7f29b75dd000 r--p 00018000 08:02 1835876                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7f29b75dd000-7f29b75de000 rw-p 00019000 08:02 1835876                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7f29b75de000-7f29b7603000 r-xp 00000000 08:02 1835306                    /lib/x86_64-linux-gnu/ld-2.24.so
7f29b77d2000-7f29b77d4000 rw-p 00000000 00:00 0
7f29b77e5000-7f29b77e6000 rw-p 00000000 00:00 0
7f29b77e6000-7f29b77f8000 r--p 00000000 08:02 32390828                   /usr/share/locale-langpack/bg/LC_MESSAGES/ld.mo
7f29b77f8000-7f29b77ff000 r--s 00000000 08:02 30806974                   /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f29b77ff000-7f29b7802000 rw-p 00000000 00:00 0
7f29b7802000-7f29b7803000 r--p 00024000 08:02 1835306                    /lib/x86_64-linux-gnu/ld-2.24.so
7f29b7803000-7f29b7804000 rw-p 00025000 08:02 1835306                    /lib/x86_64-linux-gnu/ld-2.24.so
7f29b7804000-7f29b7805000 rw-p 00000000 00:00 0
7ffc9798c000-7ffc979ad000 rw-p 00000000 00:00 0                          [stack]
7ffc979c0000-7ffc979c2000 r--p 00000000 00:00 0                          [vvar]
7ffc979c2000-7ffc979c4000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

Това са версиите на gcc-avr, avr-libc, и binutils:
       binutils - 2.26.20160125+Atmel3.5.3-1(yakkety)
       avr-libc - 1:1.8.0+Atmel3.5.0-1(yakkety)
       gcc-avr - 1:4.9.2+Atmel3.5.0-1(yakkety)


Също така използвам Ubuntu 16.10
 :o ???
същата програма я пуснах да се компилира от друг компютър на който съм качила Gento, и работи. Това са версиите на gcc-avr, avr-libc, и binutils:
      avr-libc - 1.8.1
      binutils - 2.24
      gcc-avr - 4.9.3


Предполагам че версиите на gcc-avr, avr-libc, и binutils на компютърът с  Ubuntu не са съвместими, но е възможно и да има грешка в binutils файлът.

Благодаря ви за помощта предварително!! :)


Титла: Re: avr проблем в Ubuntu 16.10
Публикувано от: kierenski в Oct 22, 2016, 19:08
Имаш проблем в съвместимостта на avr-glibc и glibc на линукса защото са компилирани за различни версии  и avr-glibc търси функция която я няма или не е същата.
Компилирай avr-glibc от сорс код за съответния линукс и проблема ще изчезне.

п.п. този контролер е доста стар и не е добър избор за работа вече. Избери си някой с Cortex  M0 ядро и всичко ще бъде отлично и със значително по-малка консумация.


Титла: Re: avr проблем в Ubuntu 16.10
Публикувано от: bibishte в Oct 22, 2016, 20:07
Благодаря за отговора!
Нека компилацията от сорс файл да бъде последен вариант. Желая да е от хранилището ми.
Не мисля че за този проект е необходим толкова мощен процесор, сарата атмега е достатъчна(пък е й малко по евтина) ;)
https://github.com/bibishte/firmwares


Титла: Re: avr проблем в Ubuntu 16.10
Публикувано от: orangutan_baby в Oct 22, 2016, 20:43
Няма друг вариянт освен да го направиш с по-мощния. В линукс това е скупено. Защо го правиш по най-сложния начин, а не под Windows, сякаш пред гаджето си ще се фръцкаш.


Титла: Re: avr проблем в Ubuntu 16.10
Публикувано от: bibishte в Oct 22, 2016, 20:57
Нека да се отнесем професионално към въпроса. Под Линукс ми е по-лесно и това си е моето предпочитание! За това съм писала в Линукс-бг а не в Уиндоус-бг!
EDIT: Това вече е работеш проект и не мисля да го променям заради един компилатор или заради по-мощен процесор, както и заради една бълха няма да си изгоря къщата!


Титла: Re: avr проблем в Ubuntu 16.10
Публикувано от: kierenski в Oct 23, 2016, 11:05
bibishte, ARM процесорите Cortex M0 и Cortex M0+ са колкото мегите само че са 32-битови и нещата стават по-лесно с тях. Доколкото върви цена мегите са 4 пъти по скъпи от Cotex ядрата, а тактовата честота винаги може да се намали без проблеми.
Разбира се за стар проект не си заслужава смяна, но моя съвет е за новите неща да преминеш на Cortex ядра. STM32 серията е доста разпространена в България и няма да имаш проблеми с доставката.


Титла: Re: avr проблем в Ubuntu 16.10
Публикувано от: bibishte в Oct 23, 2016, 12:24
Да, разбирам. В момента съм в процес на разработка на борд за тях, но имат един единствен проблем, retention на паметта е по-малък от 20 години  :'( на ST чиповете като low cost. Но на Atmel и NXP са хубави на са по-скъпи. И архитектурата на Atmega/Tiny/XMega е доста осъвършенствана, може да е стара но е доста изчистена. Но не мисля да променям този проект за сега. :)


Титла: Re: avr проблем в Ubuntu 16.10
Публикувано от: kierenski в Oct 23, 2016, 12:56
Всеки със своята разработка  ;D
Да STM32 са за битови изделия, но ако искаш военни разработки и медицински такива има други които са много по-добри дори и от Atmel. Всичко е според нуждите.


Титла: Re: avr проблем в Ubuntu 16.10
Публикувано от: bibishte в Oct 23, 2016, 19:01
Съгласна съм  ;D


Титла: Re: avr проблем в Ubuntu 16.10
Публикувано от: Любо в Nov 08, 2017, 13:50
Здравейте!

Съжалявам, че съживявам темата, обаче е оставена без отговор, а ми излиза на първо място при търсене на проблема в Гугъл, така че нека да помогнем на бъдещите със същия проблем.

При мен се получи същата грешка. Извежда ми абсолютно същите редове и адреси. Версиите на пакетите ми са същите, само версията на Убунту ми е 17.04.

Ето какво го оправи при мен:

Поне при мен грешката се проявява, само ако се опитам да компилирам посредством CMake, ползвайки например инструментариума от тук: https://github.com/mkleemann/cmake-avr ($2) (има подобни и на други места). Ако опитам да компилирам програма директно от командния ред, всичко работи.

Оказва се, че във файловете на CMake, когато се извършва самото компилиране, към свързващата програма, освен разни други опции, е подадена и следната (директно от файла на CMake):

Код:
... -Wl,-Map,${MAP_FILE} ...

Тоест реално свързващата програма получава тази опция:

Код:
... -Map <име на файл>.map ...

Целта е да се създаде файл „map“ (повече за това тук: http://ftp://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_mono/ld.html#IDX130), в който има разни интересни работи, за които може да се прочете тук: http://www.atmel.com/webdoc/avrlibcreferencemanual/group__demo__project_1demo_project_map.html ($2)

Изглежда това се чупи, поне в тази версия на пакетите.

Решението е да се премахне подаването на тази опция към свързващата програма. Така този файл няма да се създаде, но той така или иначе е страничен и няма пряко отношение към самата програма. В случая на CMake, този файл не се ползва за нищо, само се създава (и трие при „clean“). След премахване на опцията, програмата се компилира и свързва без проблем.

Успех!


Титла: Re: avr проблем в Ubuntu 16.10
Публикувано от: 10101 в Nov 08, 2017, 15:08
 [_]3 [_]3 [_]3

За поста.