1引言 通常情況下工程師在調試Qt程序時,需要頻繁制作鏡像燒錄到核心板來測試Qt程序是否完善,這樣的操作既費時又費力。這時我們可以通過QtCreator設備功能,定義設備后,在x86_64虛擬機上交叉編譯qt程序,將程序遠程部署到arm64的機子上,然后遠程調試,大大提高開發效率。 2. 調試環境 本文基于HD-T113-EVM評估板進行驗證,HD-T113-EVM基于HD-T113-S3核心板設計,具備千兆網口、雙路CAN-bus、2路RS-232、2路RS-485、LCD、4G/5G、WiFi、音頻等,接口豐富,適用于工業現場應用需求,亦方便用戶評估核心板及CPU的性能。
2.1 調試前準備 使win10主機、arm開發板和linux虛擬機處于同一網段且三者能互相ping通配置虛擬機ip。虛擬機需要按照以下截圖步驟進行設置。 2.2 交叉編譯環境設置 /work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/qt5/bin/qmake 2.2.1 編譯器 GCC /work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/bin/arm-linux-gnueabihf-gcc G++ /work/T113_Tina5.0/out/t113/hd-t113-evm-emmc/buildroot/buildroot/host/bin/arm-linux-gnueabihf-g++ 2.2.2 Kits 2.3 創建新設備 打開工具->選項->設備,添加新的Generic Linux Device設備。 2.3.1 測試成功 2.3.2 測試失敗 1 - 錯誤描述SSH connectionfailure 錯誤分析No routeto tohst找不到主機 解決方案檢查虛擬機與開發板ip是否處于同一網段并且能互相ping通 2 - 如虛擬機與開發板可以正常ping通但無法ssh登錄開發板 原因:一臺主機上有多個Linux系統,會經常切換,那么這些系統使用同一ip,登錄過一次后就會把ssh信息記錄在本地的/.ssh/known_hsots文件中,切換該系統后再用ssh訪問這臺主機就會出現沖突警告,需要手動刪除修改known_hsots里面的內容。 有以下兩個解決方案: 1.刪除修改known_hsots記錄,重新登錄,使known_hsots生成新的記錄; 2.修改配置文件“~/.ssh/config”,添加下兩行, StrictHostKeyChecking no UserKnownHostsFile /dev/null 重啟服務器。 優缺點: 1.需要每次手動刪除文件內容,一些自動化腳本的無法運行(在SSH登陸時失敗),但是安全性高; 2.SSH登陸時會忽略known_hsots的訪問,但是安全性低; 2.4 設置Kits->Device 2.5 部署應用 1 - 新建項目時,選擇Kits為T113 2 - 編譯應用 3 - 部署應用到開發板 4 - 提示 部署成功后,可能會提示。kbcommon: ERROR: failed to add defaultinclude path /usr/share/X11/xkb 5–運行結果展示 |