[Development] Porting QT to new OS
thiago.macieira at intel.com
Thu Nov 7 06:42:20 CET 2019
On Wednesday, 6 November 2019 20:41:10 PST martin ribelotta wrote:
> This question is in the air time to time but the information is very
> disperse and not so convincent for me.
> Actually in my understand, Qt need:
> 1) POSIX compliant base (pthreads? mmap? fork?)
> I can disable parts individually or need some kind of #ifdef sparse by the
> code? I see some kind of preprocessor magic scattered in the code like
Yes, POSIX compliant base including pthreads and filesystem API. What the
filesystem API accesses is irrelevant, it just has to exist. Threading support
is mandatory in Qt, even though there are #ifndef QT_NO_THREAD around. Those
aren't tested and aren't guaranteed to even compile. You can try that at
first, but I recommend aiming for full threading.
> 2) QPA plugin
> Minimal is a good start point? I only have a framebuffer in memory
> directly accessable for the CPU and vsync interrupt (with manual page
Yes, that's minimal's purpose: something to get you started.
> 3) Support for atomics in target architecture?
> In my case maybe it wouldn't be a problem, the target is ARMv7 in thumb2
Atomics are mandatory. ARMv7-A and R have support for them. I don't know about
M and don't know about Thumb support.
Lacking atomic instructions is not an excuse. Atomics can be emulated with
locks. Also, since you'll be running with no MMU and single processor, maybe
regular accesses are atomic enough.
> 4) What about the memory footprint?
A couple of megabytes.
> What are the hot spots of qtcore in consumption?
Impossible to say without knowing what features you left enabled.
> I'm followin the Qt for MCU project with great interest but in this
> moment, my clients are looking for something really minimal like
> freeRTOS, and my intention is to evaluate the work for port Qt to
> Intuitively, it seems that port qt to a non-posix system can be a
> titanic task, but at least I want to evaluate the manpower for this.
Yes, don't go there. The only non-POSIX system supported is Windows.
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel System Software Products
More information about the Development