Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
вопрос новичка про компиляцию
automater
Добавлено 08.06.2010 08:37
0
Сообщение: 1
automater
0

Регистрация: 07.06.2010
Первый опыт с линуксом и отладочной платой. Ситуация такая - плата SK-MNUK950, на диске линукс для виртуальной машины и примеры программ на Си. Запустил виртуалку, в линуксе ничего не делал, перенес туда файлы из demos, пытаюсь скомпилировать, чтобы залить на плату и запустить, но не получается. Makefile'ы и файлы на си - все родное из demos. В mc захожу в каталог с программой, пишу команду make, выдает следующее
make: arm-linux-gcc: Command not found
Что нужно сделать, чтобы компилировалось?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.06.2010 09:03 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
перенес туда файлы из demos

не очень понял - "туда" - это куда?
делаю все то же самое - беру из каталога demos/i2c содержимое и копирую в demos/test
потом:
Код
debian:~/test# cd /home/user/src/nuc900/nuc900bsp/applications/demos/test/
debian:/home/user/src/nuc900/nuc900bsp/applications/demos/test# make
arm-linux-gcc -O2 -I/usr/local/arm_linux_4.2//arm-linux/include -I/usr/local/arm_linux_4.2//arm-linux/sys-include -static -L/usr/local/arm_linux_4.2//lib/gcc/arm-linux/4.2.1 -L/usr/local/arm_linux_4.2//arm-linux/lib i2c_test.c -o i2c_demo -lc -lgcc -lc
i2c_test.c: In function 'main':
i2c_test.c:95: warning: incompatible implicit declaration of built-in function 'memset'
arm-linux-strip i2c_demo
cp i2c_demo ../../../rootfs/usr/
genromfs -f rootfs -d ../../../rootfs
gzip -f rootfs
mv rootfs.gz ../../../image/
debian:/home/user/src/nuc900/nuc900bsp/applications/demos/test#

создается бинарник с кодом для АРМ и заворачивается в rootfs
захожу под логином рута
вот так выглядит Makefile - ничего не трогал

Код
.SUFFIXES : .x .o .c .s

ROOT = /usr/local/arm_linux_4.2/
LIB = $(ROOT)/lib/gcc/arm-linux/4.2.1
LIB1 =$(ROOT)/arm-linux/lib
INCSYS:=$(ROOT)/arm-linux/sys-include
INC :=$(ROOT)/arm-linux/include

CC=arm-linux-gcc -O2 -I$(INC) -I$(INCSYS) -static
WEC_LDFLAGS=-L$(LIB) -L$(LIB1)
STRIP=arm-linux-strip

TARGET = i2c_demo
SRCS := i2c_test.c

LIBS= -lc -lgcc -lc

all:
$(CC) $(WEC_LDFLAGS) $(SRCS) -o $(TARGET) $(LIBS)
$(STRIP) $(TARGET)
cp $(TARGET) ../../../rootfs/usr/
genromfs -f rootfs -d ../../../rootfs
gzip -f rootfs
mv rootfs.gz ../../../image/

clean:
rm -f *.o
rm -f *.x
rm -f *.flat
rm -f *.map
rm -f temp
rm -f *.img
rm -f $(TARGET)
rm -f *.gdb


проверьте - есть ли кросскомпилятор и прописаны переменные для него..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
automater
Добавлено 08.06.2010 09:21 Сообщение: 3
automater
0

Регистрация: 07.06.2010
Цитата
не очень понял - "туда" - это куда?

создал /home/files в миднайт коммандере на виртуальной машине, скопировал туда всю папку демос через флэшку

Цитата
проверьте - есть ли кросскомпилятор и прописаны переменные для него..

все пути, которые в мэйкфайле написаны, есть - я так понимаю, это значит, что кросскомпилятор уже есть? просто я думал, что этот линукс, который пришел с платой для использования на виртуальной машине, уже полностью готов и все там сконфигурировано. Если нет, то не подскажите, как проверить, есть ли кросскомпилятор и какие переменные нужно прописать и как это сделать...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.06.2010 09:35 Сообщение: 4
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
так я тоже в виртуалке все действия совершил
поднята VMWare, на ней запущен образ виртуальной машины с диска для NUC950
зачем копировать через флешку? если все добро лежит:

Код
/home/user/src/nuc900/nuc900bsp/applications/demos/

может речь о чем то другом идет?

вот по этому пути что-нить лежит?
Код
ROOT = /usr/local/arm_linux_4.2/

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
automater
Добавлено 08.06.2010 11:39 Сообщение: 5
automater
0

Регистрация: 07.06.2010
тогда я вообще ничего не понимаю... Как можно получать разные результаты, совершая одинаковые действия надо одинаковыми данными?
Нашел
Код
/home/user/src/nuc900/nuc900bsp/applications/demos/

попробовал оттуда компилировать - ничего не изменилось, такая же ошибка.
Путь, который в мэйкфайле указан ROOT, проверил, каталог есть, в нем полно всего, все остальные пути тоже есть...
Спуститься к концу Подняться к началу
Персональная информация
automater
Добавлено 08.06.2010 11:42 Сообщение: 6
automater
0

Регистрация: 07.06.2010
вы просто запустили образ с диска и ничего там не меняли? никаких настроек, ничего? Просто взяли диск, запустили образ, зашли в демос и написали make в папке с мэйкфалом, я правильно понимаю?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.06.2010 11:55 Сообщение: 7
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
вы просто запустили образ с диска и ничего там не меняли? никаких настроек, ничего? Просто взяли диск, запустили образ, зашли в демос и написали make в папке с мэйкфалом, я правильно понимаю?

в общем да, единственное сделал копию из demos/i2c в demos/test..
у меня этот образ развернут в сентябре 2009, в теории я мог чего-то накрутить и успешно забыть, но врядли - не люблю копаться в потрохах того в чем слабо разбираюсь

если ситуация не проясниться - попробую дома вечером, там есть свежепоставленый образ копии виртуалки..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.06.2010 12:05 Сообщение: 8
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
а что у вас пишет на такую команду:

Код
set | grep PATH

у меня выдает вот такое:
Код
debian:/nuvoton/linux-2.6.34-rc2# set |grep PATH
PATH=/usr/local/arm_linux_4.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


если в консоле набрать arm и два раза нажать кнопку Tab то должен появиться список утилит из комплекта кросскомпилера..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
automater
Добавлено 09.06.2010 06:43 Сообщение: 9
automater
0

Регистрация: 07.06.2010
вот что пишет, когда пытаюсь компилировать
Код
debian:/home/test# mc
debian:/home/useг/src/nuc900/nuc900bsp/applications/demos/i2c# make arm-linux-gcc -02 -I/usr/local/arm_linux_4.2//arm-linux/include -I/usr/local/arm _linux_4.2//arm-linux/sys-include -static -L/usr/local/arm linux 4.2//lib/gcc/a rm-linux/4.2.1 -L/usr/local/arm_linux_4.2//arm-linux/lib i2c_test.c -o i2c_demo -Ic -Igcc -Ic
make: arm-linux-gcc: Command not found make: *** [all] Error 127

А вот команды, про которые вы говорили
Код
debian:/home/user/src/nuc900/nuc900bsp/applications/demos/i2c# set | grep PATH
PATH=/us r/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin WIND0WPATH=7
debian:/home/user/src/nuc900/nuc900bsp/applications/demos/i2c# arm2hpdl Usage:
arm2hpdl [options] sihp1005.img > sihp1005.dl
Add HP download header/trailer to an ARM ELF binary.
If the file already has an HP header, just copy it to stdout.
Options:
-D lvl Set Debug level [0] debian:/home/user/src/nuc900/nuc900bsp/applications/demos/i2c#
Спуститься к концу Подняться к началу
Персональная информация
Hermes
Добавлено 09.06.2010 09:09 Сообщение: 10
Hermes
5

Пункты: 3383
Регистрация: 02.04.2010
1. А путь /usr/local/arm_linux_4.2/bin существует ?
2. А в нем есть файлик arm-none-linux-gcc или подобный ?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux