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

    
А 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:

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


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

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

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

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


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

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

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

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

 

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


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

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

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.

Изменено пользователем Harvester

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


Ссылка на сообщение
Поделиться на другие сайты
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))

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

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


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

Понял, спасибо.

Изменено пользователем IgorKossak
бездумное цитирование

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


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

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

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

How_to_install_the_GNU_ARM_Eclipse.pdf

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация