реклама на сайте
подробности

 
 
> Создание u-boot для LPC2468 с помощью cygwin
mempfis_
сообщение Nov 8 2012, 20:03
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Всем добрый день/вечер/ночь.
Хочу освоить OS Linux для embedded-использования.
На данном этапе разобрался что для использования линукса необходимо чтобы в процессоре жил u-boot и гдето, где есть место, хранилось ядро.
Для начала хочу разобраться с созданием u-boot для LPC2468.
Из примеров есть u-boot-1.3.2 от Olimex.
Для сборки u-boot установил cygwin со встроенным компилятором arm-uclinux-tools-base-gcc3.4.0-20040713.
В папке cygwin создал папку my_uboot а в ней u-boot-1.3.2-olimex в которую распаковал соответствующий архив.

Запускаю cygwin, перехожу в нужную папку и подаю команду make. Привожу результат на картинке.
Для меня этот набор информаии пока что как тёмный лес.
Вопрос к знающим что там не так? Что почитать чтобы в голове прояснилось?
Уже прочитал Gettin strted with uCLinux от Embedded Artist и uboot от NXP.
Облазил yandex/google (где нашёл что под виндой можно использовать cygwin).
Всёравно пока что моих знаний недостаточно чтобы разобраться что к чему и создать свой первый u-boot.
При необходимости могу выложить нужные файлы из архива.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
haker_fox
сообщение Nov 9 2012, 03:35
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Извините, что не по теме, но сдается мне, что все это лучше компилировать в виртуалке с линуксом) Там тоже проблем хватало, но в конце концов скомпилировалось)


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Lotor
сообщение Nov 9 2012, 04:25
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Не собирал такое, но из картинки видно, что в make файле прописан компилятор arm-alf-gcc, т.е. Вы используете не ту toolchain похоже.


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Nov 9 2012, 08:00
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(haker_fox @ Nov 9 2012, 06:35) *
Извините, что не по теме, но сдается мне, что все это лучше компилировать в виртуалке с линуксом) Там тоже проблем хватало, но в конце концов скомпилировалось)


У меня стоит Debian 5 на виртуальной машине. Но у меня проблема - я пока что не разобрался как получить доступ к папке я исходниками u-boot и к папке с компилятором, чтобы установить его. А поставить чистый линукс на компьютер я не могу. Если можете подсказать как в винде закинуть необходимые мне файлы в определённую папку и получить к ней доступ из виртуальной машины - буду благодарен.

Цитата(Lotor @ Nov 9 2012, 07:25) *
Не собирал такое, но из картинки видно, что в make файле прописан компилятор arm-alf-gcc, т.е. Вы используете не ту toolchain похоже.


Т.е. всё что связано с компиляцией и сборкой проекта находится в файле с названием make? (как приду домой посмотрю)
В readme файле cygwin написано что устанавливается arm-uclinux-tools-base-gcc3.4.0-20040713.
Yandex показал что существуют arm-linux-gcc -v and arm-elf-gcc. Т.е. то что установлено у меня сейчас теоретически тоже подойдёт в качестве компилятора, нужно только корретно прописать make-файл. Я прав?
Go to the top of the page
 
+Quote Post
Lotor
сообщение Nov 9 2012, 08:21
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 476
Регистрация: 3-07-07
Из: Санкт-Петербург
Пользователь №: 28 866



Цитата(mempfis_ @ Nov 9 2012, 12:00) *
Т.е. всё что связано с компиляцией и сборкой проекта находится в файле с названием make? (как приду домой посмотрю)

make файл (как правило) описывает, каким образом нужно компилировать и компоновать программу - так что да.
PS: Я для опытов использую toolchain от СodeSourcery, может и Вам следует его попробовать.


--------------------
Ковырял чукча отверткой в ухе, звук в телевизоре и пропал.
Go to the top of the page
 
+Quote Post
alx2
сообщение Nov 9 2012, 11:00
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(mempfis_ @ Nov 9 2012, 01:03) *
перехожу в нужную папку и подаю команду make. Привожу результат на картинке.
Вопрос к знающим что там не так? Что почитать чтобы в голове прояснилось?

Во-первых, как Вам уже подсказали, система не находит arm-elf-gcc. Скорее всего директорий, в котором он находится, не включен в переменную path. Или, если имя файла компилятора у Вас иное, установите правильно переменную окружения HOSTCC или оказывайте имя в командной строке make (HOSTCC=как-там-его-gcc), как это описано в разделе Building the Software файла README u-boot'а.

Во-вторых, согласно написанному в файле README, для его сборки надо говорить не просто "make", а "make BOARD_config", где BOARD - имя вашей платы, по которому будет подключен соответствующий файл конфигурации из каталога include/configs/. Если готовой конфигурации для вашей платы нет, придется ее сделать (проще всего взять за основу конфигурацию от какой-нибудь максимально похожей платы и исправить нужное)... Вот как-то так. sm.gif

Почитать - общий README в корне u-boot'а и README для вашей платформы в каталоге doc.

И еще, make - это программа, выполняющая сборку. А файл, в котором описаны правила сборки, называется Makefile.

Наконец, присоединяюсь к совету перенести всю сборку на linux. Там Вы сможете использовать готовые фреймворки для сборки всей системы, например OpenEmbedded. Непонятно, зачем Вам нужен доступ из виртуальной машины к файлам хост-машины. Наоборот, положите все нужные файлы на файловую систему виртуальной машины с linux и там собирайте.

Цитата(Lotor @ Nov 9 2012, 09:25) *
Не собирал такое, но из картинки видно, что в make файле прописан компилятор arm-alf-gcc, т.е. Вы используете не ту toolchain похоже.

В Makefile имя компилятора не прописано. Там используется значение переменной HOSTCC.

Сообщение отредактировал alx2 - Nov 9 2012, 11:18


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Nov 9 2012, 15:29
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата
Наконец, присоединяюсь к совету перенести всю сборку на linux. Там Вы сможете использовать готовые фреймворки для сборки всей системы, например OpenEmbedded. Непонятно, зачем Вам нужен доступ из виртуальной машины к файлам хост-машины. Наоборот, положите все нужные файлы на файловую систему виртуальной машины с linux и там собирайте.


Я не против собирать всё в виртуальной машине или чистом линуксе. Но в данный момент я не могу поставить линукс на компьютер. Вместо него поставил виртуальную машину Vmplayer и запустил Debian 5. Так вот в Debian я не могу добраться до архива компилятора и исходников u-boot которые положил в общие папки.
В настройках виртуальной машини прописал
Код
sharedFolder0.present = "TRUE"
sharedFolder0.enabled = "TRUE"
sharedFolder0.readAccess = "TRUE"
sharedFolder0.writeAccess = "TRUE"
sharedFolder0.hostPath = "D:\!!!linux\shared\temp\"
sharedFolder0.guestName = "host_temp"
sharedFolder0.expiration = "never"
sharedFolder1.present = "TRUE"
sharedFolder1.enabled = "TRUE"
sharedFolder1.readAccess = "TRUE"
sharedFolder1.writeAccess = "TRUE"
sharedFolder1.hostPath = "D:\!!!linux\shared\dev\"
sharedFolder1.guestName = "host_dev"
sharedFolder1.expiration = "never"
sharedFolder.maxNum = "2"
isolation.tools.hgfs.disable = "FALSE"


Всё приблизительно как в Getting_started_with_uClinux_A.pdf

По поводу cygwin.

Залез в Makefile, нашёл строку
Код
ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-elf- //тут стояло arm-linux-
endif


Также нашёл несколько конфигураций

Код
lpc_e2294_config:    unconfig    
    @$(MKCONFIG) $(@:_config=) arm arm720t lpc_e2294 NULL lpc2292

lpc_e2468_config: unconfig
    @$(MKCONFIG) $(@:_config=) arm arm720t lpc_e2468 NULL lpc2468

lpc_2478_stk_config: unconfig
    @$(MKCONFIG) $(@:_config=) arm arm720t lpc_2478_stk NULL lpc2468


Для теста подаю команду make lpc_2478_stk_config
Для этой и для других конфигураций возникает ошибка как на картинке.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Nov 9 2012, 16:30
Сообщение #8


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(mempfis_ @ Nov 9 2012, 18:29) *
sharedFolder0.hostPath = "D:\!!!linux\shared\temp\"
sharedFolder1.hostPath = "D:\!!!linux\shared\dev\"

На мой взгляд не стоит использовать спецсимволы для имен каталогов, тем более для виртуальной машины linux.

make позволяет включить отладочный режим (-n ). Выводятся команды, но не выполняются. Посмотрите, какие команды и какие пути подставляются реально.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Nov 10 2012, 14:11
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Есть первый позитивный результат сборки u-boot-1.1.6
После применения патча u-boot-1.1.6-ea_v1_8_1.diff на оригинальную версию u-boot-1.1.6 или скачанную из папки extras Embedde Artist с ftp Elektronix у меня без ошибок собрался убут с конфигурацией lpc2292sodimm_config.
Но к сожалению конфигурация LPC2468OEM_Board_config собирается с ошибкой (приведена на рисунке).

Собираю в cygwin, установлено arm-elf-gcc-3.4.3.
Кто знает это ошибка cygwin, конфигурации или GCC? Возможно стоит установить более новый GCC или гдето в настройках указать использовать программное FP (FP - floating point?)?

Конфигурация LPC2468OEM_Board_config для меня более подходящая т.к. у меня есть плата с LPC2468. Linux на неё не станет т.к. там 512к оперативки, а u-boot должен влезть.

Go to the top of the page
 
+Quote Post
alx2
сообщение Nov 12 2012, 05:32
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(mempfis_ @ Nov 9 2012, 20:29) *
В настройках виртуальной машини прописал
....
Всё приблизительно как в Getting_started_with_uClinux_A.pdf

Лень читать этот документ, извините. Лично мое мнение - Вам не shared-folders надо настраивать, а сеть. Чтобы гостевая система имела доступ в интернет. Потом просто скачиваете из интернета нужные Вам исходники (через git, svn, ftp, http и все что угодно) прямо в файловую систему виртуальной машины. И собираете там же. А хост-система пусть используется только в качестве терминала. Никакие исходники на хост-системе хранить не надо...

И еще: не могли бы Вы сообщения об ошибках копировать сюда в виде текста, а не картинки-скриншота? А то очень неудобно сообщения из картинок читать...

Сообщение отредактировал alx2 - Nov 12 2012, 05:36


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 03:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.02674 секунд с 7
ELECTRONIX ©2004-2016