jb83 0 6 июня, 2008 Опубликовано 6 июня, 2008 (изменено) · Жалоба Здравствуйте! Подскажите, пжалста, что это такое и чем лечится :05: WinARM Изменено 6 июня, 2008 пользователем jb83 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aesok 0 6 июня, 2008 Опубликовано 6 июня, 2008 · Жалоба Здравствуйте! Подскажите, пжалста, что это такое и чем лечится :05: WinARM КОД! И makefile. Версия компилятора. Короче я не экстрасенс. Анатолий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jb83 0 6 июня, 2008 Опубликовано 6 июня, 2008 · Жалоба Вот процедура, на которую ругается (алгоритм отвратный и незаконченный :rolleyes: ) ------------------------------------------------------------------------------------- void line (unsigned int x0, unsigned int y0, unsigned int x1, unsigned int y1, unsigned int c){ unsigned int x = x0; unsigned int y = y0; int dx = x1 - x0; int dy = y1 - y0; int k = 0; if (dx==0){ while (y != y1+1){ putpixel(x,y,c); y++; } return; } if (dy==0){ while (x != x1+1){ putpixel(x,y,c); x++; } return; } // если вышеперечисленные условия не выполняются (иначе будет деление на 0), то // считаем коэф-т наклона линии if (dy>=dx){ k = dy/dx; while (y != y1+1){ x = x0 + (y-y0)/k; putpixel(x,y,c); y++; } return; } else { k = dx/dy; while (x != x1+1){ y = y0 + (x-x0)/k; putpixel(x,y,c); x++; } return; } } ------------------------------------------------------------------------------------- + makefile ------------------------------------------------------------------------------------- NAME = uart_test CC = arm-elf-gcc LD = arm-elf-ld -v AR = arm-elf-ar AS = arm-elf-as CP = arm-elf-objcopy OD = arm-elf-objdump CFLAGS = -c -mthumb-interwork -O3 AFLAGS = -ahls -mapcs-32 -o crt.o LFLAGS = -Map main.map -Tflash.cmd CPFLAGS = -O ihex ODFLAGS = -dStl -x --syms -S OBJECTS = crt.o crc16.o VIClowlevel.o uart.o main.o all: main.out @ echo "...copying" $(CP) $(CPFLAGS) main.out main.hex $(OD) $(ODFLAGS) main.out > main.dmp clean: -rm $(OBJECTS) crt.lst main.lst main.out main.hex main.map main.dmp main.out: $(OBJECTS) flash.cmd @ echo "..linking" $(LD) $(LFLAGS) -o main.out $(OBJECTS) crc16.o: crc16.c @ echo ".compiling" $(CC) $(CFLAGS) crc16.c VIClowlevel.o: VIClowlevel.c @ echo ".compiling" $(CC) $(CFLAGS) VIClowlevel.c crt.o: crt.s @ echo ".assembling" $(AS) $(AFLAGS) crt.o crt.s > crt.lst main.o: main.c @ echo ".compiling" $(CC) $(CFLAGS) main.c uart.o: uart.c @ echo ".compiling" $(CC) $(CFLAGS) uart.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksandr Baranov 1 6 июня, 2008 Опубликовано 6 июня, 2008 · Жалоба Могу предположить, что не хватает какой-то библиотеки, например, libm. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 6 июня, 2008 Опубликовано 6 июня, 2008 · Жалоба __udivsi3 беззнаковое деление int / int именно та что нужна лежит в библе interwork\libgcc.a, видимо собрано криво скачайте мою сборку , если не поможет то поправлю трабл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksandr Baranov 1 7 июня, 2008 Опубликовано 7 июня, 2008 · Жалоба А где в приведенном make файле -lgcc? Его не нужно указывать явно как флаг линкера? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jb83 0 7 июня, 2008 Опубликовано 7 июня, 2008 · Жалоба __udivsi3 беззнаковое деление int / int именно та что нужна лежит в библе interwork\libgcc.a, видимо собрано криво скачайте мою сборку , если не поможет то поправлю трабл. А можно ... э-э .. ссылочку? А где в приведенном make файле -lgcc? Его не нужно указывать явно как флаг линкера? Извиняюсь за глупый вопрос (хотя в ветке для чайников, наверно, можно :) ) То есть нужно сделать LFLAGS = -Map main.map -Tflash.cmd -lgcc ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksandr Baranov 1 7 июня, 2008 Опубликовано 7 июня, 2008 · Жалоба Попробуйте LFLAGS += -lgcc -lm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
klen 1 7 июня, 2008 Опубликовано 7 июня, 2008 · Жалоба -lgcc сам компиллер засунет по умолчанию если вы ему не скажете обратноте явно/ Роверить можно так - суете флаг -v и смотрите детальный вывод Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksandr Baranov 1 7 июня, 2008 Опубликовано 7 июня, 2008 · Жалоба -lgcc сам компиллер засунет по умолчанию если вы ему не скажете обратноте явно/ Роверить можно так - суете флаг -v и смотрите детальный вывод Для этого надо компиллеру поручить также и линковку флагом Wl Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jb83 0 9 июня, 2008 Опубликовано 9 июня, 2008 · Жалоба Попробуйте LFLAGS += -lgcc -lm Спасибо, я попробую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amw 0 9 июня, 2008 Опубликовано 9 июня, 2008 · Жалоба Спасибо, я попробую. Боюсь не сработает. -lgcc вроде как должна ити последней. ..... LIBS -lc -lgcc main.out: $(OBJECTS) flash.cmd @ echo "..linking" $(LD) $(LFLAGS) -o main.out $(OBJECTS) $(LIBS) Или как вриант LD = arm-elf-gcc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jb83 0 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба Попробуйте LFLAGS += -lgcc -lm Попробовал :( cannot find -lgcc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amw 0 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба Попробовал :( cannot find -lgcc Ну тогда еще -L/path/to/dir/where/you/found/it Поищите файл libgcc.a и добавте путь к ней линкеру. А если ее нет - то у Вас боооольшая проблема в инсталляции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jb83 0 10 июня, 2008 Опубликовано 10 июня, 2008 · Жалоба Ну тогда еще -L/path/to/dir/where/you/found/it Поищите файл libgcc.a и добавте путь к ней линкеру. А если ее нет - то у Вас боооольшая проблема в инсталляции. А просто скинуть libgcc.a в директорию с проектом не прокатывает? (я так сделал) А путь -L/path/to/dir/where/you/found/it добавить в LFLAGS? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться