工控網(wǎng)首頁
>

應(yīng)用設(shè)計

>

基于 NXP iMX8QM 運行 QNX

基于 NXP iMX8QM 運行 QNX

簡介

嵌入式領(lǐng)域的部分應(yīng)用對安全、可靠、實時性有切實的需求,在諸多實現(xiàn)該需求的方案中,QNX 是經(jīng)行業(yè)驗證的選擇。在 QNX SDP 8.0 上 BlackBerry 推出了 QNX Everywhere 項目,個人用戶可以出于非商業(yè)目的免費使用 QNX 操作系統(tǒng)。得益于 Toradex 和 QNX 的良好合作伙伴關(guān)系,用戶能夠在 Apalis iMX8QM 和 Verdin iMX8MP 模塊上輕松測試和評估 QNX 8 系統(tǒng)。下面將基于 Apalis iMX8QM 介紹如何運行 QNX。

下載 QNX
首先,在 QNX 網(wǎng)站上注冊帳號,待審核通過后,根據(jù)提示在 License Manager 頁面將授權(quán)部署到自己的帳號上。接下來下載 QNX Software Center,這里建議使用 Linux Host 本版。
安裝完 QNX Software Center 后,啟動 QNX Software Center 點擊 Add Installation。
分別選擇 QNX Momentics IDE 和 QNX Software Development Platform 8.0。
在 QNX Software Center 中點擊 Install New Packages。
并在 Availables 標(biāo)簽頁中選擇本次演示使用 Apalis iMX8QM 設(shè)備。
編譯 QNX BSP
打開 Momentics IDE,依次點擊 File > Import,在 QNX 文件夾中選擇 QNX Source Package and BSP。
然后點擊下面的 Browse for ZIP Archive。具體的路徑取決于之前選擇的安裝目錄,例如 /home/ben/qnx800/bsp 下的 BSP_apalis-imx8qm_br-hw-rel_be-800_SVN989187_JBN69.zip 是適用于 Apalis iMX8QM 的 BSP 文件。
導(dǎo)入 BSP 后,在 IDE 的項目瀏覽窗口中就可以編譯該 BSP 所需的所有文件。這些文件和目錄的具體說明可以參考 QNX 的網(wǎng)頁
在 IDE 中右擊該項目文件夾,然后點擊 Build Project。期間在下方的 Console 標(biāo)簽頁面會顯示完整的編譯過程。
當(dāng)編譯結(jié)束后,在項目的 image 文件下即會出現(xiàn)一個 zip 壓縮包。
在安裝前還需要進(jìn)行簡單的修改。解壓 zip 壓縮包后,在 image.json 文件中 filelist 添加 IMX-DTB。
          "name": "mmcblk0",           "partitions": [               {                   "partition_size_nominal": 64,                   "offset_in_sectors": 0,                   "want_maximised": false,                   "content": {                       "filesystem_type": "FAT",                       "filelist": [                           "qnx-ifs",                           "IMX-DTB"                       ],
下載 Apalis-iMX8_Reference-Multimedia-Image-Tezi_5.7.6+build.29.tar,解壓 Reference-Multimedia-Image-apalis-imx8.bootfs.tar.xz。根據(jù)實際使用 Apalis iMX8QM 和 Ixora 硬件版本,找到對應(yīng)的 dtb 文件將其重命名為 IMX-DTB,并放到上面 image.json 所在的目錄。最后在 Apalis iMX8QM 上使用 Toradex Easy Installer 進(jìn)行安裝。
QNX BSP 安裝完成后,啟動時在調(diào)試串口中按 E ,就可以繼續(xù)加載 QNX 系統(tǒng)。

Welcome to QNX Initial Program Loader for Toradex Apalis i.MX8QM(Rev B) SoM (ARM Cortex-A53/A72) SCFW build version: 4612, SCFW commit: 732e719a SECO version: 3.6.2, commit: 732e719a ATF commit: 2fa8c63 Command: Press 'D' for serial download, using the 'sendnto' utility Press 'M' for eSDC download, IFS filename MUST be 'QNX-IFS' Press 'E' for eMMC download, IFS filename MUST be 'QNX-IFS' eMMC download... load image done. Found image               @ 0x88000000 Loading FDT               @ 0x80400000 Jumping to startup        @ 0x80800800

ARM trusted firmware is enabled Hypervisor support disabled board_smp_num_cpu: 6 cores MMU: 16-bit ASID 40-bit PA TCR_EL1=00000012b5183519 ARM GIC-500 r1p1, arch v3.0 detected board_smp_num_cpu: 6 cores board_smp_num_cpu: 6 cores

調(diào)試 QNX 應(yīng)用程序
在 IDE 中點擊 File -> New -> QNX Project,選擇 C/C++ 類型中的 QNX Executable 項目模板。
Apalis iMX8QM 采用的是 64bit SoC,所以在 CPU Variant 中選擇 aarch64le 構(gòu)架。
在該項目文件夾上右擊 Build Project 即可編譯。完成后在 build/aarch64le-debug 目錄下生成編譯好的可執(zhí)行二進(jìn)制文件。
開始調(diào)試之前,需要知道運行 QNX 8 的 Apalis iMX8QM 的 IP 地址。在調(diào)試終端輸入 ifconfig命令后可以在 ffec0 接口中看到自動獲取的 IP。默認(rèn)的 QNX 8 采用隨機(jī) MAC 地址,所以每次重啟后自動獲取的 IP 將會發(fā)生變化。
# ifconfig ffec0: flags=8843metric 0 mtu 1500   options=80008   ether 62:73:64:54:6c:85   inet6 fe80::cf96:1b48:a747:aff1%ffec0 prefixlen 64 scopeid 0x5   inet6 fdcf:4b94:78d4:0:fdbd:f8e7:dce3:81ed prefixlen 64 autoconf   inet6 fdcf:4b94:78d4::274 prefixlen 128   inet 192.168.3.196 netmask 0xffffff00 broadcast 192.168.3.255   media: Ethernet autoselect (1000baseT)   status: active   nd6 options=1
IDE 和設(shè)備上運行的 qconn 代理建立 IP 連接,從而實現(xiàn)應(yīng)用程序的調(diào)試、監(jiān)控和分析。qconn 在 QNX 的 buildfile 中默認(rèn)已經(jīng)添加,并開機(jī)自動運行。在調(diào)試終端里運行下面命令可以查看運行情況,默認(rèn)監(jiān)聽 8000 端口。
# pidin | grep qconn 114714   1 usr/sbin/qconn                10r SIGWAITINFO                                 114714   2 usr/sbin/qconn                10r RECEIVE 
點擊 IDE 中的調(diào)試圖標(biāo)旁邊的下拉三角形,選擇 Debug As -> C/C++ QNX Application。
在彈出的對話框中點擊下方的 New QNX Target 添加需要調(diào)試的設(shè)備。
輸入 Apalis iMX8QM 的 IP 地址。然后選中添加的設(shè)備,并點擊 OK。
然后 IDE 會進(jìn)入調(diào)試界面,在這里可以進(jìn)行調(diào)試操作如單步運行。
總結(jié)
文章介紹了如何借助 QNX Everywhere 項目在 Apalis iMX8QM 使用 QNX 系統(tǒng)。這里主要涉及 QNX 開發(fā)環(huán)境安裝、配置和應(yīng)用開發(fā)說明,關(guān)于 QNX OS 定制、應(yīng)用集成等請參考 QNX 官方資料,為您的項目選擇最合適方法。

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

通過恢復(fù)模式更新 Toradex ARM 計算機(jī)模塊 BSP 鏡像

Yocto Linux BSP7 新版本介紹

基于 NXP iMX8MP 平臺簡單測試 PySide6 應(yīng)用

Verdin AM62使用CODESYS

Verdin AM62 引腳復(fù)用配置