Перейти к содержанию
    

Вопросы по Eclipse, CDT, Zylin embedded CDT

В обоих случаях выдаёт ошибку

 

15:31:53 **** Incremental Build of configuration Debug for project jk87 ****

make all

Building file: ../oo.c

/bin/sh: arm-none-linux-gnueabi-gcc: команда не найдена

Invoking: ARM Linux GCC C Compiler (Sourcery Lite Linux)

arm-none-linux-gnueabi-gcc -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="oo.o.lst" -c -fmessage-length=0 -MMD -MP -MF"oo.d" -MT"oo.d" -mcpu=arm926ej-s -mthumb -g3 -o "oo.o" "../oo.c"

make: *** [oo.o] Ошибка 127

15:31:53 Build Finished (took 183ms)

Под какой ОС Вы работаете?

Для debian необходимо dash (по умолчанию) сменить на bash.

Когда Вы собираете из консоли, у Вас дополнительно никакие переменные окружения не устанавливаются?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ось убунту 12.04.

ls -la /bin/sh

lrwxrwxrwx 1 root root 9 нояб. 1 15:48 /bin/sh -> /bin/bash так что bash установлен.

 

В командной оболочке собираю так:

$ arm-none-linux-gnueabi-gcc -static main.c

$ls -l a.out

-rwxrwxr-x 1 zavod zavod 653950 нояб. 1 15:51 a.out

$ file a.out

a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В командной оболочке собираю так:

$ arm-none-linux-gnueabi-gcc -static main.c

$ls -l a.out

-rwxrwxr-x 1 zavod zavod 653950 нояб. 1 15:51 a.out

$ file a.out

a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, not stripped

А где вызов make? Попробуйте собирать проект с помощью make в консоле. И хорошо бы сам Makefile показать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так makefile же создаётся автоматически?

 

#######################################################################
#########
# Automatically-generated file. Do not edit!
################################################################################

-include ../makefile.init

RM := rm -rf

# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
-include objects.mk

ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
ifneq ($(strip $(ASM_DEPS)),)
-include $(ASM_DEPS)
endif
ifneq ($(strip $(S_UPPER_DEPS)),)
-include $(S_UPPER_DEPS)
endif
endif

-include ../makefile.defs

# Add inputs and outputs from these tool invocations to the build variables 
SECONDARY_FLASH += \
jk87.hex \

SECONDARY_LIST += \
jk87.lst \

SECONDARY_SIZE += \
jk87.siz \


# All Target
all: jk87.elf secondary-outputs

# Tool invocations
jk87.elf: $(OBJS) $(USER_OBJS)
@echo 'Building target: $@'
@echo 'Invoking: ARM Linux GCC C Linker (Sourcery Lite Linux)'
arm-none-linux-gnueabi-gcc -Xlinker --gc-sections -Wl,-Map,"jk87.map" -static -mcpu=arm926ej-s -mthumb -g3 -o "jk87.elf" $(OBJS) $(USER_OBJS) $(LIBS)
@echo 'Finished building target: $@'
@echo ' '

jk87.hex: jk87.elf
@echo 'Invoking: ARM Linux GNU Create Flash Image (Sourcery Lite Linux)'
arm-none-linux-gnueabi-objcopy -O ihex "jk87.elf"  "jk87.hex"
@echo 'Finished building: $@'
@echo ' '

jk87.lst: jk87.elf
@echo 'Invoking: ARM Linux GNU Create Listing (Sourcery Lite Linux)'
arm-none-linux-gnueabi-objdump -h -S "jk87.elf" > "jk87.lst"
@echo 'Finished building: $@'
@echo ' '

jk87.siz: jk87.elf
@echo 'Invoking: ARM Linux GNU Print Size (Sourcery Lite Linux)'
arm-none-linux-gnueabi-size  --format=berkeley "jk87.elf"
@echo 'Finished building: $@'
@echo ' '

# Other Targets
clean:
-$(RM) $(SECONDARY_SIZE)$(OBJS)$(C_DEPS)$(ASM_DEPS)$(SECONDARY_FLASH)$(EXECUTABLES)$(SECONDARY_LIST)$(S_UPPER_DEPS) jk87.elf
-@echo ' '

secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE)

.PHONY: all clean dependents
.SECONDARY:

-include ../makefile.targets

Изменено пользователем IgorKossak
[codebox] для длинного кода, [code] - для короткого!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так makefile же создаётся автоматически?

Понятно, я только для нативного компилятора из оболочки настройки делаю.

 

И кто мешает make all выполнить в консоле?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Действительно, странно, но make all в консоли всё собрал нормально, правда сегодня уже не успею проверить работоспособность на самом контроллере.

zavod@zavod-System-Product-Name:~/workspace/jk87/Debug$ make all
Building file: ../oo.c
Invoking: ARM Linux GCC C Compiler (Sourcery Lite Linux)
arm-none-linux-gnueabi-gcc -O0 -ffunction-sections -fdata-sections -Wall -Wa,-adhlns="oo.o.lst" -c -fmessage-length=0 -MMD -MP
-MF"oo.d" -MT"oo.d" -mcpu=arm926ej-s -mthumb -g3 -o "oo.o" "../oo.c"
Finished building: ../oo.c

Building target: jk87.elf
Invoking: ARM Linux GCC C Linker (Sourcery Lite Linux)
arm-none-linux-gnueabi-gcc -Xlinker --gc-sections -Wl,-Map,"jk87.map" -static -mcpu=arm926ej-s -mthumb -g3 -o "jk87.elf"  ./oo.o   
Finished building target: jk87.elf

Invoking: ARM Linux GNU Create Flash Image (Sourcery Lite Linux)
arm-none-linux-gnueabi-objcopy -O ihex "jk87.elf"  "jk87.hex"
Finished building: jk87.hex

Invoking: ARM Linux GNU Create Listing (Sourcery Lite Linux)
arm-none-linux-gnueabi-objdump -h -S "jk87.elf" > "jk87.lst"
Finished building: jk87.lst

Invoking: ARM Linux GNU Print Size (Sourcery Lite Linux)
arm-none-linux-gnueabi-size  --format=berkeley "jk87.elf"
  text	   data	    bss	    dec	    hex	filename
498800	   3180	   5068	 507048	  7bca8	jk87.elf
Finished building: jk87.siz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извиняюсь, если такой вопрос уже был .

Есть разлапистый проект на основе STM32 Periferial Lib - куча папок, структуру которых рушить бы не

хотелось. Как сделать, чтобы под Eclipse все файлы исходников видели нужные им .h файлы,

независимо от их взаимного расположения в папках проекта. Прописывание в .include всех папок

с .h файлами не помогает ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если библиотека лежит не в папке проекта, то можно ее корневую папку добавить в структуру проекта как linked folder (File->new->folder->advanced). Если там требуется указать относительный путь, то его надо указывать в виде ${PARENT-2-PROJECT_LOC}/common для папки ../../common

 

И неплохо бы настроить автоматическое распознавание путей и предопределенных символов компилятора.

 

Или я неправильно понял фразу "чтобы под Eclipse все файлы исходников видели нужные им .h файлы"? У вас проект не собирается или не работает навигация по исходникам?

 

 

 

==========================================================================

Новый вопрос.

 

Кеплер, при настройке C/C++ General->Preprocessor include paths, macros etc->Providers->CDT GCC Builtin compiler settings (которое замена Discovery в предыдущих версиях) в каждом проекте создается папка .settings, в которую помещается файл language.settings.xml с настройками этого Provider. Логично было бы включать этот файл в репозиторий системы контроля версий, чтобы не создавать его заново при вытаскивании проекта на новой машине. Но в этом файле есть фрагмент

env-hash="тут какое-то число"

в котором "какое-то число" на каждой машине прописывается свое при открытии проекта. То есть получается, что если я работаю с одним проектом на двух машинах, то при переходе с машины на машину этот файл меняется и система контроля версий совершенно законно хочет это изменение сохранить в репозитории. Не включать файл в репозиторий тоже плохо - тогда придется при каждом доставании из репозитория настраивать CDT GCC Builtin compiler settings вручную заново. Ладно если в workspace один-два проекта, а если их несколько десятков?

 

В общем вопрос: кто как с этим борется?

 

Вообще последние версии вызывают недоумение - сначала в корне workspace появилась неизвестно для чего нужная папка RemoteSystemsTempFiles. Вот кто мешал засунуть ее в .metadata? Теперь эта .settings, при наличии двух файлов .project и .cproject - что мешало дописывать в них?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще последние версии вызывают недоумение - сначала в корне workspace появилась неизвестно для чего нужная папка RemoteSystemsTempFiles. Вот кто мешал засунуть ее в .metadata? Теперь эта .settings, при наличии двух файлов .project и .cproject - что мешало дописывать в них?

Здесь кое-что на эту тему. Меня пока не приперло с этим разбираться (могу терпеть, в отличие от Discovery).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здесь кое-что на эту тему.
Спасибо, RemoteSystemsTempFiles убрал отключив RSE UI в Window -> Preferences -> General -> Startup and Shutdown

 

Добавлено: Ан нет, надо еще Window -> Preferences -> Remote systems убрать галочку "Re-open Remote systems view to previous state"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня вопрос: как в CooCox посмотреть откуда программа попала в default handler, стек как таковой там не показывается, т.е. в окне debug отображается только где процессор находится на данный момент, а предыдущие адреса неотображаются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вкратце, завожу ssh, делал проект с локальной копией - не понравилось :) синхронизация там всякая - хочу чтобы на кнопку save - сохранялось по сетке. RaspberryPI :) если кому интересно

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Eclipse + OpenOCD + ST-LINK V2.

Почему-то содержимое PC становится нечетным после первого шага выполнения программы.

В Atollic, которому подсунут тот же elf, PC остается четный.

Программа выполняется как положено, подозрение, что отображение неправильное.

Поиском не нашел объяснения этой странности.

 

И еще вопрос, который сформулировал Сергей Борщ когда-то

"Попутный вопрос - можно ли его заставить в этом окне показывать команды по порядку адресов - мне он часто показывает команды с пропусками или в причудливо перемешанном порядке."

Пропуски наблюдаю регулярно. Благодаря *.lss слепым не остаюсь, но неудобно чуток :-) Есть решение?

post-8165-1394184489_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько помнится, младший бит в счетчике команд указывает на режим THUMB, т.е. должен быть в единице. Видимо Atollic просто маскирует его чтобы не смущать.

 

По пропускам: надо "отжать" иконку Show source. Видимо он не может однозначно оперделить принадлежность некоторых команд к строкам исходника.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...