「インストール - CLion」の版間の差分

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の12版が非表示)
57行目: 57行目:
<br><br>
<br><br>


== PinePhone / Qtとの連携 ==
== Raspberry Pi / Qt 5との連携 ==
==== ツールチェーンの設定 ====
CLionを使用してRaspberry PiとQt 5のクロス開発を行う場合は、[[インストール_-_Qt5_Raspberry_Pi#CLion / Qt 5との連携]]のページを参照すること。<br>
[ファイル]メニューバー - [設定]を選択する。<br>
<br><br>
[設定]画面の左ペインにある[ビルド、実行、デプロイ] - [ツールチェーン]を選択する。<br>
 
[設定]画面の右ペインにある[+]アイコンを選択して、[システム]を選択する。<br>
== PinePhone / Qt 5との連携 ==
CLionを使用してPinePhoneとQt 5のクロス開発を行う場合は、[[インストール_-_Qt5_PinePhone#CLion / Qt 5との連携]]のページを参照すること。<br>
<br><br>
 
== MSP430との連携 ==
==== MSP430向けGCCツールチェーンのインストール ====
[https://www.ti.com/tool/MSP430-GCC-OPENSOURCE TIの公式Webサイト]にアクセスして、MSP430のGCCツールチェーンおよびMSP430の開発向けヘッダファイル群をダウンロードする。<br>
ダウンロードするファイルは2つである。<br>
* Mitto Systems GCC 64-bit Linux installer incl. support files
* Header and Support Files
<br>
<br>
* ツールチェーンの設定項目
ダウンロードしたファイルを解凍する。<br>
** [名前]
# MSP430 GCCツールチェーン
**: 任意の名前を入力する。
7z x msp430-gcc-full-linux-x64-installer-<バージョン>.7z
** [CMake:]
**: PinePhone向けQtライブラリのビルドに使用したCMakeファイルのパスを入力する。
# MSP430 開発向けヘッダファイル群
** [ビルドツール:]
unzip msp430-gcc-support-files-<バージョン>.zip
**: PinePhone向けQtライブラリのビルドに使用したNinjaファイルのパスを入力する。
mv msp430-gcc-support-files-<バージョン> <任意のディレクトリ>
** [C コンパイラー:]
**: PinePhone向けQtライブラリのビルドに使用したGCCファイルのパスを入力する。
**: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gcc
** [C++ コンパイラー:]
**: PinePhone向けQtライブラリのビルドに使用したG++ファイルのパスを入力する。
**: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-g++
** [デバッガー:]
**: GCCツールチェーンのGDBファイルのパスを入力する。
**: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gdb
<br>
<br>
[設定]画面の右ペイン下部にある[適用]ボタンを押下する。<br>
MSP430 GCCツールチェーンをインストールする。<br>
sudo ./msp430-gcc-full-linux-x64-installer-<バージョン>.run \
      --prefix <MSP430 GCCツールチェーンのインストールディレクトリ  例: /opt/TI/MSP430_GCC> \
      --mode xwindow --installer-language ja
# または
kdesu -c './msp430-gcc-full-linux-x64-installer-<バージョン>.run \
          --prefix <MSP430 GCCツールチェーンのインストールディレクトリ  例: /opt/TI/MSP430_GCC> \
          --mode xwindow --installer-language ja'
<br>
<br>
==== CMakeの設定 ====
/<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_consoleファイルに実行権限を付加する。<br>
[ファイル]メニューバー - [設定]を選択する。<br>
chmod +x /<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_console
[設定]画面の左ペインにある[ビルド、実行、デプロイ] - [CMake]を選択する。<br>
# または
[設定]画面の右ペインにある[+]アイコンを選択する。<br>
sudo chmod +x /<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_console
<br>
<br>
* CMakeの設定項目
==== MSP Flasherのインストール (ez-FETを使用する場合) ====
** [名前]
[https://www.ti.com/tool/ja-jp/MSP430-FLASHER TIの公式Webサイト]にアクセスして、MSP Flasherをダウンロードする。<br>
**: 任意の名前を入力する。
* Linux 64-Bit Installer for MSPFlasher
** [ビルドタイプ:]プルダウン
**: [Debug]または[Release]を選択する。
** [ツールチェーン:]プルダウン
**: 上記で設定したツールチェーン名を選択する。
** [ジェネレーター:]プルダウン
**: [デフォルトを使用する]を選択する。
**: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gcc
** [環境:]<br>[環境:]のテキストアイコンを選択して、[環境設定]画面を開く。<br>画面右上の[+]ボタンを押下して、各環境変数を設定する。
*** CMAKE_C_COMPILER
***: PinePhone向けQtライブラリのビルドに使用したGCCファイルのパスを入力する。
***: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-gcc
*** CMAKE_CXX_COMPILER
***: PinePhone向けQtライブラリのビルドに使用したG++ファイルのパスを入力する。
***: 例: /<GCCツールチェーンのインストールディレクトリ>/bin/aarch64-linux-gnu-g++
*** CMAKE_PREFIX_PATH
***: PinePhone向けQtライブラリのインストールディレクトリのパスを入力する。
***: 例: <PinePhone向けQtライブラリのインストールディレクトリ>
*** CMAKE_TOOLCHAIN_FILE
***: PinePhone向けQtライブラリのインストールディレクトリにあるビルド向けツールチェーンファイルのパスを入力する。
***: 例: /<PinePhone向けQtライブラリのインストールディレクトリ>/lib/cmake/Qt6/qt.toolchain.cmake
*** QT_QMAKE_EXECUTABLE
***: PinePhone向けQtライブラリのインストールディレクトリにあるqmakeファイルのパスを入力する。
***: 例: /<PinePhone向けQtライブラリのインストールディレクトリ>/bin/qmake-host
<br>
<br>
[設定]画面の右ペイン下部にある[適用]ボタンを押下する。<br>
ダウンロードしたファイルを解凍する。<br>
unzip MSPFlasher-<バージョン>-linux-x64-installer.zip
<br>
<br>
==== SSHの設定 ====
解凍したファイル (インストーラ) に実行権限を付加する。<br>
[ファイル]メニューバー - [設定]を選択する。<br>
chmod u+x MSPFlasher-<バージョン>-linux-x64-installer.run
[設定]画面の左ペインにある[ツール] - [SSH 構成]を選択する。<br>
[設定]画面の右ペインにある[+]アイコンを選択する。<br>
<br>
<br>
* SSH構成の設定項目
MSP Flasherをインストールする。<br>
** [ホスト:]
MSP Flasherのインストールディレクトリは、任意のディレクトリで構わない。<br>
**: PinePhoneのIPアドレスまたはホスト名を入力する。
./MSPFlasher-<バージョン>-linux-x64-installer.run
** [ユーザー名:]
**: PinePhoneのユーザ名を入力する。
** [認証タイプ:]プルダウン
**: [パスワード]または[キーペア]を選択する。
** [秘密鍵ファイル:] (キーペアを選択した場合)
**: 秘密鍵ファイルのパスを入力する。
** [パスフレーズ:] (キーペアを選択した場合、かつ、パスフレーズを設定した場合)
**: 秘密鍵のパスフレーズを入力する。
** [構成ファイル ~/.ssh/configの構文解析]チェックボックス
**: 任意
<br>
<br>
[接続テスト]ボタンを押下して、PinePhoneにSSH接続する。<br>
==== MSP Debugのインストール ====
MSP Debugのビルドに必要なライブラリをインストールする。<br>
# SUSE
sudo zypper install readline-devel libusb-1_0-devel libusb-compat-devel
<br>
<br>
[設定]画面の右ペイン右下にある[適用]ボタンを押下する。<br>
[https://github.com/dlbeer/mspdebug.git MSP Debug]のGithubにアクセスして、ソースコードをダウンロードする。<br>
git clone https://github.com/dlbeer/mspdebug.git
cd mspdebug
<br>
<br>
==== 各プロジェクトの設定 ====
MSP Debugをビルドおよびインストールする。<br>
CLionを起動して、[ファイル]メニューバー - [新規] - [プロジェクト...]を選択する。<br>
make PREFIX=<MSP Debugのインストールディレクトリ> -j $(nproc)
[新規プロジェクト]画面から、[Qt Console 実行可能ファイル]または[Qt Widgets 実行可能ファイル]を選択する。<br>
make PREFIX=<MSP Debugのインストールディレクトリ> install
<br>
<br>
新規プロジェクトの作成後、[実行]メニューバー - [実行構成の編集...]を選択する。<br>
==== MSP430向けGCCツールチェーンのアンインストール ====
[実行/デバッグ構成]画面が開くので、画面左上にある[+]ボタンを押下して、[リモート GDB サーバー]を選択する。<br>
/<MSP430向けGCCツールチェーンのインストールディレクトリ>/binディレクトリに移動する。<br>
画面左ペインに[リモート GDB サーバー]が追加される。<br>
cd /<MSP430向けGCCツールチェーンのインストールディレクトリ>/bin
画面左ペインに[リモート GDB サーバー]を選択して、各種設定を行う。<br>
<br>
<br>
* [ターゲット:]プルダウン
MSP430向けGCCツールチェーンをアンインストールする。<br>
*: プロジェクト名を選択する。
sudo ./uninstall
* [実行可能ファイル:]プルダウン
# または
*: プロジェクト名を選択する。
kdesu ./uninstall
* [GDB:]プルダウン
*: 上記のツールチェーンの作成セクションで設定したGDBを選択する。
* [資格情報:]プルダウン
*: 上記のSSHの設定セクションで設定したSSHを選択する。
* [実行可能ファイル...]ラジオボタン
*: 任意
* [アップロードパス:]
*: 実行可能バイナリが配置されるPinePhone上のディレクトリを入力する。
*: 例: /home/<PinePhoneのユーザ名>/CLion/Sample1/debug
* ['target remote' ...]
*: 自動的に入力される。
*: 例: <IPアドレスまたはホスト名>:1234
* [GDB サーバー引数:]
*: Qt WidgetsまたはQMLを使用するプロジェクトの場合、デバッグまたは実行時において、実行可能バイナリに<code>-platform wayland</code>オプションを付加する必要がある。
*: 例: <code>:<GDBサーバのポート番号 例: 1234> /<実行可能バイナリが配置されるPinePhone上のディレクトリ>/debug/<実行バイナリのファイル名> -platform wayland</code>
<br>
<br>
次に、[拡張 GDB サーバーオプション]項目を設定する。<br>
==== CLionの設定 ====
この設定は、PinePhoneにアップロードしたQtライブラリにおいて、デバッグまたは実行に関する設定を行う。<br>
===== CMakeツールチェーンファイルの作成 =====
* [作業ディレクトリ:]
vi /<MSP430プロジェクトのトップディレクトリ>/toolchain-msp430-gcc-ti.cmake
*: 何も入力しない。
* [環境変数:]<br>[環境変数:]項目の右にあるテキストアイコンを選択する。<br>[環境変数]画面が開くので、画面左上にある[+]ボタンを押下して各種設定を入力する。
** DISPLAY
**: :0
** QT_QPA_PLATFORMTHEME
**: Qt 6の場合 : qt6ct
**: Qt 5の場合 : qt5ct
** PATH
**: PinePhone上のQt6ライブラリをアップロードしたbinディレクトリのパスを入力する。
**: 例: /<Qt6ライブラリをアップロードしたディレクトリ>/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
** LD_LIBRARY_PATH
**: PinePhone上のQt6ライブラリをアップロードしたlibディレクトリのパスを入力する。
**: 例: /<Qt6ライブラリをアップロードしたディレクトリ>/lib:/<Qt6ライブラリをアップロードしたディレクトリ>/plugins/qmltooling
** QT_PLUGIN_PATH
**: /<Qt6ライブラリをアップロードしたディレクトリ>/plugins
** QT_QPA_PLATFORM_PLUGIN_PATH
**: /<Qt6ライブラリをアップロードしたディレクトリ>/plugins/platforms
** QML_IMPORT_PATH
**: /<Qt6ライブラリをアップロードしたディレクトリ>/qml
** QML2_IMPORT_PATH
**: /<Qt6ライブラリをアップロードしたディレクトリ>/qml
** QT_DEBUG_PLUGINS
**: 0または1を入力する。
** LANG
**: 日本語を設定する場合は、<code>ja_JP.UTF-8</code>と入力する。
<br>
<br>
また、[拡張 GDB サーバーオプション]項目の設定は、プロジェクトディレクトリ内の<u>.idea/runConfigurations/<プロジェクト名>.xml</u>ファイルに保存されている。<br>
<syntaxhighlight lang="cmake">
このファイルを直接編集することにより、上記の設定を行うこともできる。<br>
# /<MSP430プロジェクトのトップディレクトリ>/toolchain-msp430-gcc-ti.cmakeファイル
<br>
CLion上で上記の設定を行うには煩雑なため、ファイルを直接編集することを推奨する。<br>
include(CMakeForceCompiler)
  cd <プロジェクトディレクトリ>
  vi .idea/runConfigurations/<プロジェクト名>.xml
# ツールチェーン等のパス
<br>
SET(PLATFORM_PACKAGES_PATH    "<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス  例: /opt/TI/MSP430_GCC>")
  <syntaxhighlight lang="xml">
list(APPEND CMAKE_MODULE_PATH "<CLionのMSP430プロジェクトのトップディレクトリ  例: /home/user/MSP430Project>")
  <!-- .idea/runConfigurations/<プロジェクト名>.xml -->
list(APPEND CMAKE_MODULE_PATH "${PLATFORM_PACKAGES_PATH}/lib/cmake")
list(APPEND CMAKE_PREFIX_PATH "${PLATFORM_PACKAGES_PATH}/lib/cmake")
INCLUDE_DIRECTORIES("${PLATFORM_PACKAGES_PATH}/include ${INCLUDE_DIRECTORIES}")
# ターゲットデバイス名
SET(SUPPORTED_DEVICES "<ターゲットデバイス名  例: msp430g2553>" CACHE STRING "Supported Target Devices")
set(CMAKE_SYSTEM_NAME msp430-gcc)
# コンパイラの設定
SET(MSP430_TI_COMPILER_FOLDER  ${PLATFORM_PACKAGES_PATH})
SET(MSP430_TI_BIN_FOLDER        ${MSP430_TI_COMPILER_FOLDER}/bin)
SET(MSP430_TI_INCLUDE_FOLDER    ${MSP430_TI_COMPILER_FOLDER}/include)
SET(TOOLCHAIN_PREFIX            msp430-elf)
SET(TOOLCHAIN_BIN_PATH          ${MSP430_TI_BIN_FOLDER})
  SET(FLASHER_PATH                <上記のセクションでインストールしたMSP Flasherのパス  例: /home/user/MSPFlasher>)
  SET(MSPDEBUG_PATH              <上記のセクションでインストールしたMSP Debugのパス    例: /home/user/MSP_Debug/bin>)
SET(MSPDEBUG_DEVICE            ezfet)
INCLUDE_DIRECTORIES(${MSP430_TI_INCLUDE_FOLDER} ${INCLUDE_DIRECTORIES})
LINK_DIRECTORIES(${MSP430_TI_INCLUDE_FOLDER} ${LINK_DIRECTORIES})
FIND_PROGRAM(MSP430_CC      ${TOOLCHAIN_PREFIX}-gcc    PATHS ${TOOLCHAIN_BIN_PATH})
FIND_PROGRAM(MSP430_CXX    ${TOOLCHAIN_PREFIX}-g++    PATHS ${TOOLCHAIN_BIN_PATH})
FIND_PROGRAM(MSP430_AR      ${TOOLCHAIN_PREFIX}-ar      PATHS ${TOOLCHAIN_BIN_PATH})
FIND_PROGRAM(MSP430_AS      ${TOOLCHAIN_PREFIX}-as      PATHS ${TOOLCHAIN_BIN_PATH})
FIND_PROGRAM(MSP430_OBJDUMP ${TOOLCHAIN_PREFIX}-objdump PATHS ${TOOLCHAIN_BIN_PATH})
FIND_PROGRAM(MSP430_OBJCOPY ${TOOLCHAIN_PREFIX}-objcopy PATHS ${TOOLCHAIN_BIN_PATH})
FIND_PROGRAM(MSP430_SIZE    ${TOOLCHAIN_PREFIX}-size    PATHS ${TOOLCHAIN_BIN_PATH})
FIND_PROGRAM(MSP430_NM      ${TOOLCHAIN_PREFIX}-nm      PATHS ${TOOLCHAIN_BIN_PATH})
FIND_PROGRAM(MSPDEBUG      mspdebug                    PATHS ${MSPDEBUG_PATH})
FIND_PROGRAM(MSP430_FLASHER MSP430Flasher              PATHS ${FLASHER_PATH})
set(CMAKE_C_COMPILER    ${MSP430_CC} CACHE STRING "C Compiler")
set(CMAKE_CXX_COMPILER  ${MSP430_CXX} CACHE STRING "C++ Compiler")
set(AS    ${MSP430_AS} CACHE STRING "AS Binary")
set(AR    ${MSP430_AR} CACHE STRING "AR Binary")
set(OBJCOPY ${MSP430_OBJCOPY} CACHE STRING "OBJCOPY Binary")
set(OBJDUMP ${MSP430_OBJDUMP} CACHE STRING "OBJDUMP Binary")
set(SIZE    ${MSP430_SIZE} CACHE STRING "SIZE Binary")
IF(NOT CMAKE_BUILD_TYPE)
    SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
      "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
      FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)
set(MSPGCC_OPT_LEVEL    "g" CACHE STRING "MSPGCC OPT LEVEL")
  set(MSPGCC_WARN_PROFILE "-Wall -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wunused"
            CACHE STRING "MSPGCC WARNINGS")
  set(MSPGCC_DISABLED_BUILTINS "-fno-builtin-printf -fno-builtin-sprintf"
                              CACHE STRING "MSPGCC Disabled Builtins")
   
   
  <component name="ProjectRunConfigurationManager">
  set(MSPGCC_OPTIONS "-gdwarf-3 -fdata-sections -ffunction-sections -fverbose-asm ${MSPGCC_DISABLED_BUILTINS}"
  <configuration ...略>
                    CACHE STRING "MSPGCC OPTIONS")
    <envs>
      <env name="DISPLAY" value=":0" />
      <env name="LANG" value="ja_JP.UTF-8" />
      <env name="QML2_IMPORT_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/qml" />
      <env name="QML_IMPORT_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/qml" />
      <env name="QT_DEBUG_PLUGINS" value="0" />
      <env name="QT_PLUGIN_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/plugins" />
      <env name="QT_QPA_PLATFORM_PLUGIN_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/plugins/platforms" />
      <env name="QT_QPA_PLATFORMTHEME" value="qt6ct" />
      <env name="LD_LIBRARY_PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/lib:/<Qt6ライブラリをアップロードしたディレクトリ>/plugins/qmltooling" />
      <env name="PATH" value="/<Qt6ライブラリをアップロードしたディレクトリ>/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games" />
    </envs>
   
   
    <!-- ...略 -->
set(CMAKE_C_FLAGS  "${MSPGCC_WARN_PROFILE} ${MSPGCC_OPTIONS} -O${MSPGCC_OPT_LEVEL}  -DGCC_MSP430" CACHE STRING "C Flags")
   
   
  </configuration>
  set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--gc-sections -Wl,--print-gc-sections"
  </component>
                              CACHE STRING "Linker Flags")
</syntaxhighlight>
  set(CMAKE_EXE_LINKER_FLAGS "-Wl,--gc-sections"
<br>
                            CACHE STRING "Linker Flags")
 
==== GDBの設定 ====
プロジェクトにデバッグのためのより多くの設定が必要な場合、デバッガの初期化ファイル (GDBの場合は.gdbinit、LLDBの場合は.lldbinit) をプロジェクトディレクトリ直下に作成する。<br>
このファイルは、他のプロジェクトと一緒にVCSで共有することもできる。<br>
<br>
一般的に、GDB / LLDBは起動時に初期化ファイルを一定の順序で読み込む。<br>
まず、デバッガはユーザのホームディレクトリにある初期化ファイルを探して、次に、現在のプロジェクトディレクトリ直下にある初期化ファイルを探す。<br>
<br>
ただし、デフォルトの設定では、セキュリティ上の理由から、プロジェクト固有の初期化ファイルからのコマンドは実行されない。<br>
そのため、ホームディレクトリの初期化ファイルである<u>~/.gdbinit</u>ファイルまたは<u>~/.lldbinit</u>ファイルを、以下に示すように編集する。<br>
  vi ~/.gdbinit  または  vi ~/.lldbinit
<br>
<syntaxhighlight lang="sh">
# ~/.gdbinitファイル  または  ~/.lldbinitファイル
   
   
  set auto-load safe-path /
# リンカコマンドの設定
  set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_C_COMPILER> ${CMAKE_EXE_LINKER_FLAGS} <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"
                              CACHE STRING "C++ Executable Link Command")
   
   
  # または
  set(CMAKE_C_LINK_EXECUTABLE ${CMAKE_CXX_LINK_EXECUTABLE} CACHE STRING "C Executable Link Command")
   
   
  set auto-load local-gdbinit on
  set(PROGBIN    ${MSP430_FLASHER} CACHE STRING "Programmer Application")
add-auto-load-safe-path /
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
次に、プロジェクトディレクトリの直下に.gdbinitファイルを作成する。<br>
===== リンカコマンドファイルのコピー =====
cd <プロジェクトディレクトリ>
ターゲットデバイスのリンカコマンドファイルを、プロジェクトのトップディレクトリにコピーする。<br>
vi .gdbinit  または  vi .lldbinit
  cp /<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス>/include/<ターゲットデバイス名>.ld \
<br>
    <MSP430プロジェクトのトップディレクトリ>
  <syntaxhighlight lang="sh">
# /<プロジェクトディレクトリ>/.gdbinitファイル  または  /<プロジェクトディレクトリ>/.lldbinitファイル
   
   
  set sysroot <PinePhoneのシステムルートディレクトリ>
  # 例: MSP430G2553を使用する場合
</syntaxhighlight>
cp /<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス>/include/msp430g2553.ld \
    <MSP430プロジェクトのトップディレクトリ>
<br>
<br>
CLionを起動して、任意のプロジェクトを開く。<br>
===== プロジェクトの設定 =====
CLionのメイン画面左にあるプロジェクトに.gdbinitファイル、または、.lldbinitファイルが追加されているかどうかを確認する。<br>
# プロジェクトを開いて、[ファイル]メニューバー - [設定]を選択する。
# [設定]画面の左ペインから、[ビルド、実行、デプロイ] - [CMake]を選択する。
# [設定]画面の右ペインから、[+]アイコンを選択して、CMakeの設定を行う。
#* [名前]
#*: 任意の名前
#* [ビルドタイプ]プルダウン
#*: Debug
#* [ツールチェーン]プルダウン
#*: MSP430ツールチェーンを選択する。
#* [ジェネレーター]
#*: [デフォルトを使用する]
#* [CMakeオプション]
#*: <code>-DCMAKE_TOOLCHAIN_FILE=<上記のセクションで作成したCMakeツールチェーンファイルのパス></code>
# [OK]ボタンを押下する。
<br><br>
<br><br>




__FORCETOC__
__FORCETOC__
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:C]][[カテゴリ:C++]][[カテゴリ:Qt]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]][[カテゴリ:C]][[カテゴリ:C++]][[カテゴリ:Qt]][[カテゴリ:MSP430]]

2024年7月3日 (水) 12:45時点における最新版

概要

CLionは、C/C++向けのクロスプラットフォームIDEである。

  • コーディング支援
    エディタは、コードの読み取りと記述を効果的に行うことができる。
    スマート補完に入力すれば補完結果を絞り込み、パンくずリストでは範囲階層内で場所をトラッキングすることができる。
    また、パラメータ名ヒントのお陰で、関数呼び出しに関する洞察も得られる。
    シンボルの使用箇所をコンテキストに合わせて検索したり、名前を入力するだけでそのシンボルに移動することも可能である。
    CLionでは、書式設定や命名規則等も含む様々なコーディングガイドラインに準じたコード検証も行うことができる。

  • コード生成
    多数のボイラープレートコードを瞬時に生成する。
    関数のオーバーライドや実装には単純なショートカットが用意されており、コンストラクタ、デストラクタ、getter、setter、等値、リレーショナル、ストリーム出力演算子も生成できる。
    ステートメントでコードブロックをラッピングしたり、使用箇所から宣言を生成することも可能である。
    カスタムライブテンプレートを作成することにより、頻繁に使用するコードブロックをコードベース全体で再利用できるようになるため、開発にかかる時間を短縮して、一貫したスタイルを維持することができる。

  • 安全なリファクタリング
    シンボル名の変更、関数、変数、マクロのインライン化、階層内でのメンバの移動、関数シグネチャの変更、関数、変数、パラメータ、typedefの抽出等、
    使用する自動リファクタリングに関係なく、全コードへの適切な変更は、CLionが安全にプロパゲートする。

  • クイックドキュメント
    キャレットのあるコードをインスペクションすることにより、関数シグネチャの詳細、コメントの表示、Doxygen式ドキュメンテーションのプレビュー、明示的な型が不足するシンボルの推論型の確認、
    適切に書式設定された最終的なマクロの置換の確認まで、コードに関するあらゆる情報を知ることができる。
  • 統合デバッガ
    GDBまたはLLDBをバックエンドとして使用するCLionのデバッガを使用することにより、問題の調査と解決を難なく行うことができる。
    ローカルプロセスへのアタッチ、リモートデバッグが可能である。

    組み込み開発では、CLionのOpenOCD、Embedded GDB Server構成により、オンチップデバッグが可能となる。
    組み込みデバイス用の分解ビュー、メモリビュー、ペリフィラルビューを活用すれば、さらに詳細な情報を得ることができる。


また、統合されたC/C++開発環境として、以下に示すような特徴もある。

  • プロジェクトモデル
    CLionでは、プロジェクトモデルを使用して、コーディング支援、リファクタリング、コーディングスタイルの一貫性、その他のスマートアクションに関する情報をエディター内に表示する。
    CMake、Makefile、Gradle、コンパイルデータベース等に対応している。

  • リモートでのコラボレーション作業
    ソースコードをローカルで編集した後、アプリケーションまたはユニットテストをローカル、リモート、オンチップで、ビルドおよび実行できる。
    コラボレーション環境を向上させて、複数人とリアルタイムでCLionプロジェクトの作業を行うことができる。

  • 必要なものを全て1箇所に集約
    CLionには、VCS (SVN / Git / GitHub / Mercurial / Perforce)、ユニットテスト用のGoogle Test / Catch / Boost.Testフレームワーク、
    Doxygen、データベースツール、Markdown等をサポートしており、開発タスクに欠かせないあらゆる機能が含まれている。



CLionのインストール

CLionの公式Webサイトにアクセスして、CLionをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf CLion-<バージョン>.tar.gz
mv CLion-<バージョン> CLion


必要ならば、CLionを任意のインストールディレクトリに配置する。

mv CLion <任意のインストールディレクトリ>


CLionのデスクトップエントリファイルを作成する。
CLionを起動して、[ツール]メニューバー - [デスクトップエントリの作成]を選択する。
~/.local/share/applicationsディレクトリにCLionのデスクトップエントリファイルが作成される。


Raspberry Pi / Qt 5との連携

CLionを使用してRaspberry PiとQt 5のクロス開発を行う場合は、インストール_-_Qt5_Raspberry_Pi#CLion / Qt 5との連携のページを参照すること。


PinePhone / Qt 5との連携

CLionを使用してPinePhoneとQt 5のクロス開発を行う場合は、インストール_-_Qt5_PinePhone#CLion / Qt 5との連携のページを参照すること。


MSP430との連携

MSP430向けGCCツールチェーンのインストール

TIの公式Webサイトにアクセスして、MSP430のGCCツールチェーンおよびMSP430の開発向けヘッダファイル群をダウンロードする。
ダウンロードするファイルは2つである。

  • Mitto Systems GCC 64-bit Linux installer incl. support files
  • Header and Support Files


ダウンロードしたファイルを解凍する。

# MSP430 GCCツールチェーン
7z x msp430-gcc-full-linux-x64-installer-<バージョン>.7z

# MSP430 開発向けヘッダファイル群
unzip msp430-gcc-support-files-<バージョン>.zip
mv msp430-gcc-support-files-<バージョン> <任意のディレクトリ>


MSP430 GCCツールチェーンをインストールする。

sudo ./msp430-gcc-full-linux-x64-installer-<バージョン>.run \
     --prefix <MSP430 GCCツールチェーンのインストールディレクトリ  例: /opt/TI/MSP430_GCC> \
     --mode xwindow --installer-language ja
# または
kdesu -c './msp430-gcc-full-linux-x64-installer-<バージョン>.run \
          --prefix <MSP430 GCCツールチェーンのインストールディレクトリ  例: /opt/TI/MSP430_GCC> \
          --mode xwindow --installer-language ja'


/<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_consoleファイルに実行権限を付加する。

chmod +x /<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_console
# または
sudo chmod +x /<MSP430 GCCツールチェーンのインストールディレクトリ>/bin/gdb_agent_console


MSP Flasherのインストール (ez-FETを使用する場合)

TIの公式Webサイトにアクセスして、MSP Flasherをダウンロードする。

  • Linux 64-Bit Installer for MSPFlasher


ダウンロードしたファイルを解凍する。

unzip MSPFlasher-<バージョン>-linux-x64-installer.zip


解凍したファイル (インストーラ) に実行権限を付加する。

chmod u+x MSPFlasher-<バージョン>-linux-x64-installer.run


MSP Flasherをインストールする。
MSP Flasherのインストールディレクトリは、任意のディレクトリで構わない。

./MSPFlasher-<バージョン>-linux-x64-installer.run


MSP Debugのインストール

MSP Debugのビルドに必要なライブラリをインストールする。

# SUSE
sudo zypper install readline-devel libusb-1_0-devel libusb-compat-devel


MSP DebugのGithubにアクセスして、ソースコードをダウンロードする。

git clone https://github.com/dlbeer/mspdebug.git
cd mspdebug


MSP Debugをビルドおよびインストールする。

make PREFIX=<MSP Debugのインストールディレクトリ> -j $(nproc)
make PREFIX=<MSP Debugのインストールディレクトリ> install


MSP430向けGCCツールチェーンのアンインストール

/<MSP430向けGCCツールチェーンのインストールディレクトリ>/binディレクトリに移動する。

cd /<MSP430向けGCCツールチェーンのインストールディレクトリ>/bin


MSP430向けGCCツールチェーンをアンインストールする。

sudo ./uninstall
# または
kdesu ./uninstall


CLionの設定

CMakeツールチェーンファイルの作成
vi /<MSP430プロジェクトのトップディレクトリ>/toolchain-msp430-gcc-ti.cmake


 # /<MSP430プロジェクトのトップディレクトリ>/toolchain-msp430-gcc-ti.cmakeファイル
 
 include(CMakeForceCompiler)
 
 # ツールチェーン等のパス
 SET(PLATFORM_PACKAGES_PATH    "<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス  例: /opt/TI/MSP430_GCC>")
 list(APPEND CMAKE_MODULE_PATH "<CLionのMSP430プロジェクトのトップディレクトリ  例: /home/user/MSP430Project>")
 list(APPEND CMAKE_MODULE_PATH "${PLATFORM_PACKAGES_PATH}/lib/cmake")
 list(APPEND CMAKE_PREFIX_PATH "${PLATFORM_PACKAGES_PATH}/lib/cmake")
 INCLUDE_DIRECTORIES("${PLATFORM_PACKAGES_PATH}/include ${INCLUDE_DIRECTORIES}")
 
 # ターゲットデバイス名
 SET(SUPPORTED_DEVICES "<ターゲットデバイス名  例: msp430g2553>" CACHE STRING "Supported Target Devices")
 
 set(CMAKE_SYSTEM_NAME msp430-gcc)
 
 # コンパイラの設定
 SET(MSP430_TI_COMPILER_FOLDER   ${PLATFORM_PACKAGES_PATH})
 SET(MSP430_TI_BIN_FOLDER        ${MSP430_TI_COMPILER_FOLDER}/bin)
 SET(MSP430_TI_INCLUDE_FOLDER    ${MSP430_TI_COMPILER_FOLDER}/include)
 SET(TOOLCHAIN_PREFIX            msp430-elf)
 SET(TOOLCHAIN_BIN_PATH          ${MSP430_TI_BIN_FOLDER})
 SET(FLASHER_PATH                <上記のセクションでインストールしたMSP Flasherのパス  例: /home/user/MSPFlasher>)
 SET(MSPDEBUG_PATH               <上記のセクションでインストールしたMSP Debugのパス    例: /home/user/MSP_Debug/bin>)
 SET(MSPDEBUG_DEVICE             ezfet)
 
 INCLUDE_DIRECTORIES(${MSP430_TI_INCLUDE_FOLDER} ${INCLUDE_DIRECTORIES})
 
 LINK_DIRECTORIES(${MSP430_TI_INCLUDE_FOLDER} ${LINK_DIRECTORIES})
 
 FIND_PROGRAM(MSP430_CC      ${TOOLCHAIN_PREFIX}-gcc     PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_CXX     ${TOOLCHAIN_PREFIX}-g++     PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_AR      ${TOOLCHAIN_PREFIX}-ar      PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_AS      ${TOOLCHAIN_PREFIX}-as      PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_OBJDUMP ${TOOLCHAIN_PREFIX}-objdump PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_OBJCOPY ${TOOLCHAIN_PREFIX}-objcopy PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_SIZE    ${TOOLCHAIN_PREFIX}-size    PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSP430_NM      ${TOOLCHAIN_PREFIX}-nm      PATHS ${TOOLCHAIN_BIN_PATH})
 FIND_PROGRAM(MSPDEBUG       mspdebug                    PATHS ${MSPDEBUG_PATH})
 FIND_PROGRAM(MSP430_FLASHER MSP430Flasher               PATHS ${FLASHER_PATH})
 
 set(CMAKE_C_COMPILER    ${MSP430_CC} CACHE STRING "C Compiler")
 set(CMAKE_CXX_COMPILER  ${MSP430_CXX} CACHE STRING "C++ Compiler")
 
 set(AS     ${MSP430_AS} CACHE STRING "AS Binary")
 set(AR     ${MSP430_AR} CACHE STRING "AR Binary")
 set(OBJCOPY ${MSP430_OBJCOPY} CACHE STRING "OBJCOPY Binary")
 set(OBJDUMP ${MSP430_OBJDUMP} CACHE STRING "OBJDUMP Binary")
 set(SIZE    ${MSP430_SIZE} CACHE STRING "SIZE Binary") 
 
 IF(NOT CMAKE_BUILD_TYPE)
    SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
       "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
       FORCE)
 ENDIF(NOT CMAKE_BUILD_TYPE)
 
 set(MSPGCC_OPT_LEVEL    "g" CACHE STRING "MSPGCC OPT LEVEL")
 set(MSPGCC_WARN_PROFILE "-Wall -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wunused"
            CACHE STRING "MSPGCC WARNINGS")
 
 set(MSPGCC_DISABLED_BUILTINS "-fno-builtin-printf -fno-builtin-sprintf"
                              CACHE STRING "MSPGCC Disabled Builtins")
 
 set(MSPGCC_OPTIONS "-gdwarf-3 -fdata-sections -ffunction-sections -fverbose-asm ${MSPGCC_DISABLED_BUILTINS}"
                    CACHE STRING "MSPGCC OPTIONS")
 
 set(CMAKE_C_FLAGS   "${MSPGCC_WARN_PROFILE} ${MSPGCC_OPTIONS} -O${MSPGCC_OPT_LEVEL}  -DGCC_MSP430" CACHE STRING "C Flags")
 
 set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--gc-sections -Wl,--print-gc-sections"
                               CACHE STRING "Linker Flags")
 set(CMAKE_EXE_LINKER_FLAGS "-Wl,--gc-sections"
                            CACHE STRING "Linker Flags")
 
 # リンカコマンドの設定
 set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_C_COMPILER> ${CMAKE_EXE_LINKER_FLAGS} <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"
                               CACHE STRING "C++ Executable Link Command")
 
 set(CMAKE_C_LINK_EXECUTABLE ${CMAKE_CXX_LINK_EXECUTABLE} CACHE STRING "C Executable Link Command")
 
 set(PROGBIN     ${MSP430_FLASHER} CACHE STRING "Programmer Application")


リンカコマンドファイルのコピー

ターゲットデバイスのリンカコマンドファイルを、プロジェクトのトップディレクトリにコピーする。

cp /<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス>/include/<ターゲットデバイス名>.ld \
   <MSP430プロジェクトのトップディレクトリ>

# 例: MSP430G2553を使用する場合
cp /<上記のセクションでインストールしたMSP430 GCCツールチェーンのパス>/include/msp430g2553.ld \
   <MSP430プロジェクトのトップディレクトリ>


プロジェクトの設定
  1. プロジェクトを開いて、[ファイル]メニューバー - [設定]を選択する。
  2. [設定]画面の左ペインから、[ビルド、実行、デプロイ] - [CMake]を選択する。
  3. [設定]画面の右ペインから、[+]アイコンを選択して、CMakeの設定を行う。
    • [名前]
      任意の名前
    • [ビルドタイプ]プルダウン
      Debug
    • [ツールチェーン]プルダウン
      MSP430ツールチェーンを選択する。
    • [ジェネレーター]
      [デフォルトを使用する]
    • [CMakeオプション]
      -DCMAKE_TOOLCHAIN_FILE=<上記のセクションで作成したCMakeツールチェーンファイルのパス>
  4. [OK]ボタンを押下する。