But when we were launching the application on the target board we received the “Out Of Memory” error. We built our modified application in Embox and checked that it successfully ran on QEMU. We modified the code of ‘animatedtiles’ a little, adding the ‘-fullscreen’ option. ![]() After that, we were entirely convinced that the only top half of the screen was used to display the application. We found in the source code (examples/animation/animatedtiles/main.cpp) that the application starts with “view->show()”, that means not in the full-screen mode. We got the same picture in the top half of the screen. examples/animation/animatedtiles/animatedtiles -qws -display QVFb:0 You should specify QVFB as a display when starting the application. ![]() The build stage is as usual for Qt ( qmake make ). configure -opensource -confirm-license -debug \ -embedded -qt-gfx-qvfb -qvfb \ -no-javascript-jit -no-script -no-scripttools \ -no-qt3support -no-webkit -nomake demos -nomake examplesįinally, let’s build and start ‘animatedtiles’. The resulting configuration line was the following. Also we disabled some other unnecessary options and modules. This option is designed to run Qt without X11 or existing graphical environments, QWS (Qt Windowing System) will be used instead. You also should build Qt library with an embedded profile, namely with ‘-embedded’ option. Then you can launch QVFB with required screen resolutions (480×272 for STM32F746G-Discovery). You can build QVFB as described in the official documentation. To run this example and debug your application, you need the Qt library itself as well as QVFB, which is a Qt application providing a virtual screen. Of course, we could try to solve the trouble through debugging immediately on the board but there is an easier way: We can start and debug the example in the Linux environment first. ![]() We successfully started ‘animatedtiles‘ on our target board STM32F746G-Discovery, but we noticed that only the top half of the screen was drawn. When ‘animatedtiles’ had started on QEMU, we easily added necessary components to config files for the STM32. This will help us to make sure that all the necessary components are available. Using QEMU means that we do not need to take care of memory consumption in this case. The simplest way to do this is to build the application for QEMU, which is an open source emulator. It is interactive therefore we can use a touchscreen and also it looks like 3D animation.įirst of all, let’s build our application as a part of Embox. It is a rather nice example which looks cool even on desktops. However we wanted to go further and launch an example with a touchscreen.We choose another standard example, ‘animatedtiles’. Some time ago we managed to launch a standard Qt example ‘moveblocks’ on STM32F746-Discovery. We use two single-core Cortex-M7 based boards (216MHz): STM32F746g-Discovery and STM32F769i-Discovery, which have touchscreens with 480×272 and 800×480 screen resolution, respectively. In this article, we discuss launching a basic Qt application on an embedded MCU running the Embox RTOS. ![]() Using a real-time operating system (RTOS) such as Embox RTOS, which allows use of Linux software everywhere including MCUs, developers can more easily develop smart devices that are less expensive and consume less power. On the other hand, modern microcontrollers (MCUs) have a lot of resources that are enough for many smart tasks. But the Linux requires rather large hardware resources, most notably memory, so the target platform will typically be rather expensive and have high power consumption. This can be easily achieved with Linux, which offers software for every case you wish. More and more functionality is expected from embedded systems for smart products.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |