QTCreator ARM Remote Debugging
1. 編譯 GDB for Qt Creator
下載 Qt Creator source code
切換至特定版本.
直接進入 qt-creator/dist/gdb 目錄, 已經預先定義好 Makefile.linux, Makefile.mingw (windows)與 Makefile.osx 三種 OS 下的 Makefile, 以下皆以 linux 環境做說明.
編譯前先編輯 Makefile.linux, 可以看到支援三種不同的 target codes:
targets=arm-none-linux-gnueabi
接下來是編譯
編譯完成後也會自動打包 qtcreator-gdb-7.8-linux-x86_64.tar.gz
這邊的 linix-x86_64 是 host 的執行環境. 壓縮包解開後的內容為
最後是 datadir, gdb-arm-none-linuxeabi 預設的路徑是 /usr/local/share/gdb, 然而 host 環境的檔案卻是在 /usr/share/gdb, 我的作法則是建立 symbolic link
# sudo ln -s /usr/share/gdb /usr/local/share/gdb
如果沒有設定則會導致本地端 gdb 啟動失敗
2. 設定 Qt Creator
如果要進行 arm 平台的 qt remote debugging, host 環境當然就要有對應的 cross compiler 與 arm 版本的 Qt library 與工具. 我使用的是 buildroot 搭配 code sourcery toolchain 產生 root filesystem 與 Qt library, 其中要特別注意的是, 為了佈署執行檔, arm 端還需要支援 ssh server 與 sftp server, 最簡單的作法是 buildroot 中直接加入 openssh
Qt Creator 中的設定包括 compiler, gdb, kit 與 remote device
Options -> Devices
設定 arm 端的 IP address, ssh user name, password/key; Free ports 是給 gdbserver 可以使用的範圍. 設定完成後可以用右方的 'Test' 確認連線設定是否正確
Options -> Build & Run
Compilers -> Add -> GCC, 設定 cross compiler g++ 路徑
Qt Versions, 設定 qmake 路徑
Debuggers, 指向前段自行編譯的 gdb for Qt Creator
Kits 選擇 device , compiler, debugger, 與 Qt version
最後是 arm 端使用的 gdbserver 有兩點要注意, 首先需要支援 '--once' 這個參數, 如果 toolchain 有提供可以直接使用, 或是到回到 qt-creator/dist/gdb 中, 自行手動編譯 gdbserver; 第二點是 Qt Creator 並不會幫你佈署 gdbserver, 要直接放在 arm 的 root filesystem 中, 一般安裝路徑是 /usr/bin/gdbserver, 或者是 ssh 登入後 $PATH 找得到的位置即可
下載 Qt Creator source code
- git clone --recursive https://git.gitorious.org/qt-creator/qt-creator.git
直接進入 qt-creator/dist/gdb 目錄, 已經預先定義好 Makefile.linux, Makefile.mingw (windows)與 Makefile.osx 三種 OS 下的 Makefile, 以下皆以 linux 環境做說明.
編譯前先編輯 Makefile.linux, 可以看到支援三種不同的 target codes:
- targets=x86_64-unknown-linux-gnu i686-unknown-linux-gnu arm-none-linux-gnueabi
targets=arm-none-linux-gnueabi
接下來是編譯
- make -f Makefile.linux
編譯完成後也會自動打包 qtcreator-gdb-7.8-linux-x86_64.tar.gz
這邊的 linix-x86_64 是 host 的執行環境. 壓縮包解開後的內容為
- python/
- gdb-arm-none-linux-gnueabi
最後是 datadir, gdb-arm-none-linuxeabi 預設的路徑是 /usr/local/share/gdb, 然而 host 環境的檔案卻是在 /usr/share/gdb, 我的作法則是建立 symbolic link
# sudo ln -s /usr/share/gdb /usr/local/share/gdb
如果沒有設定則會導致本地端 gdb 啟動失敗
2. 設定 Qt Creator
如果要進行 arm 平台的 qt remote debugging, host 環境當然就要有對應的 cross compiler 與 arm 版本的 Qt library 與工具. 我使用的是 buildroot 搭配 code sourcery toolchain 產生 root filesystem 與 Qt library, 其中要特別注意的是, 為了佈署執行檔, arm 端還需要支援 ssh server 與 sftp server, 最簡單的作法是 buildroot 中直接加入 openssh
Qt Creator 中的設定包括 compiler, gdb, kit 與 remote device
Options -> Devices
設定 arm 端的 IP address, ssh user name, password/key; Free ports 是給 gdbserver 可以使用的範圍. 設定完成後可以用右方的 'Test' 確認連線設定是否正確
Options -> Build & Run
Compilers -> Add -> GCC, 設定 cross compiler g++ 路徑
Qt Versions, 設定 qmake 路徑
Kits 選擇 device , compiler, debugger, 與 Qt version
最後是 arm 端使用的 gdbserver 有兩點要注意, 首先需要支援 '--once' 這個參數, 如果 toolchain 有提供可以直接使用, 或是到回到 qt-creator/dist/gdb 中, 自行手動編譯 gdbserver; 第二點是 Qt Creator 並不會幫你佈署 gdbserver, 要直接放在 arm 的 root filesystem 中, 一般安裝路徑是 /usr/bin/gdbserver, 或者是 ssh 登入後 $PATH 找得到的位置即可
0 個意見:
張貼留言
訂閱 張貼留言 [Atom]
<< 首頁