Jump to content

    

EV-iMX287-Micro

Я новичок во встраиваемых системах. Имею отладочный комплект 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this