roboforum.ru

Технический форум по робототехнике.

QT для mini2440 под Qtopia

Ответить

Re: QT для mini2440 под Qtopia

Resident » 08 июл 2010, 18:33

setar писал(а):
"Illegal instuction" лечится установкой флага QMAKE_CFLAGS_RELEASE в -O0 вместо -O2
Знаю, я это сам написал)
точнее сдер с забегорного форума...
не помогает (((

На другом наткнулся вот на что:
If you're staring at "illegal instruction error" problems, and using arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2008q3-72) 4.3.2, you need this:
-msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4 -mtune=arm920t
Осталось понять ШО С ЭТИМ ДЕЛАТЬ? и куда эти флаги прописывать...
А может и это не поможет... *пошел разбираться*

Re: QT для mini2440 под Qtopia

setar » 08 июл 2010, 18:59

это флаги компилятора их нужно подсовывать примерно так:
CROSS_COMPILE=armv4tl-softfloat-linux-gnueabi- CFLAGS="-O2 -march=armv4 -mtune=arm920t -pipe" CXXFLAGS="${CFLAGS}" make ...
если не получится попробовать -o0 (но второй уровень оптимизации кода предпочтительнее)

Добавлено спустя 2 минуты 35 секунд:
или в экспорт загнать, чтобы постоянно не набирать:

cat ./set_mini2440_env.sh

Код: Выделить всёРазвернуть
#!/bin/bash
export CROSS_COMPILE="armv4tl-softfloat-linux-gnueabi-"
export CFLAGS="-O2 -march=armv4 -mtune=arm920t -pipe"
export CXXFLAGS="${CFLAGS}"


Добавлено спустя 6 минут 21 секунду:
ещё можно взять настроечки из кросс сборки gentoo
CHOST=armv4tl-softfloat-linux-gnueabi
CBUILD=i686-pc-linux-gnu
ARCH=arm


HOSTCC=i686-pc-linux-gnu-gcc
E_MACHINE=EM_ARM


ROOT=/home/mini2440/arm-system/
CROSSROOT=/usr/$CHOST/

ACCEPT_KEYWORDS="arm"

USE="${ARCH} zlib bindist make-symlinks python perl -kde -qt X"

MARCH_TUNE="-march=armv4t -mtune=arm920t"

CROSS_LIB="-I${CROSSROOT}usr/include/ -I${CROSSROOT}include/ "
CROSS_LD="-L${CROSSROOT}lib -L${CROSSROOT}usr/lib "
CFLAGS="-Os -pipe ${MARCH_TUNE} -fomit-frame-pointer -isystem${ROOT}usr/include/ -isystem${ROOT}include/"
CXXFLAGS="${CFLAGS}"
LDPATH="${ROOT}lib:${ROOT}usr/lib:${LDPATH}"
LD_LIBRARY_PATH="${ROOT}lib:${ROOT}usr/lib:${LD_LIBRARY_PATH}"
LDFLAGS="-Wl,--as-needed -L${ROOT}lib -L${ROOT}usr/lib"

FEATURES="-collision-protect sandbox buildpkg noman noinfo nodoc"
# Be sure we dont overwrite pkgs from another repo..
PKGDIR=${ROOT}packages/
PORTAGE_TMPDIR=${ROOT}tmp/

ELIBC="uclibc"

PKG_CONFIG_PATH="${ROOT}usr/lib/pkgconfig/"
#PORTDIR_OVERLAY="/usr/portage/local/"

LIBDIR_arm="${ROOT}/usr/lib"
LIBDIR_amd64=lib64
UCLIBC_CPU_DEFAULT="GENERIC_ARM"
MAKEOPTS=-j2
CONFIG_SITE="/home/mini2440/config.site"
GENTOO_MIRRORS="http://mirror.ovh.net/gentoo-distfiles/ ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ "
INPUT_DEVICES="keyboard mouse"
VIDEO_CARDS="vesa via"


зелёненьким я пометил обще линуксовые переменные

Re: QT для mini2440 под Qtopia

serg_io » 08 июл 2010, 19:11

http://www.friendlyarm.net/forum/topic/439, последние несколько постов смотри

Re: QT для mini2440 под Qtopia

Andrey37 » 08 июл 2010, 20:20

QT 4.6.3 ругается на изменения О2 на О0, а 4.6.2 не нравится tslib :))

Re: QT для mini2440 под Qtopia

Resident » 08 июл 2010, 20:25

serg_io писал(а):http://www.friendlyarm.net/forum/topic/439, последние несколько постов смотри
Не наш ли это serg_io? )))
Завтра попробую эти флаги. Я так понял это опять Qt рекомпилить придется... еще несколько часов ожидания...

ЗЫ Еще такой вопрос:
или в экспорт загнать, чтобы постоянно не набирать:
Где находится файл, куда export загоняет передаваемые данные? (чтобы знать, что править, если друг загоню что-то не то :) )

Re: QT для mini2440 под Qtopia

setar » 08 июл 2010, 20:36

экспорт загоняет переменные в память, причем хранится оно только для текущей сессии
если выйти из консоли (Ctrl+d или exit) а потом зайти заного то перепенные установленные руками сбросятся

аналогично эти переменные не распространяются на соседнюю открытую консоль

есть файл с переменными по умолчанию (даже несколько файлов) например эти переменные могут определяться в файле ~/.bashrc (в случае если консоль пользователя bash этот файл запускается при логине в систему).
но ставить туда переменные кросс компиляции не рекомендую - не сможете собрать ничего для x86

Re: QT для mini2440 под Qtopia

Resident » 09 июл 2010, 13:30

Откомпилил Qt с флагами френдлиарма, прога стартует :Yahoo!: до первого прикосновения к тачскрину :( , потом опять иллегал инстракшнс :cry:
судя по всему ts-lib тоже нужно с этими флагами откомпилить... :%)
что прописывать в экспорт? подскажите нюбу :roll:
Этого хватит?
Код: Выделить всёРазвернуть
#!/bin/bash
export CFLAGS="-O2 -march=armv4 -mtune=arm920t -pipe"
export CXXFLAGS="${CFLAGS}"

или ко всем флагам применять?? (без QMAKE_ разумеется)
QMAKE_CFLAGS_RELEASE += -march=armv4 -mtune=arm920t
QMAKE_CFLAGS_DEBUG += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_MT += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_MT_DBG += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_MT_DLL += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_MT_DLLDBG += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_SHLIB += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_THREAD += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_WARN_OFF += -march=armv4t -mtune=arm920t
QMAKE_CFLAGS_WARN_ON += -march=armv4t -mtune=arm920t

QMAKE_CXXFLAGS_DEBUG += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_MT += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_MT_DBG += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_MT_DLL += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_MT_DLLDBG += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_RELEASE += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_SHLIB += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_THREAD += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_WARN_OFF += -march=armv4t -mtune=arm920t
QMAKE_CXXFLAGS_WARN_ON += -march=armv4t -mtune=arm920t

Re: QT для mini2440 под Qtopia

serg_io » 09 июл 2010, 15:21

Думаю должно хватить и первого, по моему достаточно и CFLAGS. Но лучше указать его TsLib при конфигурированиии.

Добавлено спустя 3 минуты 16 секунд:
Вчера, кстати, собрал Qtopia 2.2.0, что выложена на Friendyarm - запустилась и работает довольно сносно на первый взгляд. А под x86 тоже кстати собралось. Единственно она требует некоторых внешних библиотек: libjpeg и libuuid

Re: QT для mini2440 под Qtopia

Resident » 09 июл 2010, 16:56

компилил tslib вот так:
Код: Выделить всёРазвернуть
export CFLAGS="-O2 -march=armv4 -mtune=arm920t -pipe" 
export CXXFLAGS="${CFLAGS}"
./configure CC=arm-none-linux-gnueabi-gcc CFLAGS="-O2 -march=armv4 -mtune=arm920t -pipe" CXX="arm-none-linux-gnueabi-g++ -O0 -march=armv4 -mtune=arm920t -pipe" -host=arm-none-linux-gnueabi -target=arm-none-linux-gnueabi -enable-static=no -enable-shared=yes -prefix /usr/local/tslib

вроде все скомпилилось, но после конфига Qt с таким tslib-ом при попытке билда вылезло вот ЭТО
Код: Выделить всёРазвернуть
[root@localhost qt-everywhere-opensource-src-4.6.3]# make
cd src/tools/bootstrap/ && make -f Makefile
make[1]: Entering directory `/home/gambit/qt-everywhere-opensource-src-4.6.3/src/tools/bootstrap'
g++ -c -O2 -march=armv4 -mtune=arm920t -pipe -I/usr/local/tslib/include -fno-exceptions -O0 -fPIC -Wall -W -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_GEOM_VARIANT -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_STL -DQT_NO_SYSTEMLOCALE -DQT_NO_TEXTSTREAM -DQT_NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -I../../../mkspecs/qws/linux-x86-g++ -I. -I../../../include -I../../../include/QtCore -I../../../include/QtXml -I../../3rdparty/zlib -o .obj/release-static-emb-arm/qisciicodec.o ../../corelib/codecs/qisciicodec.cpp
../../corelib/codecs/qisciicodec.cpp:1: ошибка: bad value (armv4) for -march= switch
../../corelib/codecs/qisciicodec.cpp:1: ошибка: bad value (arm920t) for -mtune= switch
make[1]: *** [.obj/release-static-emb-arm/qisciicodec.o] Ошибка 1
make[1]: Leaving directory `/home/gambit/qt-everywhere-opensource-src-4.6.3/src/tools/bootstrap'
make: *** [sub-tools-bootstrap-make_default-ordered] Ошибка 2
[root@localhost qt-everywhere-opensource-src-4.6.3]#

Не любит Qt эти переменные (((

Re: QT для mini2440 под Qtopia

serg_io » 09 июл 2010, 18:46

Это все от того, что ты глобально выставил CFLAGS и CXXFLAGS ( через export). Получается, что они у тебя применились не только к кросс-компилятору, но и к х86 компилятору.

Re: QT для mini2440 под Qtopia

Resident » 09 июл 2010, 19:11

serg_io писал(а):Это все от того, что ты глобально выставил CFLAGS и CXXFLAGS ( через export). Получается, что они у тебя применились не только к кросс-компилятору, но и к х86 компилятору.
Значит все-таки не стоило делать так:
Код: Выделить всёРазвернуть
export CFLAGS="-O2 -march=armv4 -mtune=arm920t -pipe" 
export CXXFLAGS="${CFLAGS}"

Прописал в qmake.conf
Код: Выделить всёРазвернуть
QMAKE_CFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4 -mtune=arm920t
QMAKE_CXXFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4 -mtune=arm920t

Компиляция пошла.... :)
Результаты будут в понедельник утром :D
На выходных отдыхать нужно ;)

Re: QT для mini2440 под Qtopia

serg_io » 09 июл 2010, 21:59

Собрал и запустил QT-4.6.2, надеялся что чудеса случаются. Но нет, ресурсов жрет немеряно. Все-же остановлюсь на Qtopia.

Re: QT для mini2440 под Qtopia

Resident » 09 июл 2010, 23:55

serg_io писал(а):Собрал и запустил QT-4.6.2, надеялся что чудеса случаются.
Мануальчик сварганишь?
с основными шагами и всем необходимыми флагами? :oops:
serg_io писал(а): Все-же остановлюсь на Qtopia.
2.2.0 или у тебя есть что посвежее?
помоему последние версии только в комершал варианте предлагают :(

Re: QT для mini2440 под Qtopia

serg_io » 10 июл 2010, 00:02

QT-4.6.2 я собирал через Buildroot, могу выложить сконфигурированый, скажи куда. Мануалы писать некогда, спрашивай что интересует.
Qtopia 2.2.0 меня всем устраивает, кроме GPL лицензии. Но что делать. Я честно говоря не понимаю зачем 4.6.2 на этой машинке, может пояснишь? Встроеный QT-2.3.12 позволяет сделать многое, график нарисовать и пару кнопок сделать я думаю не проблема.

Re: QT для mini2440 под Qtopia

Resident » 10 июл 2010, 12:57

serg_io писал(а):QT-4.6.2 я собирал через Buildroot, могу выложить сконфигурированый, скажи куда.
Да хоть куда!, таже рапида, дипозиты, летитбиты.... любой файлообменник, можно на торрент...
serg_io писал(а):Мануалы писать некогда, спрашивай что интересует.
ну я, можно сказать, уже на финишной прямой (я надеюсь во всяком случае)...
serg_io писал(а):Я честно говоря не понимаю зачем 4.6.2 на этой машинке, может пояснишь? Встроеный QT-2.3.12 позволяет сделать многое, график нарисовать и пару кнопок сделать я думаю не проблема.
СДК под Qtopia 2.2.0 где взять? чтобы на хост-машине в QtCreator-e клепать формочки и компилить? И в каком виджете там рисовать графики?
Да и покрасивше Qt4х будет и виджетов с плагинами для него поболее сделано...ИМХО.
На ютубе куча видео с миньками на довольно приемлемой скорости гоняют. Взять даже к примеру QWT демку или Акселерометр
Может я и не прав. тогда поправте...


Rambler\'s Top100 Mail.ru counter