2016-03-21 5 views
0

Такой же вопрос question был задан аналогичным образом, но ответ неудовлетворен. Вот почему я хотел задать следующий еще раз:Как создать приложения Qt для процессоров imx6?

  • Начиная только с Ubuntu 14.04 ОС, каковы шаги, которые я должен следовать, чтобы кросс-компиляции & развернуть мое приложение Qt GUI на встроенной плате с imx6 процессор?
  • Есть ли какие-либо инструменты & библиотеки, которые я должен установить, кроме Qt Creator & Qt 5?
  • После компиляции существуют ли какие-либо ограничения в функциональности приложения? Другими словами, что делает код на ПК, также делается на плате?
+0

https://community.freescale.com/docs/DOC-94066 Посмотрите здесь! :) –

+0

Я знаю об этой странице, но это объясняется только после того, как вы создали изображение yocto & imx6. Мне также нужна первая часть – OnurA

ответ

2

Это огромный вопрос!

Как минимум вам нужен кросс-компилятор, который работает на вашей системе Ubuntu, но создает двоичные файлы для вашего iMX6 (ARM). Как правило, при загрузке Qt он также компилирует с ним компилятор, этот компилятор построен для запуска на платформе, которую вы загрузили Qt, и для создания бинарных файлов для этой же платформы. Вам нужно скомпилировать компиляцию, поэтому ваш хост (возможно) x86, но ваша цель - ARM. Таким образом, вам либо нужно получить заранее построенный компилятор и цепочку библиотек, которые работают на x86, и генерируют бинарные файлы ARM или создают их самостоятельно. Для популярных встроенных платформ (например, Raspberry Pi) есть предварительно построенные инструментальные цепочки, для плат разработки для продавцов обычно доступна предварительно построенная инструментальная цепочка какой-либо формы. Для полного контроля над продуктом вы обычно строите один, который точно соответствует вашим потребностям.

Если вы использовали создатель Qt на платформе ARM, кросс-компилятор не понадобился, однако встроенные среды, как правило, относительно медленны с ограниченными ресурсами, поэтому кросс-компиляция. Вы перекрестите компиляцию на быстрой машине, на которой есть все ваши инструменты, и запустите полученный двоичный файл на более медленной более ограниченной встроенной системе.

Затем вы должны перекрестно скомпилировать операционную систему, которая будет работать на iMX6, возможно, включая пользовательский загрузчик и драйверы, подходящие для вашей встроенной системы.

Затем вам нужно построить Qt против этой цели ARM.

Тогда вы можете создать свое приложение в Qt поверх всего этого.

Я бы предложил вам посмотреть на Yocto (https://www.yoctoproject.org/), чтобы создать минимальную систему для запуска на iMX6 вместе с партнером кросс-компилятора. В качестве альтернативы вы можете посмотреть crosstool-ng (http://crosstool-ng.org/), чтобы собрать компилятор, а затем вручную перевернуть O/S поверх него.

Обычно, если у вас есть плата разработчика от какого-либо производителя, они сделали все это для вас, чтобы вы могли хотя бы попробовать вещи в день 1!

+0

Какой из этих шагов относится к mkspecs? Как вы, наверное, знаете, в папке qt есть папка mkspecs, где вы можете выбрать архитектуру вашего целевого устройства? – OnurA

+0

В моем случае это было бы что-то вроде linux-imx6-g ++ и т. Д. – OnurA

+1

mkspecs - это всего лишь совокупность параметров компилятора для конкретной цели сборки, это способ управления деталями нескольких целей компиляции Qts. Вы бы указали на свою настраиваемую кросс-цепочку, т. Е. Вы создали нечто, называемое «linux-imx6-g ++», поэтому ваш mkspec будет ссылаться на него. – Joe

1

Используйте проект Yocto и найдите мета-слой на плате производителя/разработчика (toradex, NXP/Freescale и др.) Или Buildroot.

Для продукта, такого как Yocto Project.

+0

Я отчетливо вижу, что проект Yocto имеет поддержку плат NXP/Freescale, но я не знаю, к какому руководству следовать. – OnurA

+0

@OnurA, если вы используете модули Toradex, вы можете следить за этими вебинарами (https://www.toradex.com/webinars/building-embedded-linux-images-with-the-yocto-project-introduction & https: //www.toradex.com/webinars/building-embedded-linux-images-with-the-yocto-project-advanced) для создания образов Linux для модулей Toradex ARM. В веб-семинаре специально используется модуль NXP iMX6. В конце части 1 описывается создание SDK с проектом Yocto, который может быть адаптирован для включения поддержки Qt в SDK. Часть 2 веб-семинара включает поддержку Qt 5 в пользовательском образе Linux. – shibley

Смежные вопросы