Jump to content

    
Sign in to follow this  
Kolya87

EV-iMX287-Micro

Recommended Posts

Я новичок во встраиваемых системах. Имею отладочный комплект EV-iMX287-Micro. На нем по умолчанию установлен Linux. Кто что посоветует, с чего начать. Для начала просто Hello world, помигать светодиодом. Соответственно как, с помощью каких средств настраивать аппаратную часть платы? Приложения предполагаю писать на Qt.

По поводу виртуальной машины. С сайта http://otladka.com.ua/wiki/doku.php образ виртуальной машины скачать не получается, выдает ошибку сети. Но как я понимаю, можно создать свою виртуальную машину, поставить на нее действующую версию Ubuntu или Debian, поставить необходимые средства разработки приложений и отлаживать уже на ней.

Share this post


Link to post
Share on other sites

Для начала все же нужно скачать образ виртуальной машины с http://otladka.com.ua - это на порядок ускорит процесс познания (у меня, например, все отлично скачивается). Скачать, развернуть, а дальше читать http://otladka.com.ua/wiki/doku.php?id=ev-imx287-micro и параллельно пробовать. В этом описании для сборки ядра, загрузчика и файловой системы используется система сборки LTIB, кажется Qt там входит в состав сборки. Если же нет, то ядро можно собирать LTIB'ом, а файловую систему - системой сборки Buildroot - там Qt точно входит в состав. Можно Qt собрать и отдельно, но это заметно сложнее.

У freescale неплохой форум

Edited by samike

Share this post


Link to post
Share on other sites

Сейчас читаю сайт starterkit-org раздел wiki. На данный момент застрял на сборке кросскомпилятора с помощью crosstool-ng. Дошел до ct-ng build. Выдает ошибки:

 

[iNFO ] Performing some trivial sanity checks

[iNFO ] Build started 20140821.000748

[iNFO ] Building environment variables

[ERROR] Missing: 'x86_64-unknown-linux-gnu-gcj' or 'x86_64-unknown-linux-gnu-gcj' or 'gcj' : either needed!

[ERROR]

[ERROR] >>

[ERROR] >> Build failed in step '(top-level)'

[ERROR] >>

[ERROR] >> Error happened in: CT_Abort[scripts/functions@331]

[ERROR] >> called from: CT_TestAndAbort[scripts/functions@351]

[ERROR] >> called from: main[scripts/crosstool-NG.sh@452]

[ERROR] >>

[ERROR] >> For more info on this error, look at the file: 'build.log'

[ERROR] >> There is a list of known issues, some with workarounds, in:

[ERROR] >> '/usr/local/share/doc/crosstool-ng/ct-ng.1.19.0/B - Known issues.txt'

[ERROR]

[ERROR] (elapsed: 0:00.55)

[00:01] / make: *** [build] Error 1

 

 

Пока непонятно что делать.

Вообще возникает вопрос, нужно ли собирать свой кросскомпилятор, или LTIB и BUILDROOT вставляют какой-то стандартный?

Share this post


Link to post
Share on other sites
Вообще возникает вопрос, нужно ли собирать свой кросскомпилятор, или LTIB и BUILDROOT вставляют какой-то стандартный?

 

В подавляющем большинстве случаев собирать свой кросскомпилятор не нужно, в LTIB и BUILDROOT уже имеются компиляторы.

 

Вот полная документация по Linux для imx28 от Freescale: i.MX28 Linux Documentation Bundle, вот еще ссылка.

Требуется регистрация на сайте freescale.

Что там есть:

MX28_EVK_Linux_Reference_Manual.pdf

MX28_EVK_Linux_Release_Notes.pdf

MX28_EVK_Linux_User_Guide.pdf

Setting_Up_LTIB_Host_on_Ubuntu_9_04.pdf

uboot_mx28.pdf

imx28-kernel-warnings.txt

 

Т.е. все, что нужно для разработки, рекомендую.

Share this post


Link to post
Share on other sites
[ERROR] Missing: 'x86_64-unknown-linux-gnu-gcj' or 'x86_64-unknown-linux-gnu-gcj' or 'gcj' : either needed!

 

Пока непонятно что делать.

Очевидным решением мне кажется установить gcj... Или тут кроется какой-то подвох? :)

Share this post


Link to post
Share on other sites

Поставил LTIB, поставляемый в пакете BSP от Freescale, на Debian. Собрал Linux kernel, rootfs. Пробую загрузить в NAND flash через MFGTool. Не получается, выдает ошибку Updater Error 0xffffffea (-22) -

Share this post


Link to post
Share on other sites
Пробую загрузить в NAND flash через MFGTool. Не получается, выдает ошибку Updater Error 0xffffffea (-22) -

 

А на Вашей плате u-boot есть (или все стерто)?

Можно все записать в NAND из под u-boot.

Share this post


Link to post
Share on other sites

Пока с платы ничего не стирал, т.е. в плате зашита изначально OS, которая еще была при покупке. По поводу зашитого u-boot ответить затрудняюсь. Сейчас буду пробовать др. способы записи образов.

 

Похоже никакого u-boot там не зашито.

Share this post


Link to post
Share on other sites
Похоже никакого u-boot там не зашито.

 

U-Boot - это первоначальный загрузчик, он инициализирует плату, загружает ядро и передает ему управление.

U-Boot должен быть.

Если не ошибаюсь, ваша плата имеет возможность загрузки с SD карты.

Попробуйте пока поиграться с SD карточкой. Почитайте wiki, раздел Создание загрузочной SD карты

 

Share this post


Link to post
Share on other sites

Создал загрузочную SD карту. Записал на нее ядро и rootfs. Загрузка системы происходит успешно.

 

Пробовал загрузку по tftp. Загружаю u-boot 2013.04 с SD или по usb, и качаю ядро с tftp - сервера (файлы uImage и imx28-evk.dtb) с помощью программы Tftpd32. Затем командой bootm загружаю их. Как только начинает загружаться ядро ( Uncompressing Linux... done, booting the kernel), проц перезагружается.

К tftp-серверу запущенному на linux почему то не конектится. Запускал на готовой виртуальной машине, на которой сказано что tftp-сервер установлен. Пока не разбирался в данном вопросе.

 

Пробую опять загрузить в Nand flash через MfgTool. Указанную выше ошибку преодолел заменой файлов update.sb update_ivt.sb, собранных ltib (при запуске команды ./ltib --selectype и выборе в меню «mfg firmware profile» ). Процесс застрял на следующем во время загрузки ядра:

 

1 - Panel A Start processing Singlechip NAND <LIST/>.
1 - Panel A Start <CMD/> type="boot" body="Recovery" file="updater.sb" timeout="60" onError="" text="Booting update firmware.".
1 - Panel A Finished <CMD/> type="boot" body="Recovery" file="updater.sb" timeout="60" onError="" text="Booting update firmware." SUCCESS code=0.
1 - Panel A Start <CMD/> type="boot" body="Recovery" file="updater_ivt.sb" timeout="60" onError="" text="Booting update firmware.".
1 - Panel A Finished <CMD/> type="boot" body="Recovery" file="updater_ivt.sb" timeout="60" onError="" text="Booting update firmware." SUCCESS code=0.
1 - Panel A Start <CMD/> type="find" body="Updater" file="" timeout="180" onError="" text="".
1 - Panel A Finished <CMD/> type="find" body="Updater" file="" timeout="180" onError="" text="" SUCCESS code=0.
1 - Panel A Start <CMD/> type="push" body="mknod class/mtd,mtd0,/dev/mtd0" file="" timeout="10" onError="" text="".
Panel A: Operation stopped by user.

 

 

ucl.xml файл пока не менял.

 

 

Share this post


Link to post
Share on other sites

Вот хорошая статья про tftp-сервер на linux: Setting Up a TFTP Server

 

Если я правильно понял, задача в том, чтобы залить загрузчик в SPI Flash, а ядро и rootfs в NAND и вы пытаетесь сделать это с помощью MfgTool? При этом, ядро записанное на SD-карту, грузится нормально, а то же самое ядро, загружаемое ручками из консоли, перезагружает проц?

Попробуйте залить в SPI Flash с помощью MfgTool загрузчик (в wiki это пункт 4: SPI-Write uboot - запишет в микросхему SPI Flash только загрузчик imx28_ivt_uboot.sb (том /dev/mtd2)). А уже потом, из под загрузчика, с помощью команд tftpboot, nand erase и nand write, запишите в NAND ядро и rootfs.

Share this post


Link to post
Share on other sites

Наконецто удалось зашить образы в NAND. Сделал следующим образом: загрузил ядро Linux с SD, примонтировал flash-ку с необходимыми образами ядра и rootfs, и дальше выполнил последовательность действий, указанных вот по этой ссылке https://community.freescale.com/thread/276571.

 

Т.к. под linux ни разу не прогал, то сейчас стоит вопрос, как писать программы? Какую IDE использовать. В Windows часто приходилось пользоваться Eclipse и Qt. Под linux тоже они есть, либо же лучше использовать обычный текстовый редактор и потом просто компилить проект.

Share this post


Link to post
Share on other sites

Я использую Geany - простое, но очень функциональное мини-IDE.

Но я не применяю в своих приложениях графику. Вы же вроде планировали использовать Qt, тогда Qt Creator и т.п....

 

Путь примерно такой:

- собираете Qt под свою железку (информации в сети - море, рекомендую тот же community.freescale.com),

- заливаете собранные библиотеки на железку, запускаете демки

- настраиваете Qt Creator для сборки приложений под железку (это не делал, опыта нет).

 

На мой взгляд, Qt проще всего собрать, используя Buildroot, собирал так qt 4.8.5, но в последних релизах Buildroot есть Qt 5.x.x (погуглите Buildroot + Qt5).

 

 

Share this post


Link to post
Share on other sites

Возникла проблема. Во время сборки rootfs с помощью LTIB указываю toolchain gcc-4.4.4-.... Но после записи образа на плату и при попытки компиляции какого нибудь исходного файла выдает ошибку

 

gcc: not found

 

Пробовал задать во время сборки rootfs др. toolchain, от freescale (arm-fsl-linux-gnueabi-gcc). Но его тоже почему то нету в rootfs.

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