Jump to content

    
Sign in to follow this  
sleo2000

Eclipse + GCC для ARM

Recommended Posts

А mkdir.exe там присутствует?

Он нужен, потому что mkdir - это встроенная команда cmd.exe, и sh.exe не умеет её запускать.

(mkdir.exe и ещё несколько нужных программ я брал, емнимс, из какого-то древнего winavr (в директории utils/bin)).

Там присутствует busybox, который поддерживает эту команду. Доказательство:

D:\Users\Андрей>sh
~ $ mkdir
BusyBox v1.24.0.git (2015-07-15 20:12:15 UTC) multi-call binary.

Usage: mkdir [OPTIONS] DIRECTORY...

Create DIRECTORY

        -m MODE Mode
        -p      No error if exists; make parent directories as needed
~ $

Т.е. из командной строки mkdir запускается.

Я заменил в make-файле строку

MD = mkdir

на

MD = busybox mkdir

и проект начал собираться

Попробовал последовать вашему совету - положил в папку mkdir.exe и msys.dll из WinAVR - исходный make-файл заработал.

 

В общем, задача решена, но осадочек :05: остался.

Спасибо за подсказку :beer:

Share this post


Link to post
Share on other sites

Не знаю, что было в древнем WinAVR. Нормальный набор утилит брал здесь.

Busybox тоже неплохо, но размер у неё больше и работает она медленнее, поскольку "всё в одном".

Share this post


Link to post
Share on other sites
Не знаю, что было в древнем WinAVR. Нормальный набор утилит брал здесь.

Busybox тоже неплохо, но размер у неё больше и работает она медленнее, поскольку "всё в одном".

Ну, вообще говоря, этот набор еще древнее, т.к. последний релиз WinAVR датируется 2010 годом. :laughing:

Но это уже не столь принципиально.

 

Share this post


Link to post
Share on other sites

Добрый день. Не моли бы Вы пояснить пару моментов.

1. В вашем makefile имеется отдельная переменная SRCS, как я понял из комментария, для подключения индивидуальных исходных файлов.

Однако если просто добавить файл в эту переменную, то выдается ошибка

make: *** No rule to make target '../obj/kernel.o', needed by '../kernel.elf'.

Если же добавить путь к этому файлу в переменную DIRS, то он скомпилируется и без указания в SRCS.

Какой тогда смысл в переменной SRCS?

2. Ваши примеры собираются нормально, а когда я пытаюсь собрать свой проект, линкер выдает сообщение:

arm-none-eabi-ld: unrecognised emulation mode: thumb
Supported emulations: armelf
makefile:146: recipe for target '../kernel.elf' failed

Инструментарий один и тот же, флаги линкера тоже.

В чем может быть причина?

P.S. Со вторым вопросом разобрался: Вы вызываете линкер через g++, а у меня был указан ld.

Edited by Harvester

Share this post


Link to post
Share on other sites
1. В вашем makefile имеется отдельная переменная SRCS, как я понял из комментария, для подключения индивидуальных исходных файлов.

Однако если просто добавить файл в эту переменную, то выдается ошибка

make: *** No rule to make target '../obj/kernel.o', needed by '../kernel.elf'.

Если же добавить путь к этому файлу в переменную DIRS, то он скомпилируется и без указания в SRCS.

Какой тогда смысл в переменной SRCS?

Идея была в том, чтобы подцепить какие-то файлы выборочно. (Если добавить директорию с файлом к DIRS, то подцепятся все файлы из этой директории).

Но как-то ни разу не пригождалось такое, вот и не доделал.

Чтобы заработало, надо добавить пути к этим индивидуально добавленным файлам в переменную VPATH. Найдите строчку с VPATH и измените её на:

    VPATH := $(DIRS) $(dir $(SRCS))

Тогда всё заработает как задумано.

Share this post


Link to post
Share on other sites

Устанавливал дополнения к Eclipse и попутно написал краткое руководство. В статье рассмотрен порядок установки среды разработки ECLIPSE и дополнительных компонентов к ней для программирования и отладки микропроцессоров с ядром ARM. Возможно, кому-то пригодится.

Если у вас есть дополнения или исправления по данной теме – пишите, добавлю в руководство. Смотрите вложение.

How_to_install_the_GNU_ARM_Eclipse.pdf

Share this post


Link to post
Share on other sites
В 06.02.2017 в 18:47, krav2016 сказал:

Смотрите вложение.

 

How_to_install_the_GNU_ARM_Eclipse.pdf

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

Или нужно использовать новые версии?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this