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

 
 
> библиотеки для cortex-m, (GNU toolchain)
Doka
сообщение Nov 15 2009, 12:23
Сообщение #1


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



собрал newlib для arm-none-eabi с опциями:
Код
../configure --target=arm-none-eabi --enable-interwork --disable-newlib-supplied-syscalls --with-gnu-ld --with-gnu-as --disable-shared


при сборке простейшего приложения выдаётся:
Код
$ cat math.c
#include <math.h>
int main(int argc,char** argv)
{
    double a=1.33,b=2.44;
    double c;
    c=sin(a)+cos(b);
    return 0;
}


Код
$ arm-none-eabi-gcc math.c -o math.o -lm    


arm-none-eabi-gcc math.c -o math.o -lm
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x14): undefined reference to `_exit'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0xe): undefined reference to `_sbrk'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text._write_r+0x12): undefined reference to `_write'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text._close_r+0xe): undefined reference to `_close'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text._lseek_r+0x12): undefined reference to `_lseek'
/home/doka/cortex-4.4.2/lib/gcc/arm-none-eabi/4.4.2/../../../../arm-none-eabi/lib/libc.a(lib_a-readr.o): In function `_read_r':
readr.c:(.text._read_r+0x12): undefined reference to `_read'
collect2: ld returned 1 exit status
make: *** [math] Error 1



еще насторожилом отсутствие lib/thumb2 в директории установки.. присутствует только lib/thumb

а если смотреть примеры поставляемых с LPC17xx make-файлов там наличествует lib/thumb2:
Код
THUMB2GNULIB     ='$(GNU_INSTALL_ROOT)/lib/gcc/arm-none-eabi/$(GNU_VERSION)/thumb2'
THUMB2GNULIB2    ='$(GNU_INSTALL_ROOT)/arm-none-eabi/lib/thumb2'
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Doka
сообщение Nov 16 2009, 08:03
Сообщение #2


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



>>если при сборке GCC не ковырять руками src/gcc/config/arm/t-arm-elf, то tumb2 будет лежать в lib/thumb/thumb2

нет.. lib/thumb/thumb2 у меня нету..


>>если multilib компиллерf собран без поддержки thumb2, то и при сборке newlib thumb2 тоже не соберется

newlib собирал так (согласно http://eluaproject.dreamhosters.com/en/Bui..._GCC_for_Cortex ):
Код
../configure --target=arm-none-eabi --prefix=$PREFIX --enable-interwork --disable-newlib-supplied-syscalls --with-gnu-ld --with-gnu-as --disable-shared || exit
make CFLAGS_FOR_TARGET="-ffunction-sections -fdata-sections -DPREFER_SIZE_OVER_SPEED -D__OPTIMIZE_SIZE__ -Os -fomit-frame-pointer -mcpu=cortex-m3 -mthumb -D__thumb2__ -D__BUFSIZ__=256" CCASFLAGS="-mcpu=cortex-m3 -mthumb -D__thumb2__" || exit
make install || exit


под поддержкой thumb2 со стороны gcc понимается сборка с параметрами:

Код
make CFLAGS="-mcpu=cortex-m3 -mthumb" CXXFLAGS="-mcpu=cortex-m3 -mthumb" LIBCXXFLAGS="-mcpu=cortex-m3 -mthumb" all || exit

?


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
klen
сообщение Nov 16 2009, 08:28
Сообщение #3


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(Doka @ Nov 16 2009, 11:03) *
под поддержкой thumb2 со стороны gcc понимается сборка с параметрами:

Код
make CFLAGS="-mcpu=cortex-m3 -mthumb" CXXFLAGS="-mcpu=cortex-m3 -mthumb" LIBCXXFLAGS="-mcpu=cortex-m3 -mthumb" all || exit

?


неа smile.gif
есть понятие multilib - подержка библиотек для разных случаев (в данном случае для CPU c разными наборами инструкций), фактически это сборка библов с разными ключами.
а Вы запихнул для всего одинаковые.

то очем я говорю отражается в t-arm-elf

там видны группы строк для - это настройка одной из версии библиотек GCC, что добавить нада раскоментировать группу, там все просто и очевидно.
по сути это скрипт который при сборке говорит что типа нужна отдельная версия библиотек , положить ее отдедельно в такуюто директорию, собрать с такимито определенными ключами, и!! автоматически линковать если проект линкуется с такимире ключами. на этом основан выбор GCC подходящих версий библиотек из из множества.

при сборке newlib, gcc смотрит в своих внутренних спецификациях сколько и какие версии мультилиба и зеркально в также строить newlib

тоесть если GCC собран только с arm,tumb,float,soft то и newlib он тоже в этих версях соберет и разложит при инсталяции.

сам компилер cc1 - подерживает комиляцию любого типа - только сунь правильные ключи.
Go to the top of the page
 
+Quote Post
Doka
сообщение Nov 17 2009, 16:27
Сообщение #4


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(klen @ Nov 16 2009, 11:28) *
то очем я говорю отражается в t-arm-elf

там видны группы строк для - это настройка одной из версии библиотек GCC, что добавить нада раскоментировать группу, там все просто и очевидно.
по сути это скрипт который при сборке говорит что типа нужна отдельная версия библиотек , положить ее отдедельно в такуюто директорию, собрать с такимито определенными ключами, и!! автоматически линковать если проект линкуется с такимире ключами. на этом основан выбор GCC подходящих версий библиотек из из множества.


раскомментировал в t-arm-elf всю секцию относящуюся к armv7 & thumb2 -
всё равно упорно не хотят собираться библиотеки thumb2..


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 22:45
Рейтинг@Mail.ru


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