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

 
 
> библиотеки для 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



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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 11:06
Рейтинг@Mail.ru


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