繁体   English   中英

关于Raspberry PI Rev. 1的Qt-QML JIT

[英]Qt-QML JIT on Raspberry PI Rev. 1

我和我的朋友正在研究由Raspberry PI B +和一个小触摸屏驱动的便携式互联网收音机。 我正在使用Qt-5.9开发接口,我已经为PI的ARMv6 CPU交叉编译了。 我的界面正在使用QML,所以当我启动我的应用程序时,每一个工作但QML动画都是滞后的。 因此,控制台告诉我QML JIT未启用( 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. )所以我查看了关于V4引擎的给定页面,经过大约两周的试用,我发现问题是缺少使用Thumb-1指令集的可能性,这是V4和HardFP所需要的。在Pi上运行的Raspbian Jessie的配置。 所以现在我认为如果我让交叉编译器使用Thumb-1集合它会工作。 我尝试了很多,最后我遇到了两个问题。

  1. 当我在命令行中使用-mthumb标志时,我收到此错误: sorry, unimplemented: Thumb-1 hard-float VFP ABI 我需要Thumb-1,我不能改变整个操作系统的Hard-Float实现,并且ARMv6没有合适的编译器标志来禁用VFP。
  2. 当我在命令行中使用-mthumb-interwork标志时,编译工作,但可执行文件不会因ABI设置而改变( 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. )。 我尝试了所有可能的ABI但没有一个工作并编译正在运行的程序。

我也读过关于RPi的一些补丁,但很久以前它们被包含在上游Qt中。

我稍微修改了编译器参数(文件:QT / qtbase / mkspecs / devices / linux-rasp-pi-g ++ / qmake.conf):

QMAKE_CFLAGS           += \
                      -mthumb \
                      -mfpu=vfp \
                      -mtune=arm1176jzf-s \
                      -march=armv6zk \
                      -mabi=aapcs-linux

(此配置不起作用)

我使用以下参数配置QT:

./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

我希望你们在解决这些问题上比我聪明,因为我认为我尽一切可能让JIT正常工作。

如果这个问题无法解决会很糟糕,因为Qt-QML对于像PI这样的嵌入式设备来说是一个非常合适的GUI解决方案,而八个RP中的六个正在运行这个旧的ARMv6 CPU。

先感谢您

我对你的具体问题了解不多,但我建议:

我建议你使用Boot2Qt,这是一个yocto-linux版本,专为嵌入式硬件而设计。 有了它,您将获得一个轻量级的Linux发行版和所有Qt-Libraries。

您可以方便地将应用程序设置为在启动时启动,即使在慢速硬件上也能很好地运行。 这是关于构建它的文档:

http://doc.qt.io/QtForDeviceCreation/qtee-custom-embedded-linux-image.html

这个网址是关于商业产品的,但你可以在下面的回购中找到来源。 否则,请按照文档的说明进行操作。

git clone git://code.qt.io/yocto/meta-boot2qt.git

您将需要一个Linux操作系统来构建。 Ubuntu 16和18对我来说效果很好。

Boot2Qt与R-PI 1-3,Zero和许多其他设备兼容。 有关更完整的列表,请参阅文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM