My friend and I are working on a portable Internet radio controlled by the Raspberry PI B + and a small touch screen. I am developing an interface with Qt-5.9, which I cross-compiled for the ARMv6 PI processor. My interface uses QML, so when I run my application everything works, but the QML animations are lagging. Accordingly, the console tells me that JML QML is not enabled ( JIT is disabled for QML. Property bindings and animations will be very slow. Visit https://wiki.qt.io/V4 to learn about possible solutions for your platform. ), So I looked at this page about the V4 engine and after about two weeks of trying, I found that the problem was the lack of the ability to use the Thumb-1 instruction set that V4 needs and HardFP. Raspby Jesse's configuration runs on Pi. So now I think this will work if I get a cross-compiler to work with the Thumb-1 set. I tried very hard, and in the end I had two problems.
- When I use the
-mthumb flag on the command line, I get this error: sorry, unimplemented: Thumb-1 hard-float VFP ABI . I need Thumb-1, I cannot change the Hard-Float implementation of the entire OS, and for ARMv6 there is no suitable compiler flag to disable VFP. - When I use the
-mthumb-interwork on the command line, compilation works, but the executable does not change due to the ABI setting ( https://gcc.gnu.org/onlinedocs/gcc-4.8.5/gcc/ARM-Options. html # ARM-Options ) ( -mthumb-interwork:... In AAPCS (the ABI) configurations this option is meaningless. ). I tried all possible ABIs, but none of them work and compile a working program.
I also read about some patches for RPi, but they were included in the upstream Qt a long time ago.
I changed the compiler arguments a bit (file: QT / qtbase / mkspecs / devices / linux-rasp-pi-g ++ / qmake.conf):
QMAKE_CFLAGS += \ -mthumb \ -mfpu=vfp \ -mtune=arm1176jzf-s \ -march=armv6zk \ -mabi=aapcs-linux
(This configuration does not work)
I configured QT with the following arguments:
./configure -release -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -skip webengine -make libs -no-icu -tslib -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v
I hope that you guys are smarter than me to solve these problems, because I think I did my best to make JIT work.
It would be bad if this problem was unsolvable, because Qt-QML is a very suitable GUI solution for embedded devices such as PI, and six out of eight RPis use this old ARMv6 processor.
thanks in advance
c ++ qt raspberry-pi jit qml
Benjamin zastrow
source share