From Direct Insight - About us:
Direct Insight was founded in 1992 to bring innovative solutions for electronic design, development, and test to sophisticated end-users, acting as a value-added reseller for start-ups needing a high standard of technical understanding and marketing, as well as world-class customer support
Direct Insight is a provider of BSPs (Board Support Packages) and services for QNX and the authorized QNX distributor for the UK and Ireland.
The company supports the development based on customers' own, or 3rd party, Hardware to create QNX-powered and certified products.
The QNX Neutrino Real-time Operating System (RTOS) is a full-featured, microkernel RTOS with proven reliability in more than 500 million embedded systems. Since 1980, thousands of companies have deployed QNX's real-time operating systems to ensure the ideal combination of performance, security, and reliability in mission-critical systems. At the core of QNX technology is the QNX Neutrino® Real-time Operating System (RTOS), a full-featured RTOS enabling next-generation products in every industry where reliability matters, including automotive, medical devices, robotics, transportation, and industrial embedded systems.
This Partner Demo Image makes it easy for you to evaluate QNX on Toradex Computer on Modules since you can deploy a pre-compiled binary image to the Hardware in a few steps. It is also a great starting point since it saves time and costs since you don't need to port a BSP from zero but instead use the BSP source-code to add your customizations on top.
Hardware
Note: there are QNX BSP ports available for other Toradex Computer on Modules in addition to the one supported by this Partner Demo Image. Learn more about all supported SoMs on the QNX software page.
The pre-built evaluation image is provided as-is, meant for evaluation only, and it may be suitable for application development as long as you don't need extra dependencies.
It is expected that you customize the BSP and build your image if you need to add your dependencies before production.
This section provides instructions for you to get started with QNX quickly.
Load the Toradex Easy Installer on the target module and select QNX from the list of available images.
Once the installation is done, power-off the board and ensure that you have access to the debug UART. Instructions and parameters are the same as from Configuring Serial Port Debug Console (Linux/U-Boot).
Power-on the board, and it will boot to a terminal on the debug UART interface:
Welcome to QNX Neutrino Initial Program Loader for NXP i.MX8QXP CPU Board (ARM Cortex-A35)
SCFW build version: 3353, SCFW commit: 494C97F3
SECO version: 2.3.1, commit: D7523FE8
Command:
Press 'D' for serial download, using the 'send to' utility
Press 'M' for eSD download, IFS filename MUST be 'QNX-IFS'.
Press 'E' for eMMC download, IFS filename MUST be 'QNX-IFS'.
Press 'F' for NOR flash download, IFS file MUST be at 0x100000 offset.
Select 'E' in order to load the IFS from the eMMC on the module (note that the IFS can also be hosted on an external SD card):
eMMC download...
load image done.
Found image @ 0x88000000
Jumping to startup @ 0x82300800
SCFW build version: 3353, SCFW commit: 494c97f3
i.MX8 Quad type detected
board_smp_num_cpu: 4 cores
Overriding 2V5 logic for ESAI0/ENET1 pads
MAC address for ENET0 is not programmed in Fuses. Random MAC will be used.
MAC address for ENET1 is not programmed in Fuses. Random MAC will be used.
MMFLAGS=1
Welcome to QNX700 on the Toradex Colibri iMX8X Colibri Evaluation Board (ARM Cortex-A35)
Starting Watchdog driver...
Setting OS clock from RTC
Starting random service ...
Starting Serial driver (/dev/ser1)...
Starting Serial driver (/dev/ser4)...
Starting I2C0,1,4,6,7,10 driver (/dev/i2c0,1,4,6,7,10)...
Bad bus speed: 100000: Function not implemented
Starting SPI2 driver (/dev/spi2)...
Starting SPI3 driver (/dev/spi3)...
Starting CAN driver (/dev/can0/*)...
Starting CAN driver (/dev/can1/*)...
Starting CAN driver (/dev/can2/*)...
Starting eMMC driver (/dev/emmcx)...
Starting SD1 memory card driver (/dev/sdx)...
Starting Network driver...
Starting OTG1 & OTG2 controller in the host mode (/dev/usb/*)....
Launching devb-umass for /dev/usb/* ...
Launching USB input driver ...
Starting Audio driver...
setting env variables.
#
Now you have access to the QNX terminal.
Since QNX is a Unix-like OS, it has several utilities well-known for Linux users. For instance, given that you have an Ethernet cable plugged to the carrier board, to get your board IP you can run ifconfig:
# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33136
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
fec0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
address: 3a:a9:5d:cc:21:73
media: Ethernet autoselect (100baseTX full-duplex,flowcontrol)
status: active
inet 192.168.10.41 netmask 0xffffff00 broadcast 192.168.10.255
inet6 fe80::38a9:5dff:fecc:2173%fec0 prefixlen 64 scopeid 0x11
To deploy and debug your own Hello World application, you need a QNX Software Development Platform (SDP) 7.0 license. You can get a trial from the 30 Day Evaluation on the QNX website. Instructions are provided on the page.
Follow the instructions from QNX to download and install the QNX Software Center (QSC).
Warning: you must install SDP 7.0. If you install 7.1 or newer, things may not work.
Open the QNX Software Center and install the SDP 7.0. Follow the QNX SDP Documentation for details. See a summary of the instructions below:
Make sure to select aarch64le
from the Target Architectures, as this is the a iMX8 based SoM.
Application development for QNX is done with the Momentics IDE. It is also installable from the QNX Software Center with few clicks:
Open the Momentics IDE. It can be launched from the QNX Software Center:
In previous steps, you have discovered the board IP address from the QNX command line. You will use it to configure the target device on Momentics.
Once the target is configured, you can switch to the QNX System Information perspective of the IDE to check if the device connection was successful. See a summary of the steps below:
On Momentics, create a new QNX Project > QNX Executable named hello-world
for the CPU Variant aarch64le
. On the configuration bar on the top of the IDE, select Debug, the hello-world project, and the board you've set up on the previous step, then click on the Debug button and the IDE will deploy the binary to the board and run it:
For more information about how to do QNX development, head over to the extensive partner documentation.
You must do some customization on the BSP, even if only to prepare the system for production by, e.g., removing debug features. You can do it by yourself or through one of our proven partners, including QNX themselves. To get the QNX BSP source-code for Colibri iMX8X, you must contact our sales team. DirectInsight also provides support for you to integrate standard boards or IP, through to complete turnkey project consulting.
The QNX documentation is a great starting point. QNX also provides training; if you are interested get in contact with our sales team, and they will connect you to the closest QNX sales representative.
Popular graphical frameworks are ported to run on QNX. Our partners provide some of them:
You must contact our partners to learn more about how to run their framework on QNX.
These release notes are strictly related to the test of the QNX Partner Demo Images in Toradex Hardware. These notes are not associated with QNX or the QNX software releases.
First release of the QNX Partner Demo Image for Colibri iMX8X. Features supported:
Download offline installers and older releases of the Partner Demo Image in this section.
Please get in contact with our sales team, and they will connect you to the closest QNX sales representative for information about developer seats, runtime licenses, and more.