C

Generating CMSIS-Packs

This page covers additional information regarding the generation of CMSIS-Packs.

Initial export of a CMSIS-Pack

Construct a call to qmlprojectexporter.

OptionDescription
${QUL_DIR}/bin/qmlprojectexporterTool to be called.
path/to/some.qmlprojectQML project file to be exported.
--platform <platform_name>Target platform name.
--project-type cmsisUse the CMSIS-Pack output format.
--toolchain <compiler_id>This option provides information about which compiler type the generated options should be compatible with. Possible options are gnu, ghs, iar, or msvc.

Note: For all GCC-compatible compilers, use "gnu".

--cxx-standard <C++ standard>>Optionally specify the C++ standard to use when processing the interface files listed in the QML project file.
--outdir <path>Output path to export the project.
--boarddefaults=<qul_dir>/platform/boards/<platform>/cmake/BoardDefaults_32bpp_default.qmlprojectconfigThe board defaults for each board to provide information about color depth and asset formats.
--selector a[,b...]If your QML project uses selectors to find the QML files and resources, provide these as a comma-separated list.

Creating a CMSIS-Pack

After exporting a project with the command described earlier, a <PROJECT_NAME>-<TARGET_PLATFORM>-<OS>-<COMPILER>-cmsis.pack CMSIS-Pack file is created under the <OUTPUT_FOLDER>/CMSIS directory.

Using the generated CMSIS-Pack

The generated CMSIS-Pack includes Qt Quick Ultralite headers, sources of the selected platform, and both the Qt Quick Ultralite Core and the selected platform's DeviceLink library. However, it does not include the application sources, which are generated dynamically by running qmlprojectexporter from the IDE afterwards. This enables you to modify the QML project and export it to the IDE project, without importing the static CMSIS-Pack again.

The overall workflow for the generated CMSIS-Pack is as follows:

  1. Import the CMSIS-Pack into the IDE.
  2. In the IDE project, the following CMSIS components will be available:
    • Graphics > Platform DeviceLink library is the prebuilt DeviceLink library for the exported platform.
    • Graphics > Platform sources contains the sources of the platform port used by Qt Quick Ultralite to interface with the target device.
    • Graphics > Qt Quick Ultralite headers includes all the headers used by the Qt for MCUs application.
    • Graphics > Qt Quick Ultralite libraries contains the libraries required by all the Qt for MCUs application projects. In Qt for MCUs 2.8.0 this component includes the libQulCore library.
    • Project > Qt for MCUs Application is the application project that is generated dynamically.

    Select Qt Quick Ultralite headers and Qt Quick Ultralite libraries. If you need the exported platform, select Platform sources and Platform DeviceLink library.

  3. Select Qt for MCUs Application and run the generator to add the application sources to <IDE_PROJECT>/RTE/qul_app/ directory.

    Note: When the Qt for MCUs application project is updated, you can regenerate the application source files from within the IDE by rerunning the generator and recompiling the IDE project.

  4. Integrate the Qt for MCUs application to the IDE project.

    The following example is a simple main function that configures and runs the Qt for MCUs application:

    #include "YourProject.h"
    
    #include <qul/application.h>
    #include <qul/qul.h>
    
    int main()
    {
        Qul::initHardware();
        Qul::initPlatform();
        Qul::Application app;
        static YourProject item;
        app.setRootItem(&item);
        app.exec();
        return 0;
    }

Available under certain Qt licenses.
Find out more.