「インストール - Code Composer Studio」の版間の差分

提供: MochiuWiki : SUSE, EC, PCB

 
(同じ利用者による、間の29版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
Code Composer Studio(以降、CCSという)はTexas Instruments社(以降、TI社という)が提供しているIDE(統合開発環境)である。<br>
Code Composer Studio(以降、CCS)はTexas Instruments社(以降、TI社)が提供しているIDE (統合開発環境) である。<br>
オープンソースの統合開発環境であるEclipseをベースに作成しているため、Eclipseを使用したことのあるユーザにはユーザーインタフェースがほぼ一緒なので違和感なく使用できる。<br>
オープンソースの統合開発環境であるEclipseをベースに作成しているため、Eclipseを使用したことのあるユーザにはユーザーインタフェースがほぼ一緒なので違和感なく使用できる。<br>
<br>
<br>
28行目: 28行目:
*: libncurses5は、テキストユーザインタフェースを作成するためのAPIを提供するライブラリである。
*: libncurses5は、テキストユーザインタフェースを作成するためのAPIを提供するライブラリである。
*: libusbは、USBライブラリである。
*: libusbは、USBライブラリである。
  # SLES / openSUSE
  # SLE / openSUSE Leap
  sudo zypper install libncurses5 libusb-0_1-4 libpython2_7-1_0 gconf2
  sudo zypper install glibc-32bit libncurses5 python libpython2_7-1_0 gconf2 libnsl1 libusb-0_1-4
                    libpython3_9-1_0 # Code Composer Studio 20
<br>
<br>
==== ソースコードからインストール ====
==== ソースコードからインストール ====
SLEDの場合、libncurses5およびlibusb-0_1-4はパッケージ管理システムから提供されていないため、ビルドしてインストールする必要がある。<br>
SLEDの場合、libncurses5およびlibusb-0_1-4はパッケージ管理システムから提供されていないため、ビルドしてインストールする必要がある。<br>
* libusb-0_1-4のインストール
*# libusb-0_1-4のGithubからソースコードをダウンロードする。
*#: <code>git clone https://github.com/libusb/libusb-compat-0.1.git</code>
*#: <code>cd libusb-compat-0.1</code>
*# configureスクリプトを作成する。
*#: <code>autoreconf -i</code>
*# ビルドディレクトリを作成する。 
*#: <code>mkdir build && cd build</code>
*# libusb-0_1-4をビルドおよびインストールする。
*#: <u># 64bit版</u>
*#: <code>../configure --prefix=<libusb-0_1-4のインストールディレクトリ></code>
*#: <code>make -j $(nproc)</code>
*#: <code>make install</code>
*#: <br>
*#: <u># 32bit版</u>
*#: <code>export LIBUSB_1_0_SONAME="/usr/lib/libusb-1.0.so.0"; \</code>
*#: <code>CC="gcc -m32" CXX="g++ -m32" ../configure --prefix=<libusb-0_1-4のインストールディレクトリ></code>
*#: <code>make -j $(nproc)</code>
*#: <code>make install</code>
*#: <br>
*# ~/.profileファイル等に、以下の環境変数を追記する。
*#: <code>export PATH="/<libusb-0_1-4のインストールディレクトリ>/bin:$PATH"</code>
*#: <code>export LD_LIBRARY_PATH="/<libusb-0_1-4のインストールディレクトリ>/lib64:/<libusb-0_1-4のインストールディレクトリ>/lib:$LD_LIBRARY_PATH"</code>
*#: <code>export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"</code>
*#: <code>export PKG_CONFIG_PATH="/<libusb-0_1-4のインストールディレクトリ>/lib64/pkgconfig:/<libusb-0_1-4のインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH"</code>
<br>
<br>
* libncurses5のインストール
===== libusb-0_1-4のインストール =====
*# [https://invisible-island.net/ncurses/announce.html libncurses5の公式Webサイト]にアクセスして、libncurses5のソースコードをダウンロードする。<br>または、<code>wget</code>コマンドを実行して、libncurses5のソースコードをダウンロードする。
libusb-0_1-4のGithubからソースコードをダウンロードする。<br>
*#: <code>wget https://invisible-mirror.net/archives/ncurses/ncurses-5.x.tar.gz</code>
git clone https://github.com/libusb/libusb-compat-0.1.git
*# ダウンロードしたファイルを解凍する。
cd libusb-compat-0.1
*#: <code>tar ncurses-5.x.tar.gz</code>
<br>
*#: <code>cd ncurses-5.x</code>
configureスクリプトを生成する。<br>
*# ビルドディレクトリを作成する。
autoreconf -i
*#: <code>mkdir build && cd build</code>
<br>
*# libncurses5をビルドおよびインストールする。<br>(1)から順に(4)までビルドおよびインストールする。
libusb-0_1-4をビルドおよびインストールする。<br>
*#: <u>(1) 32bit版 ワイド文字対応</u>
mkdir build && cd build
*#: <code>../configure \</code>
*#: <code>CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc -m32" \</code>
# 64bit版
*#: <code>CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++ -m32" \</code>
../configure --prefix=<libusb-0_1-4のインストールディレクトリ>
*#: <code>--with-shared --with-normal --with-ticlib --with-debug --enable-widec --enable-pc-files \</code>
make -j $(nproc)
*#: <code>--without-progs --without-tests --without-manpages \</code>
make install
*#: <code>--program-suffix="w" \</code>
<br>
*#: <code>--prefix=<libncurses5のインストールディレクトリ> \</code>
# 32bit版
*#: <code>CPPFLAGS="-P"</code>
export LIBUSB_1_0_SONAME="/usr/lib/libusb-1.0.so.0"; \
*#: <br>
CC="gcc -m32" CXX="g++ -m32" ../configure --prefix=<libusb-0_1-4のインストールディレクトリ>
*#: <code>make -j $(nproc)</code>
make -j $(nproc)
*#: <code>make install.libs</code>
make install
*#: <br>
<br>
*#: <u>(2) 32bit版</u>
~/.profileファイル等に、以下の環境変数を追記する。<br>
*#: <code>../configure \</code>
<syntaxhighlight lang="sh">
*#: <code>CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc -m32" \</code>
# ~/.profileファイル
*#: <code>CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++ -m32" \</code>
*#: <code>--with-shared --with-normal --with-ticlib --with-debug --with-termlib --enable-pc-files \</code>
export PATH="/<libusb-0_1-4のインストールディレクトリ>/bin:$PATH"
*#: <code>--without-progs --without-tests --without-manpages \</code>
export LD_LIBRARY_PATH="/<libusb-0_1-4のインストールディレクトリ>/lib64:/<libusb-0_1-4のインストールディレクトリ>/lib:$LD_LIBRARY_PATH"
*#: <code>--prefix=<libncurses5のインストールディレクトリ> \</code>
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"
*#: <code>CPPFLAGS="-P"</code>
export PKG_CONFIG_PATH="/<libusb-0_1-4のインストールディレクトリ>/lib64/pkgconfig:/<libusb-0_1-4のインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH"
*#: <br>
</syntaxhighlight>
*#: <code>make -j $(nproc)</code>
<br>
*#: <code>make install.libs</code>
==== libncurses5のインストール ====
*#: <br>
[https://invisible-island.net/ncurses/announce.html libncurses5の公式Webサイト]にアクセスして、libncurses5のソースコードをダウンロードする。<br>
*#: <u>次に、不要なインストールファイルを削除する。</u>
または、<code>wget</code>コマンドを実行して、libncurses5のソースコードをダウンロードする。<br>
*#: <code>rm -rf /<libncurses5のインストールディレクトリ>/bin \</code>
wget https://invisible-mirror.net/archives/ncurses/ncurses-5.x.tar.gz
*#: <code>/<libncurses5のインストールディレクトリ>/include \</code>
<br>
*#: <code>/<libncurses5のインストールディレクトリ>/share32</code>
ダウンロードしたファイルを解凍する。<br>
*#: <br>
tar ncurses-5.x.tar.gz
*#: <u>(3) 64bit版 ワイド文字対応</u>
cd ncurses-5.x
*#:<code>../configure \</code>
<br>
*#: <code>CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc" \</code>
ビルドディレクトリを作成する。<br>
*#: <code>CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++" \</code>
mkdir build && cd build
*#: <code>--with-shared --with-normal --with-ticlib --with-debug --enable-widec --enable-pc-files \</code>
<br>
*#: <code>--prefix=<libncurses5のインストールディレクトリ> \</code>
libncurses5をビルドおよびインストールする。<br>
*#: <code>CPPFLAGS="-P"</code>
<u>(1)から順に(4)までビルドおよびインストールする。</u><br>
*#: <br>
(1) 32bit版 ワイド文字対応
*#: <code>make -j $(nproc)</code>
../configure \
*#: <code>make install</code>
CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc -m32"        \
*#: <br>
CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++ -m32"       \
*#: <u>(4) 64bit版</u>
--bindir=/<libncurses5のインストールディレクトリ>/baselibs-32bit \
*#:<code>../configure \</code>
--libdir=/<libncurses5のインストールディレクトリ>/lib            \
*#: <code>CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc" \</code>
--with-shared --with-cxx-shared --with-normal --with-ticlib --with-debug \
*#: <code>CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++" \</code>
--without-progs --without-tests --without-manpages \
*#: <code>--with-shared --with-normal --with-ticlib --with-debug --with-termlib --enable-pc-files \</code>
--enable-widec --enable-pc-files                  \
*#: <code>--prefix=<libncurses5のインストールディレクトリ> \</code>
--program-suffix="w"                              \
*#: <code>CPPFLAGS="-P"</code>
--prefix=<libncurses5のインストールディレクトリ>           \
*#: <br>
CPPFLAGS="-P"
*#: <code>make -j $(nproc)</code>
*#: <code>make install</code>
make -j $(nproc)
*#: <br>
*# ~/.profileファイル等に、以下の環境変数を追記する。
# pkgconfファイルは強制的に/usr/lib/pkgconfigディレクトリにインストールされるため、
*#: <code>export PATH="/<libncurses5のインストールディレクトリ>/bin:$PATH"</code>
# スーパーユーザ権限で実行する
*#: <code>export LD_LIBRARY_PATH="/<libncurses5のインストールディレクトリ>/lib64:/<libncurses5のインストールディレクトリ>/lib:$LD_LIBRARY_PATH"</code>
sudo make install.libs
*#: <code>export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"</code>
*#: <code>export PKG_CONFIG_PATH="/<llibncurses5のインストールディレクトリ>/lib64/pkgconfig:$PKG_CONFIG_PATH"</code>
# pkgconfigファイルをインストールディレクトリに移動する
mkdir /<libncurses5のインストールディレクトリ>/lib/pkgconfig
sudo mv \
        /usr/lib/pkgconfig/formw.pc      \
        /usr/lib/pkgconfig/menuw.pc      \
        /usr/lib/pkgconfig/ncurses++w.pc \
        /usr/lib/pkgconfig/ncursesw.pc  \
        /usr/lib/pkgconfig/panelw.pc    \
        /usr/lib/pkgconfig/ticw.pc      \
        /<libncurses5のインストールディレクトリ>/lib/pkgconfig
# スーパーユーザでインストールしているため、オーナーを一般ユーザに変更する
sudo chown -R $USER:$(id -gn) <libncurses5のインストールディレクトリ>
# 不要なファイルを削除する
rm -rf /<libncurses5のインストールディレクトリ>/include
rm -rf /<libncurses5のインストールディレクトリ>/share
<br>
(2) 32bit版 非ワイド文字
../configure \
CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc -m32"  \
  CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++ -m32" \
--prefix=<libncurses5のインストールディレクトリ>                \
--bindir=/<libncurses5のインストールディレクトリ>/baselibs-32bit \
--libdir=/<libncurses5のインストールディレクトリ>/lib            \
--with-shared --with-cxx-shared --with-normal --with-ticlib --with-debug --with-termlib --disable-widec --enable-pc-files \
--without-progs --without-tests --without-manpages \
CPPFLAGS="-P"
make -j $(nproc)
# pkgconfファイルは強制的に/usr/lib/pkgconfigディレクトリにインストールされるため、
# スーパーユーザ権限で実行する
sudo make install.libs
# pkgconfigファイルをインストールディレクトリに移動する
mkdir /<libncurses5のインストールディレクトリ>/lib/pkgconfig
sudo mv \
        /usr/lib/pkgconfig/form.pc      \
        /usr/lib/pkgconfig/form_g.pc    \
        /usr/lib/pkgconfig/menu.pc      \
        /usr/lib/pkgconfig/menu_g.pc    \
        /usr/lib/pkgconfig/ncurses.pc   \
        /usr/lib/pkgconfig/ncurses_g.pc \
        /usr/lib/pkgconfig/ncurses++.pc \
        /usr/lib/pkgconfig/panel.pc    \
        /usr/lib/pkgconfig/panel_g.pc  \
        /usr/lib/pkgconfig/tic.pc      \
        /usr/lib/pkgconfig/tic_g.pc    \
        /usr/lib/pkgconfig/tinfo.pc    \
        /usr/lib/pkgconfig/tinfo_g.pc  \
        /<libncurses5のインストールディレクトリ>/lib/pkgconfig
# スーパーユーザでインストールしているため、オーナーを一般ユーザに変更する
sudo chown -R $USER:$(id -gn) <libncurses5のインストールディレクトリ>
# 不要なファイルを削除する
rm -rf /<libncurses5のインストールディレクトリ>/include
rm -rf /<libncurses5のインストールディレクトリ>/share
<br>
(3) 64bit版 ワイド文字対応
../configure \
CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc"    \
CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++"    \
--prefix=<libncurses5のインストールディレクトリ>        \
--libdir=/<libncurses5のインストールディレクトリ>/lib64 \
--with-shared --with-cxx-shared --with-normal  --with-ticlib --with-debug \
--without-progs --without-tests --without-manpages \
--enable-widec --enable-pc-files                  \
CPPFLAGS="-P"
# pkgconfファイルは強制的に/usr/lib/pkgconfigディレクトリにインストールされるため、
# スーパーユーザ権限で実行する
sudo make install.libs
# pkgconfigファイルをインストールディレクトリに移動する
mkdir /<libncurses5のインストールディレクトリ>/lib64/pkgconfig
sudo mv \
        /usr/lib/pkgconfig/formw.pc      \
        /usr/lib/pkgconfig/menuw.pc      \
        /usr/lib/pkgconfig/ncurses++w.pc \
        /usr/lib/pkgconfig/ncursesw.pc  \
        /usr/lib/pkgconfig/panelw.pc    \
        /usr/lib/pkgconfig/ticw.pc      \
        /<libncurses5のインストールディレクトリ>/lib64/pkgconfig
# スーパーユーザでインストールしているため、オーナーを一般ユーザに変更する
sudo chown -R $USER:$(id -gn) <libncurses5のインストールディレクトリ>
# 不要なファイルを削除する
rm -rf /<libncurses5のインストールディレクトリ>/include
rm -rf /<libncurses5のインストールディレクトリ>/share
<br>
(4) 64bit版 非ワイド文字
../configure \
CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc"    \
CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++"    \
--prefix=<libncurses5のインストールディレクトリ>        \
--libdir=/<libncurses5のインストールディレクトリ>/lib64 \
--with-shared --with-cxx-shared --with-normal --with-ticlib --with-debug --with-termlib \
--without-tests --without-manpages              \
--disable-widec --enable-pc-files              \
CPPFLAGS="-P"
make -j $(nproc)
# pkgconfファイルは強制的に/usr/lib/pkgconfigディレクトリにインストールされるため、
# スーパーユーザ権限で実行する
sudo make install.libs
# pkgconfigファイルをインストールディレクトリに移動する
mkdir /<libncurses5のインストールディレクトリ>/lib64/pkgconfig
sudo mv \
        /usr/lib/pkgconfig/form.pc      \
        /usr/lib/pkgconfig/form_g.pc    \
        /usr/lib/pkgconfig/menu.pc      \
        /usr/lib/pkgconfig/menu_g.pc    \
        /usr/lib/pkgconfig/ncurses.pc  \
        /usr/lib/pkgconfig/ncurses_g.pc \
        /usr/lib/pkgconfig/ncurses++.pc \
        /usr/lib/pkgconfig/panel.pc    \
        /usr/lib/pkgconfig/panel_g.pc  \
        /usr/lib/pkgconfig/tic.pc      \
        /usr/lib/pkgconfig/tic_g.pc    \
        /usr/lib/pkgconfig/tinfo.pc    \
        /usr/lib/pkgconfig/tinfo_g.pc  \
        /<libncurses5のインストールディレクトリ>/lib64/pkgconfig
# スーパーユーザでインストールしているため、オーナーを一般ユーザに変更する
sudo chown -R $USER:$(id -gn) <libncurses5のインストールディレクトリ>
<br>
~/.profileファイル等に、以下の環境変数を追記する。<br>
<syntaxhighlight lang="sh">
export PATH="/<libncurses5のインストールディレクトリ>/bin:/<libncurses5のインストールディレクトリ>/baselibs-32bit/bin:$PATH"
export LD_LIBRARY_PATH="/<libncurses5のインストールディレクトリ>/lib64:/<libncurses5のインストールディレクトリ>/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"
export PKG_CONFIG_PATH="/<llibncurses5のインストールディレクトリ>/lib64/pkgconfig:/<llibncurses5のインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH"
</syntaxhighlight>
<br><br>
<br><br>


== CCSのインストール ==
== Code Composer Studioのインストール ==
# インストーラのダウンロード
# インストーラのダウンロード
#: まず、CCSのインストーラを[http://software-dl.ti.com/ccs/esd/documents/ccs_downloads.html こちらのWebサイト]からダウンロードする。
#: まず、Code Composer Studioのインストーラを[http://software-dl.ti.com/ccs/esd/documents/ccs_downloads.html TIの公式Webサイト]からダウンロードする。
#: Windowsの場合はWindows 64bitをダウンロード、Linuxの場合はLinux 64bitをダウンロードする。
#: Windowsの場合はWindows 64bitをダウンロード、Linuxの場合はLinux 64bitをダウンロードする。
# アンチウイルスソフトの無効化
# アンチウイルスソフトの無効化
#: インストーラを実行する前に、使用しているPCのアンチウイルスソフトを一時的に無効化する。
#: インストーラを実行する前に、使用しているPCのアンチウイルスソフトを一時的に無効化する。
#: 無効化する理由は、アンチウイルスソフトがCCSのインストール処理に悪影響を与える恐れがあるためである。インストールが完了したら有効に戻す。
#: 無効化する理由は、アンチウイルスソフトがCode Composer Studioのインストール処理に悪影響を与える恐れがあるためである。インストールが完了したら有効に戻す。
# インストーラの実行
# インストーラの実行
#: 上記でダウンロードしたファイルを解凍して、以下のファイルを実行する。
#: 上記でダウンロードしたファイルを解凍して、以下に示すファイルを実行する。
#* Windowsの場合 : ccs_setup_xxx.exeファイルを実行する。
#: インストール開始直前の初期チェックが行われる。
#* Linuxの場合 : ccs_setupファイルを実行する。
#* Windowsの場合
#*: ccs_setup_xxx.exeファイルを実行する。
#* Linuxの場合
#*: ./ccs_setup_<バージョン>.runファイルを実行する。
#*: <pre>./ccs_setup_<バージョン>.run --mode gtk --prefix <CCSのインストールディレクトリ></pre>
#: <br>
#: <br>
#: 実行するとインストール開始直前の初期チェックが行われる。
# Code Composer Studioのインストール
# CCSのインストール
#: [License Agreement]画面では、[I accept ...]ボタンにチェックを入力して[Next]ボタンを押下する。
#: [License Agreement]画面では、[I accept ...]ボタンにチェックを入力して[Next]ボタンを押下する。
#: [Choose Installation Location]画面では、CCSをインストールするフォルダを選択することができる。[Next]ボタンを押下する。
#: [Choose Installation Location]画面では、CCSをインストールするフォルダを選択することができる。[Next]ボタンを押下する。
#: <br>
#: [Processor Support]画面では、MSP430を始めとするTI製品のコンパイラ等を選択してインストールすることができる。
#: [Processor Support]画面では、MSP430を始めとするTI製品のコンパイラ等を選択してインストールすることができる。
#: 使用する製品にチェックを入力する。もし迷う場合は全てにチェックしても構わない。[Next]ボタンを押下する。
#: 使用する製品にチェックを入力する。
#: どれをインストールスべきが不明な場合は、全てにチェックを入力する。
#: [Next]ボタンを押下する。
#: <br>
#: [Select Debug Probes]画面では、サードパーティ製のJTAGエミュレータをインストールするかどうかを選択することができる。
#: [Select Debug Probes]画面では、サードパーティ製のJTAGエミュレータをインストールするかどうかを選択することができる。
#: もし迷う場合は、全てにチェックを入力する。[Finish]ボタンを押下する。
#: どれをインストールすべきが不明な場合は、全てにチェックを入力する。
#: [Finish]ボタンを押下するとインストールが始まる。
#: [Finish]ボタンを押下して、インストールを行う。
#: <br>
#: Windowsの場合、インストール中にセキュリティに関するウインドウが表示されることがある。
#: Windowsの場合、インストール中にセキュリティに関するウインドウが表示されることがある。
#: (インストール時にチェックした項目によっては表示されないこともある)
#: (インストール時にチェックした項目によっては表示されないこともある)
#: (もし、[Windowsセキュリティの重要な警告]画面が表示された時は、[アクセスを許可する]ボタンを押下する)
#: <br>
#: ([Windowsセキュリティ]画面が表示された時は、[インストール]ボタンを押下する)
#: もし、[Windowsセキュリティの重要な警告]画面が表示された時は、[アクセスを許可する]ボタンを押下する。
# Code Composer Studioのインストールの完了
#: [Windowsセキュリティ]画面が表示された時は、[インストール]ボタンを押下する。
#: インストール完了後、[Launch ...]ボタンにチェックを入力したまま[Finish]ボタンを押下すると、CCSが起動する。
#: <br>
# Code Composer Studioのインストール完了後、[Launch ...]ボタンにチェックを入力したまま[Finish]ボタンを押下すると、CCSが起動する。
#: <br>
# Linuxの場合は、/<<nowiki>Code</nowiki> Composer Studioのインストールディレクトリ>/ccs/install_scriptsディレクトリに移動して、専用デバイスドライバをインストールする必要がある。
# Linuxの場合は、/<<nowiki>Code</nowiki> Composer Studioのインストールディレクトリ>/ccs/install_scriptsディレクトリに移動して、専用デバイスドライバをインストールする必要がある。
#: <code>sudo ./install_drivers.sh</code>
#: <syntaxhighlight lang="text">
cd /<Code Composer Studioのインストールディレクトリ>/ccs/install_scripts
sudo ./install_drivers.sh
</syntaxhighlight>
#: <br>
#: UDEVルールファイルを再読み込みする。
#: <syntaxhighlight lang="text">
sudo udevadm control --reload-rules
sudo udevadm trigger
</syntaxhighlight>
<br><br>
 
== CCSのアンインストール ==
CCSのインストールディレクトリに移動する。<br>
cd <CCSのインストールディレクトリ>
<br>
まず、TIのudevルールファイルを削除する。<br>
./ccs/install_scripts/uninstall_drivers.sh
<br>
または、手動でTIのudevルールファイルを削除する。<br>
cd /etc/udev/rules.d
sudo rm 61-msp430uif.rules          \
        70-mm-no-ti-emulators.rules \
        71-ti-permissions.rules    \
        99-jlink.rules
<br>
最後に、CCSをアンインストールする。<br>
./uninstall_ccs.run  --mode gtk
<br><br>
<br><br>


== 注意事項 ==
== MSP430 SDK (MSP430ware) ==
CCS 9.2.0および9.3.0にはバグがあり、スーパーユーザ権限でインストールした場合、一般ユーザとして実行すると、<br>
==== MSP430 SDK (MSP430ware) とは ====
プロジェクトでターゲットを構成したり、特定のデバイスファミリ(C2000、Hercules)を使用して新しいターゲット構成ファイルを作成しようとすると、次のエラーで失敗する。<br>
MSP430 SDKは、MSP430マイコン向けの効果的なコードを記述する場合に役立つリソースを集めたものである。<br>
これらは、全てのMSP430マイコンをサポートしている。<br>
<br>
なお、MSP430 SDKは、以前はMSPWareおよびMSP430Wareとして知られている。<br>
<br>
この設計リソースコレクションには、<br>
MSP430ドライバライブラリのようなデバイスやペリフェラルに特化したライブラリから、グラフィックスライブラリや静電容量式タッチライブラリのようなアプリケーションに特化したライブラリまで、<br>
高度に抽象化されたソフトウェアライブラリの幅広いセレクションが含まれている。<br>
<br>
特に、MSP430ドライバライブラリは、ソフトウェア開発者が便利なAPIを活用して低レベルで複雑なハードウェアペリフェラルを制御して、結果としてコードを読みやすく保守しやすくするために不可欠である。<br>
<br>
MSPドライバライブラリは、最も初期のシリーズを除くすべてのデバイスをサポートしている。<br>
<br>
==== MSP430 SDK (MSP430ware) のインストール ====
Code Composer StudioおよびTI Developer Zoneのユーザは、Resource ExplorerからMSP430 SDKにアクセスすることができる。<br>
<br>
[https://www.ti.com/tool/MSP430-SDK TIの公式Webサイト]にアクセスして、MSP430 SDKのインストーラをダウンロードする。<br>
TIのアカウントにログインする必要があることに注意する。<br>
<br>
MSP430 SDKをインストールする。<br>
./MSP430Ware_<バージョン>_setup.run          \
    --prefix <MSP430 SDKのインストールディレクトリ> \
    --mode gtk --installer-language ja
# または
kdesu -c "./MSP430Ware_<バージョン>_setup.run \
    --prefix <MSP430 SDKのインストールディレクトリ> \
    --mode gtk --installer-language ja"
<br>
また、[https://dev.ti.com/tirex/explore TIのResource ExplorerのWebサイト]にアクセスして、TI社マイコンのサンプルコードをダウンロードすることも可能である。<br>
<br><br>
 
== MSPM0 SDK ==
==== MSPM0 SDKとは ====
MSPM0 SDKは、TI社が提供する無償のSDKであり、以下に示すものを含む。<br>
* DriverLib
*: ハードウェア抽象化ライブラリ O(GPIO、UART、ADC等の制御関数)
* サンプルコード
*: 各ペリフェラルの動作例
* スタートアップコード・リンカスクリプト
*: プロジェクトの基本構成
* SysConfig
*: グラフィカルな周辺機能設定ツール
* ドキュメント
*: APIリファレンス、ユーザガイド
<br>
<u>これは、MSPM0ファミリーのマイコンを使用する場合は必須となる。</u><br>
ただし、DriverLibを使用せずとも全てレジスタを直接アクセスして開発することも可能であるが、開発効率と保守性の面からMSPM0 SDKの使用が推奨される。<br>
<br>
==== MSPM0 SDKのインストール ====
Code Composer StudioにあるResource Explorer または [https://www.ti.com/tool/MSPM0-SDK#downloads TIの公式Webサイト]からMSPM0 SDKをダウンロードする。<br>
ダウンロードしたファイルに実行権限を付加して、MSPM0 SDKをインストールする。<br>
chmod u+x ./mspm0_sdk_<バージョン>.run
./mspm0_sdk_<バージョン>.run          \
    --prefix <任意のインストールディレクトリ> \
    --installer-language ja
<br><br>
 
== TI Cloud Agent ==
==== TI Cloud Agentとは ====
TI Cloud Agentとは、TI社のCloud Tools (Webブラウザベースの開発環境) から、<br>
ローカルに接続されたハードウェアデバイス (MSPM0G3519 LaunchPad等) へのフラッシュ書き込みとデバッグを可能にするWebアプリケーションである。<br>
<br>
Webブラウザとローカルハードウェアの橋渡しを行うため、TI Cloud Agent Bridgeというブラウザ拡張機能も別途インストールする必要がある。<br>
<br>
==== TI Cloud Agentのインストール ====
# Webブラウザを起動して、[https://dev.ti.com TI Developer Zone]へアクセスする。
# TIアカウントでログインする。
# [https://dev.ti.com TI Developer Zone]のトップページから、[Browse Software And Examples]を選択する。<br>または、CCS Cloudを起動して、[Click to Start Developing]を選択する。
#: <br>
# TI Cloud Agentをインストールする。
#: 初めてCCS Cloudを使用する場合、または、評価ボードへのプログラム書き込みを試みる場合、[TI Cloud Agent Installation]ダイアログが表示される。
#: このダイアログには、以下の2つのインストール手順が表示される。
#:* TI Cloud Agent
#:* TI Cloud Agent Bridge
# ダイアログ内の[Install TI Cloud Agent]リンクを選択してダウンロードする。
# ダウンロードしたインストーラに実行権限を付加して実行する。
#: <syntaxhighlight lang="text">
chmod u+x TICloudAgent_setup.run
./TICloudAgent_setup.run \
    --prefix <任意のインストールディレクトリ> \
    --install-language ja
</syntaxhighlight>
# <u>インストール中において、スーパーユーザ権限が要求されることに注意する。</u>
# インストールウィザードの指示に従ってインストールを完了する。
<br>
インストールされるUDEVファイル等は、以下の通りである。<br>
* UDEVルールファイル
** /etc/udev/rules.d/61-msp430uif.rules
** /etc/udev/rules.d/70-mm-no-ti-emulators.rules
** /etc/udev/rules.d/71-ti-permissions.rules
*: <br>
* デスクトップエントリファイル
** /usr/share/applications/ticloudagent.desktop
<br>
==== TI Cloud Agent Bridge (ブラウザ拡張機能) のインストール ====
TI Cloud Agentのインストールが完了した後、TI Cloud Agent Bridgeをインストールする。<br>
<br>
* Chromium系ブラウザの場合
*# Chromeウェブストアを開く。
*# <u>TICloudAgent Bridge</u> 拡張機能を探す。
*# [Chromeに追加]ボタンを押下する。
*: <br>
* Mozilla Firefoxの場合
*# Firefox Add-onsページを開く。
*# <u>TICloudAgent Bridge</u> 拡張機能を探す。
*# [Firefoxへ追加]ボタンを押下する。
<br>
==== MSPM0G3519を使用した回路の接続 ====
MSPM0G3519を使用した回路において、USBケーブルでPCと接続する。<br>
Windowsの場合は、デバイスドライバが自動的にインストールされる。<br>
<br>
==== 動作確認 ====
# Webブラウザを起動して、[https://dev.ti.com TI Developer Zone]へアクセスする。
# [Browse Software And Examples]を選択する。
# [MSPM0 SDK] - [Examples]から任意のサンプルプロジェクトを選択する。
#: 例 : gpio_toggle_output
# [Import]ボタンを押下して、プロジェクトをCCS Cloudにインポートする。
# 左サイドバーのデバッグアイコンを選択する。
# [Play]ボタンを押下して、デバッグセッションを開始する。
#: 自動的にTI Developer ZoneがMSPM0G3519を使用した回路が接続されていることを検出する。
#: サンプルコードがMSPM0G3519にダウンロードされて、デバッガがエントリポイントで一時停止する。
#: 再度、[Play]ボタンを押下することにより、プログラムが実行される。
<br><br>
 
== TI Cloud Agent ==
==== ログファイル (CCS 20以降使用時) ====
===== Linux =====
TI Cloud Agentの問題において、<br>
<u>/<CCSのインストールディレクトリ>/ccs/ccs_base/cloudagent/ticloudagent.shファイル</u> において、3行目から5行目のコメントを外す。<br>
Code Composer Studioを再起動する。<br>
<br>
ログファイルは、<u>/tmp/my_ticld.logファイル</u> として保存される。<br>
<br>
===== Windows =====
TI Cloud Agentの問題において、<br>
<u>\<CCSのインストールフォルダ>\ccs\ccs_base\cloudagent\ticloudagent.batファイル</u> において、3行目から5行目のコメントを外す。<br>
Code Composer Studioを再起動する。<br>
<br>
ログファイルは、<u>C:\temp\my_ticld.logファイル</u> として保存される。<br>
<br><br>
 
== エラー ==
==== スーパーユーザ権限でのインストール (CCS 9.2 〜 9.3) ====
CCS 9.2および9.3には不具合があり、スーパーユーザ権限でインストールした時、<br>
プロジェクトでターゲットを構成する場合、または、特定のデバイスファミリー (C2000、Hercules) を使用して新しいターゲット構成ファイルを作成する場合、以下に示すようなエラーが出力される。<br>
<br>
<br>
  # ターゲット構成ファイルの作成:
  # ターゲット構成ファイルの作成:
176行目: 476行目:
  /opt/ti/ccs930/ccs/ccs_base/common/targetdb/../Modules/C2000/C2000_FPU32_Registers.xml
  /opt/ti/ccs930/ccs/ccs_base/common/targetdb/../Modules/C2000/C2000_FPU32_Registers.xml
<br>
<br>
これは、インストールツリー内のいくつかのサポートファイルの権限が不適切に設定されているために起きる。<br>
これは、インストールツリー内のいくつかのサポートファイルの権限が不適切に設定されているために発生する。<br>
これを修正するには、CCSのインストールディレクトリにあるccsディレクトリ下の全てのディレクトリとファイルに対して、全てのユーザの読み込み権限と実行権限を付加する。<br>
これを修正するには、CCSのインストールディレクトリにあるccsディレクトリ下の全てのディレクトリとファイルに対して、全てのユーザの読み込み権限と実行権限を付加する。<br>
  cd /opt/ti/ccs930/ccs
  cd /opt/ti/ccs930/ccs
  sudo chmod -R go+rX *
  sudo chmod -R go+rX *
<br>
==== アップデートエラー ====
Code Composer Studioをアップデートする時、以下に示すような内部エラーが発生する場合がある。<br>
An internal error occurred during: "Computing size".
Profile epp.package.cpp is not current.
Expected timestamp 1717462470939 but was 1717462431485.
<br>
これは、プロファイル"epp.package.cpp"のタイムスタンプが期待値と異なることが原因である。<br>
<br>
このエラーを解決するためには、以下に示す手順を実施する。<br>
# Code Composer Studioを完全に終了する。
# Code Composer Studioのワークスペースフォルダを削除、または、名前を変更する。
# Code Composer Studioを再起動して、新しいワークスペースを作成する、または、別の場所にワークスペースを指定する。
# 問題のプロジェクトをインポートし直す、または、新しいプロジェクトを作成する。
<br>
もし、上記の手順でエラーが解決しない場合は、以下の追加手順を実施する。<br>
# Code Composer Studioをアンインストールする。
# TIの公式Webサイトから最新バージョンのCode Composer Studioをダウンロードしてインストールする。
# 新しいワークスペースを作成して、プロジェクトを再度インポート、または、新規作成する。
<br><br>
== プロジェクトの作成 ==
==== はじめに ====
まず、プロジェクトを保管するワークスペース向けのディレクトリを作成する。<br>
<u>なお、ディレクトリのパスのに全角文字がある場合、CCSのコンパイラ等のツールが動作しない可能性があることに注意する。</u><br>
<br>
Code Composer Studioの起動後、上記で作成したワークスペースを指定する。<br>
<br>
次に、ワークスペース内にプロジェクトを作成する。
作成方法は、以下に示すように2通りある。<br>
* 新規作成する方法
* ライブラリのサンプルプロジェクトをインポートして作成する方法
<br>
初心者の場合は、サンプルプロジェクトをインポートして作成する方がよい。<br>
これは、サンプルプロジェクトは最初からライブラリがプロジェクト内に組み込まれているためである。<br>
<br>
新規作成は、ライブラリを使用せずに1から設計者がソースコードを記述する場合や古いバージョンのライブラリを使用する場合等に選択する。<br>
<br>
==== 作成 ====
Code Composer Studioの起動後、[File]メニューバー - [New] - [CCS Project]を選択する。<br>
[New CCS Project]画面が表示されるので、プロジェクトの各種設定を行う。<br>
<br>
まず、[Target:]プルダウンから使用するマイコンのファミリーとマイコンの型番を選択する。<br>
<br>
次に、[Connection:]プルダウンから使用するデバッガを指定する。<br>
LaunchPadボードの場合は、<u>TI MSP430 USB X [Default]</u>を選択する。<br>
<u>何を指定すればよいか不明の場合は、デバッガを接続した状態で[Identify]ボタンを押下して、デバッガとPCの接続確認を確認する。</u><br>
もし、選択が間違っている場合や未接続の場合はエラーが出力される。<br>
<br>
<u>※注意</u><br>
<u>[Identify]ボタンを押下した時、デバッガのファームウェアをアップデートするよう促される場合がある。</u><br>
<u>この時、[Update]ボタンを押下する。</u><br>
<br>
==== サンプルプロジェクトの使用 ====
サンプルプロジェクトを使用する場合、Resource Explorerツールを使用する。<br>
<br>
# [View]メニューバー - [Resource Explorer]を選択する。<br>または、[View]メニューバー - [Getting Started]を選択して、[Getting Started]画面から[Resource Explorer]を選択する。
#: <br>
# Resource Explorerでは、サンプルプロジェクト以外にもマイコン、LaunchPadボード、ライブラリのドキュメント等の開発時に必要な資料が1通り存在する。<br>もし、サンプルソースコード等が必要な場合は、Resource Explorerを使用して探すことを推奨する。
#: <br>
# Resource Explorerの起動後、使用するサンプルソースコードをインポートする。<br>
#: [MSP430 microcontrollers] - [Embedded Software] - [MSP430Ware] - [Devices] - [MSP430ファミリー名] - [MSP430の型番] -
#: [Peripheral Examples] - [Driver Library] - [Example Projects] -> [サンプルソースコードの種類] - [サンプルソースコードのプロジェクト名]に保存されている。
#: <br>
# 使用するサンプルプロジェクト名にマウスオーバーして、プロジェクト名の右側にある点をクリックして、[Import to CCS IDE]を選択する。<br>これにより、ワークスペースにサンプルプロジェクトがインポートされる。<br><br>なお、プロジェクトがローカルに存在しない旨のエラーが出力される場合は、[Install]を選択する。<br><br>また、インポートしたサンプルプロジェクトは、プロジェクト名やファイル名を適当にリネームして使用する。
#: <br>
# 最後に、[Finish]ボタンを押下する。
<br>
<u>Resource Explorerには、多くのサンプルプロジェクトが存在しているため、様々なサンプルプロジェクトをインポートしてMSPの動作確認をすることができる。</u><br>
<br><br>
<br><br>
== デバッグ ==
==== デバッグインターフェース ====
MSP-FETは、MSP430 / MSP 432マイコンとの通信に2種類のデバッグインターフェースをサポートしている。<br>
<br>
* JTAG (Joint Test Action Group) インターフェース
*: IEEE 1149.1標準に基づいたデバッグインターフェースである。
*: 4線式のインターフェース (TDI、TDO、TMS、TCK)、GND、リセット (オプション) を使用する。
*: 全てのMSP430ファミリーでサポートされているが、比較的多くのピンを必要とする。
*: <br>
* SBW (Spy-Bi-Wire) インターフェース
*: TI社が開発した2線式のデバッグインターフェースであり、JTAGの機能を2本の信号線 (SBWTDIO、SBWTCK) で実現する。
*: ピン数の制約がある小型パッケージのマイコンに適している。
*: MSP430F2xx以降のほとんどのマイコンでサポートされている。
*: JTAGと比較して、回路上の配線を削減できるため、より小型の設計が可能となる。
<br>
どちらのインターフェースを使用する場合でも、MSP-FETとターゲットマイコン間の接続には、VCC、GND、RST信号が必要である。<br>
<br>
==== JTAGデバッグの方法 ====
JTAGインターフェースを使用したデバッグセッションを開始する方法を以下に示す。<br>
<br>
===== ハードウェア接続 =====
MSP-FETとターゲットマイコンをJTAGインターフェースで接続する。<br>
<br>
接続には、以下に示す信号線が必要である。<br>
* TDI (Test Data In)
* TDO (Test Data Out)
* TMS (Test Mode Select)
* TCK (Test Clock)
* RST (Reset、オプション)
* VCC (ターゲット電源)
* GND
<br>
MSP-FETの14ピンコネクタを使用する場合、以下に示すピン配置となる。<br>
* ピン1 (JTAG信号ピン)
*: TDO / TDI
*: Test Data Out (テストデータ出力) または Test Data In (テストデータ入力) の信号線である。
*: JTAGチェーン内でのデータの流れにより、このピンの役割が変わる。
*: MSP430の場合、通常はTDOとして機能し、デバイスからデバッグツールへデータを送信する。
*: <br>
* ピン2 (電源関連ピン)
*: VCC TOOL (ツールからターゲットへの電源を供給する場合)
*: MSP-FETからターゲット基板に電源を供給するためのピンである。
*: ターゲット基板に独自の電源がない場合、このピンを通じてMSP-FETがターゲットマイコンに動作電圧を提供する。
*: 開発初期段階で、外部電源を用意せずにデバッグしたい場合に便利な機能である。
*: <br>
* ピン3 (JTAG信号ピン)
*: TDI/VPP
*: Test Data In (テストデータ入力) または VPP (プログラミング電圧) の信号線である。
*: 通常のデバッグモードではTDIとして機能し、デバッグツールからデバイスへデータを送信する。
*: VPPは特定の状況 (セキュリティヒューズのブロー等) で使用される高電圧である。
*: <br>
* ピン4 (電源関連ピン)
*: VCC TARGET (ターゲット電源の検出用)
*: ターゲット基板の電源電圧を検出するためのピンである。
*: ターゲット基板がバッテリーや外部電源で動作している場合、このピンをターゲットのVCCに接続する。
*: MSP-FETはこのピンを通じてターゲットの電源電圧を監視し、出力する信号のレベルをターゲットの電圧に合わせて調整する。
*: これを、<u>VCC-sense機能</u> と呼ぶ。
*: <br>
*: <u>※注意</u>
*: <u>ピン2とピン4は同時に接続してはならない。</u>
*: <br>
* ピン5 (JTAG信号ピン)
*: TMS
*: Test Mode Select (テストモード選択) の信号線である。
*: JTAGの状態遷移を制御するために使用される。
*: この信号により、デバッグツールはターゲットデバイスを様々な動作モード (テストモード、プログラミングモード、実行モード等) に切り替えることができる。
*: <br>
* ピン6 (未使用ピン)
*: N/C
*: <br>
* ピン7 (JTAG信号ピン)
*: TCK
*: Test Clock (テストクロック) の信号線である。
*: JTAG通信の同期を取るためのクロック信号を提供する。
*: <br>
*: 他のJTAG信号 (TDI、TDO、TMS) は、このクロック信号に同期してデータを送受信する。
*: <br>
* ピン8 (特殊機能ピン)
*: TEST / VPP
*: テスト信号 または プログラミング電圧のピンである。
*: <u>このピンは、多重化JTAGピンを持つMSP430マイコンでのみ使用される。</u>
*: 通常の動作では、このピンをHIGHレベルに保持することにより、ポートピンとして多重化されているJTAGピンをJTAG機能として動作させる。
*: <br>
*: <u>全てのMSP430マイコンがこのピンを持っているわけではないため、使用するデバイスのデータシートで確認が必要となる。</u>
*: <br>
* ピン9 (電源関連ピン)
*: GND
*: <br>
* ピン10 (未使用ピン)
*: N/C
*: <br>
* ピン11 (特殊機能ピン)
*: RST / NMI / SBWTDIO
*: 複数の機能を持つ重要なピンである。
*: RSTはリセット信号、NMIは非マスカブル割り込み、SBWTDIOはSpy-Bi-Wire通信のデータ入出力を意味する。
*: 4線式JTAG通信を使用する場合でも、SBW (Spy-Bi-Wire) をサポートするデバイスでは、このピンの接続が必須となる。
*: <br>
*: デバッグツールは、JTAGコマンドでターゲットをリセットできない場合、このピンを使用して物理的なリセットを行う。
*: また、Spy-Bi-Wire通信では、このピンが双方向のデータ通信に使用される。
*: <br>
* ピン12 (未使用ピン)
*: N/C (予約済み)
*: <br>
* ピン13 (未使用ピン)
*: N/C
*: <br>
* ピン14 (未使用ピン)
*: N/C
<br>
<u>※注意</u><br>
<u>MSP-FETとMSP-GANG、MSP-GANG430、MSP-PRGS430は同一の接続を使用する。</u><br>
<u>VCC TOOLピン(ピン2)とVCC TARGETピン(ピン4)は同時に接続してはならない。</u><br>
<br>
ターゲット基板への電源供給方法には、2通りの方法がある。<br>
<br>
* MSP-FETから電源を供給する場合
*: ピン2 (VCC TOOL) をターゲット基板のVCCに接続する。
*: この場合、ピン4は未接続とする。
*: <br>
*: <u>この方法は、ターゲット基板に独自の電源がない場合やデバッグ時のみMSP-FETから電源を供給したい場合に使用する。</u>
*: <br>
* ターゲット基板の独自電源を使用する場合
*: ピン4 (VCC TARGET) をターゲット基板のVCCに接続する。
*: この場合、ピン2は未接続とする。
*: <br>
*: MSP-FETは、VCC TARGETピンを通じてターゲット基板の電源電圧を検出し、出力信号のレベルをそれに応じて調整 (VCC-sense機能) する。
*: <br>
*: この方法は、ターゲット基板がバッテリーや外部電源で動作している場合に使用する。
*: VCC-sense機能により、MSP-FETとターゲット基板の電源間の競合を防ぐことができる。
<br>
柔軟性を持たせるために、ジャンパブロックを使用してピン2またはピン4のどちらかを選択できるように設計することが推奨される。<br>
ただし、この柔軟性が不要な場合は、使用する電源供給方法に応じて直接配線しても構わない。<br>
<br>
===== ターゲット基板の推奨回路構成 =====
ターゲット基板のRST/NMIピンには、以下に示す回路構成を推奨する。<br>
<u>この構成はデバイスファミリーによって異なるため、使用するMSP430ファミリーのユーザーズガイドを参照すること。</u><br>
<br>
* 抵抗R1
*: 47[kΩ]のプルアップ抵抗をRST/NMIピンとVCC間に接続する。
* コンデンサC1
*: RST/NMIピンとGND間に接続する。
*: 一般的なデバイスの場合は、0.01[uF]
*: <br>
*: SBW (Spy-Bi-Wire) をサポートするデバイスを4線式JTAGモードで使用する場合は、上限は2200[pF]
<br>
* 電源デカップリングコンデンサ
*: VCCとGND間にコンデンサC2 (10[uF]) と コンデンサC3 (0.1[uF]) を並列に接続する。
*: これらのコンデンサは、電源ノイズを抑制し、安定した動作を保証するために重要である。
<br>
* TESTピンへのプルダウン抵抗 (オプション)
*: 過度のノイズやESDが懸念されるアプリケーションでは、TESTピンに500[Ω]〜1[kΩ]のプルダウン抵抗を追加することができる。
*: この抵抗は、ターゲットデバイスの適切なプログラミングを妨げることなく、ノイズ耐性を向上させる。
<br>
===== ターゲット構成ファイルの作成 =====
Code Composer Studioでデバッグを行うには、ターゲット構成ファイルを作成する必要がある。<br>
<br>
# [View]メニューバー - [Target Configurations]を選択して、Target Configurationsビューを表示する。
# Target Configurationsビュー内の[User Defined]を右クリックして、[New Target Configuration]を選択する。
# ファイル名を入力する。<br>例えば、"MSP430_JTAG.ccxml"のように入力する。拡張子は.ccxmlとする。
# [Finish]ボタンを押下する。
#: <br>
# ターゲット構成エディタが開くので、以下に示す設定を行う。
## [Connection:]プルダウンから[Texas Instruments MSP430 USB1]を選択する。
## [Board or Device:]欄で、使用するMSP430デバイスを選択する。<br>この時、検索ボックスを使用して型番を入力すると素早く見つけることができる。
#: <br>
# [Advanced]タブを開いて、デバッグインターフェースの詳細設定を行う。
## デバイス名の左側にある矢印をクリックして展開する。
## 表示されたデバイス項目をクリックして選択する。
## 右側の[Connection Properties]パネルで、[JTAG Mode]が[4-wire JTAG] または [Auto] に設定されていることを確認する。
#: <br>
# 設定が完了したら、[Save]ボタンを押下して保存する。
#: <br>
# [Test Connection]ボタンを押下して、MSP-FETとターゲットマイコンの接続を確認する。
# 接続が成功する時、"The JTAG IR Integrity scan-test has succeeded"のようなメッセージが表示される。<br>もし接続に失敗する場合は、ハードウェア接続、電源供給、ターゲットマイコンの型番設定を確認する。
<br>
===== デバッグセッションの開始 =====
ターゲット構成ファイルの作成後、デバッグセッションを開始する。<br>
<br>
# Project Explorerでデバッグするプロジェクトを右クリックして、[Debug As] - [Code Composer Debug Session]を選択する。
# もし複数のターゲット構成が存在する場合、使用する構成ファイルの選択を求められる。
# 上記で作成した"MSP430_JTAG.ccxmlファイル"を選択して、[OK]ボタンを押下する。
#: <br>
# Code Composer Studioが自動的にプログラムをビルドして、ターゲットマイコンにロードする。<br>デバッグパースペクティブに切り替わり、プログラムのエントリポイント (通常はmain関数) で一時停止する。
#: <br>
# デバッグツールバーまたはキーボードショートカットを使用して、プログラムの実行を制御できる。
#* [Resume] (F8キー)
#*: プログラムを続行する
#* [Suspend]
#*: プログラムの実行を一時停止する
#* [Terminate]
#*: デバッグセッションを終了する
#* [Step Into] (F5キー)
#*: 次の命令をステップ実行する。
#*: 関数呼び出しの場合は関数内部に入る
#* [Step Over] (F6キー)
#*: 次の命令をステップ実行する。
#*: 関数呼び出しの場合は関数全体を実行する。
#* [Step Return] (F7キー)
#*: 現在の関数から戻るまで実行する。
<br>
===== ブレークポイントの設定 =====
ブレークポイントを設定することにより、プログラムの特定の位置で実行を一時停止させることができる。<br>
<br>
# ソースコードエディタで、ブレークポイントを設定したい行の行番号の左側(左マージン)をダブルクリックする。
# 青い丸のアイコンが表示され、ブレークポイントが設定される。
# または、設定したい行にカーソルを置いて、[Run]メニューバー - [Toggle Breakpoint]を選択する。<br>もしくは、[Ctrl] + [Shift] + [B]キーを同時押下する。
#: <br>
# 設定されたブレークポイントは、[Breakpoints]ビューで確認および管理できる。
# [Window]メニューバー - [Show View] - [Breakpoints]を選択して表示する。
#: <br>
# ブレークポイントを削除するには、再度行番号の左側をダブルクリック、または、[Breakpoints]ビューで該当のブレークポイントを選択して削除する。
<br>
===== 変数とレジスタの監視 =====
デバッグ中に変数やレジスタの値を監視することができる。<br>
<br>
* [Variables]ビュー
*: 現在のスコープ内のローカル変数とグローバル変数の値を表示する。
*: プログラムがブレークポイントで停止している時、このビューで変数の値を確認できる。
*: 変数名をダブルクリックすることで、値を変更することも可能である。
*: <br>
* [Expressions]ビュー
*: 任意の式や変数を追加して監視することができる。
*: [Window]メニューバー - [Show View] - [Expressions]を選択して表示する。
*: [Add new expression]アイコンをクリックして、監視したい変数名や式を入力する。
*: <br>
* [Registers]ビュー
*: MSP430マイコンのCPUレジスタやペリフェラルレジスタの値を表示する。
*: [Window]メニューバー - [Show View] - [Registers]を選択して表示する。
*: レジスタグループを展開して、個々のレジスタの値を確認できる。
*: <br>
* [Memory Browser]ビュー
*: メモリの内容を16進数やASCII形式で表示する。
*: [Window]メニューバー - [Show View] - [Memory Browser]を選択して表示する。
*: メモリアドレスを入力して、該当領域の内容を確認できる。
<br>
===== デバッグセッションの終了 =====
デバッグが完了したら、以下に示す手順でデバッグセッションを終了する。<br>
<br>
# デバッグツールバーの[Terminate]ボタン (赤い四角のアイコン) を押下する。<br>または、[Run]メニューバー - [Terminate]を選択する。
# Code Composer Studioのパースペクティブ (編集モード) に戻るには、右上の[CCS Edit]ボタンを押下する。<br>または、[Window]メニューバー - [Perspective] - [Open Perspective] - [CCS Edit]を選択する。
<br>
==== SBWデバッグの方法 ====
SBW (Spy-Bi-Wire) インターフェースを使用したデバッグセッションを開始する方法を以下に示す。<br>
SBWは2線式のインターフェースであり、JTAGと比較してピン数を削減できるメリットがある。<br>
<br>
===== ハードウェア接続 =====
MSP-FETとターゲットマイコンをSBWインターフェースで接続する。<br>
<br>
接続には、以下に示す信号線が必要である。<br>
* SBWTDIO (Spy-Bi-Wire Test Data Input/Output)
* SBWTCK (Spy-Bi-Wire Test Clock)
* VCC (ターゲット電源)
* GND (グランド)
<br>
MSP-FETの14ピンコネクタを使用する場合、以下に示すピンを接続する。<br>
* ピン1 (Spy-Bi-Wire専用信号ピン)
*: TDO/TDI
*: Spy-Bi-Wire通信における最も重要なピンである。
*: このピンは、リセット信号 (RST)、非マスカブル割り込み (NMI)、Spy-Bi-Wireデータ入出力 (SBWTDIO)という3つの機能を持つ。
*: <br>
*: SBW通信では、このピンがMSP-FETとターゲットマイコン間の双方向データ通信に使用される。
*: つまり、MSP-FETからターゲットへのコマンド送信とターゲットからMSP-FETへの応答受信の両方が、この1本のピンを通じて行われる。
*: このため、このピンに接続される容量性負荷 (コンデンサやケーブルの寄生容量) は、通信品質に直接影響を与える。
*: <br>
*: RST/NMI/SBWTDIOピンには、47[kΩ]のプルアップ抵抗 と コンデンサC1 (標準値1100[pF]、上限2200[pF]) を接続することが推奨される。
*: プルアップ抵抗は、信号線を安定した状態に保つために必要となる。
*: コンデンサは、ノイズ除去とリセット機能のために使用されるが、その容量値は慎重に選ぶ必要がある。
*: 容量が大きすぎると、SBWTDIOピンの信号の立ち上がり・立ち下がりが遅くなり、双方向通信に支障をきたす。
*: <br>
*: 最適値はSBW通信速度、ターゲットの電源電圧、基板設計等により、100[pF]〜2200[pF]の範囲で調整することが推奨されている。
*: <br>
* ピン2 (電源関連ピン)
*: VCC TOOL (ツールからターゲットへの電源を供給する場合)
*: MSP-FETからターゲット基板に電源を供給するためのピンである。
*: ターゲット基板に独自の電源がない場合、このピンを通じてMSP-FETがターゲットマイコンに動作電圧を提供する。
*: 開発初期段階で、外部電源を用意せずにデバッグしたい場合に便利な機能である。
*: <br>
* ピン4 (電源関連ピン)
*: VCC TARGET (ターゲット電源の検出用)
*: ターゲット基板の電源電圧を検出するためのピンである。
*: ターゲット基板がバッテリーや外部電源で動作している場合、このピンをターゲットのVCCに接続する。
*: MSP-FETはこのピンを通じてターゲットの電源電圧を監視し、出力する信号のレベルをターゲットの電圧に合わせて調整する。
*: これを、<u>VCC-sense機能</u> と呼ぶ。
*: <br>
* ピン7 (Spy-Bi-Wire専用信号ピン)
*: TCK
*: Spy-Bi-Wire通信におけるクロック信号線である。
*: 4線式JTAG通信ではこのピンはTCKとして機能するが、SBW通信ではSBWTCKとして機能する。
*: このクロック信号に同期して、ピン1 (SBWTDIO) を通じてデータが送受信される。
*: SBWTCKは、MSP-FETからターゲットマイコンへの単方向信号であり、通信のタイミングを制御する。
*: <br>
* ピン8
*: TEST/VPP
*: <br>
* ピン9
*: GND
*: MSP-FETとターゲット基板の間で共通のグランド基準を確立する。
*: デジタル信号の電圧レベルを正確に判定するには、送信側と受信側で同じグランド基準を共有する必要がある。
<br>
<u>※注意</u><br>
<u>SBWの信号線の配置は、ターゲットマイコンのファミリーやパッケージによって異なる場合がある。</u><br>
<u>また、SBW接続では以下の点に注意する。</u><br>
* <u>ターゲット基板の電源がオンになっていることを確認する。</u>
* <u>SBWTDIOおよびSBWTCK信号線には、47[kΩ]のプルアップ抵抗が必要な場合がある。</u>
* <u>信号線の長さは、できるだけ短くする。</u><br><u>これは、長い配線はノイズの影響を受けやすく、通信エラーの原因となるためである。</u>
<br>
===== ターゲット構成ファイルの作成 =====
SBWインターフェースを使用する場合も、ターゲット構成ファイルを作成する必要がある。<br>
<br>
# [View]メニューバー - [Target Configurations]を選択して、Target Configurationsビューを表示する。
# Target Configurationsビュー内の[User Defined]を右クリックして、[New Target Configuration]を選択する。
# ファイル名を入力する。<br>例えば、"MSP430_SBW.ccxml"のように入力する。
# [Finish]ボタンを押下する。
#: <br>
# ターゲット構成エディタが開くので、以下に示す設定を行う。
## [Connection:]プルダウンから[Texas Instruments MSP430 USB1]を選択する。
## [Board or Device:]欄で、使用するMSP430デバイスを選択する。
##: <br>
# [Advanced]タブを開いて、SBWインターフェースの設定を行う。
## デバイス名の左側にある矢印をクリックして展開する。
## 表示されたデバイス項目をクリックして選択する。
## 右側の[Connection Properties]パネルで、[JTAG Mode]を[2-wire Spy-Bi-Wire]に設定する。
## もし、[Auto]が選択されている場合、Code Composer Studioは自動的にインターフェースを検出して選択するが、明示的に[2-wire Spy-Bi-Wire]を指定することを推奨する。
#: <br>
# 設定が完了したら、[Save]ボタン または [Ctrl] + [S]キーを押下して保存する。
#: <br>
# [Test Connection]ボタンを押下して、MSP-FETとターゲットマイコンの接続を確認する。
# 接続が成功すると、<u>"The JTAG IR Integrity scan-test has succeeded"</u>のようなメッセージが表示される。
# もし接続に失敗する場合は、ハードウェア接続、電源供給、JTAG Mode設定、ターゲットマイコンの型番設定を確認する。
<br>
===== デバッグセッションの開始と操作 =====
SBWインターフェースを使用したデバッグセッションの開始方法と操作方法は、JTAGデバッグと同様である。<br>
<br>
# Project Explorerでデバッグしたいプロジェクトを右クリックして、[Debug As] - [Code Composer Debug Session]を選択する。
# 上記で作成した"MSP430_SBW.ccxml"構成ファイルを選択して、[OK]ボタンを押下する。
# プログラムがターゲットマイコンにロードされ、デバッグパースペクティブに切り替わる。
# JTAGデバッグと同様、ブレークポイントの設定、ステップ実行、変数の監視等のデバッグ操作を行うことができる。
<br>
SBWインターフェースは、JTAGインターフェースと比較して以下に示す特徴がある。<br>
* ピン数が少ないため、小型パッケージのデバイスに適している。
* 配線が簡素化されるため、基板設計が容易になる。
* 通信速度は、JTAGと比較してわずかに遅い場合があるが、通常のデバッグ作業では問題にならない。
<br>
==== デバッグ時のトラブルシューティング ====
===== 接続エラーが発生する場合 =====
* MSP-FETとPCが正しくUSB接続されているか確認する。
* ターゲットマイコンとMSP-FETの配線が正しいか確認する。<br>特にVCC、GND、および信号線の接続を確認する。
* ターゲット基板の電源が供給されているか確認する。<br>MSP-FETは通常、ターゲットの電源電圧を検出する必要がある。
* ターゲット構成ファイルで選択したデバイス型番が正しいか確認する。
* JTAGまたはSBWのインターフェース設定が正しいか確認する。
* MSP-FETのファームウェアが最新版にアップデートされているか確認する。
* 他のデバッガや開発ツールがMSP-FETに接続していないか確認する。<br>複数のツールが同時にアクセスするとエラーが発生する。
<br>
===== プログラムのロードに失敗する場合 =====
* ターゲットマイコンのフラッシュメモリが書き込み保護されていないか確認する。
* プログラムサイズがターゲットマイコンのフラッシュメモリ容量を超えていないか確認する。
* ターゲットマイコンがロックされている場合は、マスイレース (Mass Erase) を実行する。
*: [Tools]メニューバー - [On-Chip Flash]を選択して、Flash Programmerツールを開く。
*: [Erase]ボタン - [Entire Flash]を選択する。
<br>
===== デバッグ中にプログラムが停止しない場合 =====
* ブレークポイントが正しく設定されているか確認する。
* 最適化オプションが有効になっている場合、コンパイラがコードを最適化してブレークポイントの位置が変わることがある。<br>デバッグビルド構成を使用して、最適化を無効にすることを推奨する。
* ウォッチドッグタイマ(WDT)が有効になっている場合、プログラムが定期的にリセットされる可能性がある。<br>デバッグ時は、WDTを無効にするか、適切にクリアする。
<br>
===== 変数の値が正しく表示されない場合 =====
* 最適化オプションが有効になっている場合、変数がレジスタに割り当てられるか、完全に削除される可能性がある。
* デバッグビルド構成を使用して、最適化レベルを下げる。
* プロジェクトのプロパティから、[Build] - [MSP430 Compiler] - [Optimization]を選択して、Optimization Levelを[Off] または [Debug(-Og)] に設定する。
<br><br>
== MSP-FET ==
第2世代MSP-FETは、Code Composer Studio v7.0、IAR EW430 v7.1、IAR EWAR v8.10以降のIDEでサポートされている。<br>
それ以前のIDEで使用する場合は、[https://www.ti.com/lit/slau647 こちらのE2E投稿]を参照すること。<br>
<br>
第2世代MSP-FETと第1世代MSP-FETを区別する方法については、MSP-FETのユーザガイド(5.6.1節 - general features)を参照すること。<br>
<br>
==== MSP-FETファームウェアのアップデート ====
MSP Flasherは、JTAGを介してMSP430およびMSP432マイコンをプログラミングするためのオープンソースのシェルベース (コマンドライン) インタフェースであり、一般的なプログラミング機能を提供する。<br>
CCSやIARのようなIDEを使用せずに、バイナリファイルを直接メモリにダウンロードするために使用できる。<br>
また、ファームウェアの抽出やJTAGアクセスの永久ロックにも使用できる。<br>
<br>
まず、[https://www.ti.com/tool/MSP430-FLASHER TIの公式Webサイト]にアクセスして、MSP Flasherをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
unar MSPFlasher-<バージョン>-linux-x64-installer.zip
<br>
MSP Flaserをインストールする。<br>
chmod u+x MSPFlasher-1.3.20-linux-x64-installer.run
./MSPFlasher-<バージョン>-linux-x64-installer.run --prefix <MSP Flaserのインストールディレクトリ>    \
                                                  --installer-language ja                    \
                                                  --mode <gtk | xwindow | text | unattended>  # もし、gtkを選択して描画が崩れる場合は、xwindowまたはtextを指定する
<br>
MSP-FETのファームウェアをアップデートする。<br>
<code>-n NO_TARGET</code>オプションを付加する場合、MSP FlaserはMSP-FETのファームウェアのみを更新するため、ターゲットマイコンへの接続は行わない。<br>
# 通常のアップデート
./MSP430Flasher -n NO_TARGET
# 自動アップデートを行う場合
# <code>-s</code>オプションは、このユーザプロンプトを抑制するためのものである
# ファームウェアのバージョンとMSP Debug Stackのバージョンの間に不一致がある場合、ファームウェアのアップデートが自動的に行われる
./MSP430Flasher -n NO_TARGET -s
<br>
アップデートの実行中において、MSP FlaserがMSP-FETのファームウェアのバージョンとMSP Debug Stack (libmsp430.soまたはMSP430.dll) のバージョンの競合を検出した場合、<br>
MSP Flaserにファームウェアをアップデートさせるようユーザに促す。<br>
>> FETのファームウェアが古いです。
>> 更新しますか?(Y/N):
<br>
[Y]キーを入力する場合、MSP-FETのファームウェアが更新されて、ステータスレポートが表示される。<br>
アップデートに成功した後、MSP Flasherルーチンの実行が継続される。<br>
<br>
[N]キーを入力する場合、実行中のインスタンスを古いファームウェアで再開する。<br>
TIでは、MSP-FETのファームウェアがMSP Debug Stackのバージョンと一致していない間は、MSP Flasherを使用してマイコンへの書き込みを行わないことを推奨している。<br>
<br>
アップデート中にエラーが検出された場合、MSP Flaserはユーザにアップデートの再試行またはキャンセルを促す。<br>
更新を繰り返す場合は、[R]キーを入力する。<br>
<br>
[C]キーを入力する場合、実行中のインスタンスを古いファームウェアで再開する。<br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Windows10]][[カテゴリ:MSP430]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Windows10]][[カテゴリ:Windows11]][[カテゴリ:MSP430]]

2026年5月4日 (月) 03:09時点における最新版

概要

Code Composer Studio(以降、CCS)はTexas Instruments社(以降、TI社)が提供しているIDE (統合開発環境) である。
オープンソースの統合開発環境であるEclipseをベースに作成しているため、Eclipseを使用したことのあるユーザにはユーザーインタフェースがほぼ一緒なので違和感なく使用できる。

また、CCSにはこれ以外にも大きな特長がある。

  • CCSの特長1 : 無償
    CCS 7以降で全機能を無償で使用できるようになった。
    IDEが有償だと製品検討時の実験的な導入ですら手を出しづらいが、CCSは無償なので評価ボードとJTAGエミュレータを用意するだけで試すことができる。

    MSP430等であれば、JTAGエミュレータ機能を搭載した評価ボードが低価格で用意されているので、製品導入の検討目的だけでなく、電子工作でも手を出しやすい環境が整っている。


  • CCSの特長2 : TI社のマイコン、プロセッサー製品ほぼ全てに対応
    CCSはTI社のマイコン、プロセッサ製品のほぼ全てに対応している。(※あまりにも古い製品など、対応していない製品も一部ある)
    製品毎に異なるIDEだと、その都度インストールの手間が掛かり、ディスク容量も消費してしまう。また、UIも変わってしまうので慣れるのに時間が掛かってしまう。
    一方、CCSは製品が変わっても基本的な使い方は同じである。例えば、MSP430の開発に慣れた人がC2000の開発をしても、IDEの使い方を1から習得し直す手間は掛からない。


  • CCSの特長3 : アップデートの頻度が高い
    無償になっても比較的高い頻度でアップデートされている。



ライブラリのインストール

CCSの実行に必要な依存関係のライブラリをインストールする。

パッケージ管理システムからインストール

  • SUSEの場合
    libncurses5とlibusb-0_1-4のインストールを行う。
    libncurses5は、テキストユーザインタフェースを作成するためのAPIを提供するライブラリである。
    libusbは、USBライブラリである。
# SLE / openSUSE Leap
sudo zypper install glibc-32bit libncurses5 python libpython2_7-1_0 gconf2 libnsl1 libusb-0_1-4
                    libpython3_9-1_0  # Code Composer Studio 20


ソースコードからインストール

SLEDの場合、libncurses5およびlibusb-0_1-4はパッケージ管理システムから提供されていないため、ビルドしてインストールする必要がある。

libusb-0_1-4のインストール

libusb-0_1-4のGithubからソースコードをダウンロードする。

git clone https://github.com/libusb/libusb-compat-0.1.git
cd libusb-compat-0.1


configureスクリプトを生成する。

autoreconf -i


libusb-0_1-4をビルドおよびインストールする。

mkdir build && cd build

# 64bit版
../configure --prefix=<libusb-0_1-4のインストールディレクトリ>
make -j $(nproc)
make install


# 32bit版
export LIBUSB_1_0_SONAME="/usr/lib/libusb-1.0.so.0"; \
CC="gcc -m32" CXX="g++ -m32" ../configure --prefix=<libusb-0_1-4のインストールディレクトリ>
make -j $(nproc)
make install


~/.profileファイル等に、以下の環境変数を追記する。

 # ~/.profileファイル
 
 export PATH="/<libusb-0_1-4のインストールディレクトリ>/bin:$PATH"
 export LD_LIBRARY_PATH="/<libusb-0_1-4のインストールディレクトリ>/lib64:/<libusb-0_1-4のインストールディレクトリ>/lib:$LD_LIBRARY_PATH"
 export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"
 export PKG_CONFIG_PATH="/<libusb-0_1-4のインストールディレクトリ>/lib64/pkgconfig:/<libusb-0_1-4のインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH"


libncurses5のインストール

libncurses5の公式Webサイトにアクセスして、libncurses5のソースコードをダウンロードする。
または、wgetコマンドを実行して、libncurses5のソースコードをダウンロードする。

wget https://invisible-mirror.net/archives/ncurses/ncurses-5.x.tar.gz


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

tar ncurses-5.x.tar.gz
cd ncurses-5.x


ビルドディレクトリを作成する。

mkdir build && cd build


libncurses5をビルドおよびインストールする。
(1)から順に(4)までビルドおよびインストールする。

(1) 32bit版 ワイド文字対応
../configure \
CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc -m32"         \
CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++ -m32"        \
--bindir=/<libncurses5のインストールディレクトリ>/baselibs-32bit \
--libdir=/<libncurses5のインストールディレクトリ>/lib            \
--with-shared --with-cxx-shared --with-normal --with-ticlib --with-debug \
--without-progs --without-tests --without-manpages \
--enable-widec --enable-pc-files                   \
--program-suffix="w"                               \
--prefix=<libncurses5のインストールディレクトリ>           \
CPPFLAGS="-P"

make -j $(nproc)

# pkgconfファイルは強制的に/usr/lib/pkgconfigディレクトリにインストールされるため、
# スーパーユーザ権限で実行する
sudo make install.libs

# pkgconfigファイルをインストールディレクトリに移動する
mkdir /<libncurses5のインストールディレクトリ>/lib/pkgconfig
sudo mv \
        /usr/lib/pkgconfig/formw.pc      \
        /usr/lib/pkgconfig/menuw.pc      \
        /usr/lib/pkgconfig/ncurses++w.pc \
        /usr/lib/pkgconfig/ncursesw.pc   \
        /usr/lib/pkgconfig/panelw.pc     \
        /usr/lib/pkgconfig/ticw.pc       \
        /<libncurses5のインストールディレクトリ>/lib/pkgconfig

# スーパーユーザでインストールしているため、オーナーを一般ユーザに変更する
sudo chown -R $USER:$(id -gn) <libncurses5のインストールディレクトリ>

# 不要なファイルを削除する
rm -rf /<libncurses5のインストールディレクトリ>/include
rm -rf /<libncurses5のインストールディレクトリ>/share


(2) 32bit版 非ワイド文字
../configure \
CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc -m32"  \
CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++ -m32" \
--prefix=<libncurses5のインストールディレクトリ>                 \
--bindir=/<libncurses5のインストールディレクトリ>/baselibs-32bit \
--libdir=/<libncurses5のインストールディレクトリ>/lib            \
--with-shared --with-cxx-shared --with-normal --with-ticlib --with-debug --with-termlib --disable-widec --enable-pc-files \
--without-progs --without-tests --without-manpages \
CPPFLAGS="-P"

make -j $(nproc)

# pkgconfファイルは強制的に/usr/lib/pkgconfigディレクトリにインストールされるため、
# スーパーユーザ権限で実行する
sudo make install.libs

# pkgconfigファイルをインストールディレクトリに移動する
mkdir /<libncurses5のインストールディレクトリ>/lib/pkgconfig
sudo mv \
        /usr/lib/pkgconfig/form.pc      \
        /usr/lib/pkgconfig/form_g.pc    \
        /usr/lib/pkgconfig/menu.pc      \
        /usr/lib/pkgconfig/menu_g.pc    \
        /usr/lib/pkgconfig/ncurses.pc   \
        /usr/lib/pkgconfig/ncurses_g.pc \
        /usr/lib/pkgconfig/ncurses++.pc \
        /usr/lib/pkgconfig/panel.pc     \
        /usr/lib/pkgconfig/panel_g.pc   \
        /usr/lib/pkgconfig/tic.pc       \
        /usr/lib/pkgconfig/tic_g.pc     \
        /usr/lib/pkgconfig/tinfo.pc     \
        /usr/lib/pkgconfig/tinfo_g.pc   \
        /<libncurses5のインストールディレクトリ>/lib/pkgconfig

# スーパーユーザでインストールしているため、オーナーを一般ユーザに変更する
sudo chown -R $USER:$(id -gn) <libncurses5のインストールディレクトリ>

# 不要なファイルを削除する
rm -rf /<libncurses5のインストールディレクトリ>/include
rm -rf /<libncurses5のインストールディレクトリ>/share


(3) 64bit版 ワイド文字対応
../configure \
CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc"     \
CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++"    \
--prefix=<libncurses5のインストールディレクトリ>        \
--libdir=/<libncurses5のインストールディレクトリ>/lib64 \
--with-shared --with-cxx-shared --with-normal  --with-ticlib --with-debug \
--without-progs --without-tests --without-manpages \
--enable-widec --enable-pc-files                   \
CPPFLAGS="-P"

# pkgconfファイルは強制的に/usr/lib/pkgconfigディレクトリにインストールされるため、
# スーパーユーザ権限で実行する
sudo make install.libs

# pkgconfigファイルをインストールディレクトリに移動する
mkdir /<libncurses5のインストールディレクトリ>/lib64/pkgconfig
sudo mv \
        /usr/lib/pkgconfig/formw.pc      \
        /usr/lib/pkgconfig/menuw.pc      \
        /usr/lib/pkgconfig/ncurses++w.pc \
        /usr/lib/pkgconfig/ncursesw.pc   \
        /usr/lib/pkgconfig/panelw.pc     \
        /usr/lib/pkgconfig/ticw.pc       \
        /<libncurses5のインストールディレクトリ>/lib64/pkgconfig

# スーパーユーザでインストールしているため、オーナーを一般ユーザに変更する
sudo chown -R $USER:$(id -gn) <libncurses5のインストールディレクトリ>

# 不要なファイルを削除する
rm -rf /<libncurses5のインストールディレクトリ>/include
rm -rf /<libncurses5のインストールディレクトリ>/share


(4) 64bit版 非ワイド文字
../configure \
CC="/<GCC6.5以前のインストールディレクトリ>/bin/gcc"     \
CXX="/<GCC6.5以前のインストールディレクトリ>/bin/g++"    \
--prefix=<libncurses5のインストールディレクトリ>        \
--libdir=/<libncurses5のインストールディレクトリ>/lib64 \
--with-shared --with-cxx-shared --with-normal --with-ticlib --with-debug --with-termlib \
--without-tests --without-manpages              \
--disable-widec --enable-pc-files               \
CPPFLAGS="-P"

make -j $(nproc)

# pkgconfファイルは強制的に/usr/lib/pkgconfigディレクトリにインストールされるため、
# スーパーユーザ権限で実行する
sudo make install.libs

# pkgconfigファイルをインストールディレクトリに移動する
mkdir /<libncurses5のインストールディレクトリ>/lib64/pkgconfig
sudo mv \
        /usr/lib/pkgconfig/form.pc      \
        /usr/lib/pkgconfig/form_g.pc    \
        /usr/lib/pkgconfig/menu.pc      \
        /usr/lib/pkgconfig/menu_g.pc    \
        /usr/lib/pkgconfig/ncurses.pc   \
        /usr/lib/pkgconfig/ncurses_g.pc \
        /usr/lib/pkgconfig/ncurses++.pc \
        /usr/lib/pkgconfig/panel.pc     \
        /usr/lib/pkgconfig/panel_g.pc   \
        /usr/lib/pkgconfig/tic.pc       \
        /usr/lib/pkgconfig/tic_g.pc     \
        /usr/lib/pkgconfig/tinfo.pc     \
        /usr/lib/pkgconfig/tinfo_g.pc   \
        /<libncurses5のインストールディレクトリ>/lib64/pkgconfig


# スーパーユーザでインストールしているため、オーナーを一般ユーザに変更する
sudo chown -R $USER:$(id -gn) <libncurses5のインストールディレクトリ>


~/.profileファイル等に、以下の環境変数を追記する。

 export PATH="/<libncurses5のインストールディレクトリ>/bin:/<libncurses5のインストールディレクトリ>/baselibs-32bit/bin:$PATH"
 export LD_LIBRARY_PATH="/<libncurses5のインストールディレクトリ>/lib64:/<libncurses5のインストールディレクトリ>/lib:$LD_LIBRARY_PATH"
 export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"
 export PKG_CONFIG_PATH="/<llibncurses5のインストールディレクトリ>/lib64/pkgconfig:/<llibncurses5のインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH"



Code Composer Studioのインストール

  1. インストーラのダウンロード
    まず、Code Composer StudioのインストーラをTIの公式Webサイトからダウンロードする。
    Windowsの場合はWindows 64bitをダウンロード、Linuxの場合はLinux 64bitをダウンロードする。
  2. アンチウイルスソフトの無効化
    インストーラを実行する前に、使用しているPCのアンチウイルスソフトを一時的に無効化する。
    無効化する理由は、アンチウイルスソフトがCode Composer Studioのインストール処理に悪影響を与える恐れがあるためである。インストールが完了したら有効に戻す。
  3. インストーラの実行
    上記でダウンロードしたファイルを解凍して、以下に示すファイルを実行する。
    インストール開始直前の初期チェックが行われる。
    • Windowsの場合
      ccs_setup_xxx.exeファイルを実行する。
    • Linuxの場合
      ./ccs_setup_<バージョン>.runファイルを実行する。
      ./ccs_setup_<バージョン>.run --mode gtk --prefix <CCSのインストールディレクトリ>

  4. Code Composer Studioのインストール
    [License Agreement]画面では、[I accept ...]ボタンにチェックを入力して[Next]ボタンを押下する。
    [Choose Installation Location]画面では、CCSをインストールするフォルダを選択することができる。[Next]ボタンを押下する。

    [Processor Support]画面では、MSP430を始めとするTI製品のコンパイラ等を選択してインストールすることができる。
    使用する製品にチェックを入力する。
    どれをインストールスべきが不明な場合は、全てにチェックを入力する。
    [Next]ボタンを押下する。

    [Select Debug Probes]画面では、サードパーティ製のJTAGエミュレータをインストールするかどうかを選択することができる。
    どれをインストールすべきが不明な場合は、全てにチェックを入力する。
    [Finish]ボタンを押下して、インストールを行う。

    Windowsの場合、インストール中にセキュリティに関するウインドウが表示されることがある。
    (インストール時にチェックした項目によっては表示されないこともある)

    もし、[Windowsセキュリティの重要な警告]画面が表示された時は、[アクセスを許可する]ボタンを押下する。
    [Windowsセキュリティ]画面が表示された時は、[インストール]ボタンを押下する。

  5. Code Composer Studioのインストール完了後、[Launch ...]ボタンにチェックを入力したまま[Finish]ボタンを押下すると、CCSが起動する。

  6. Linuxの場合は、/<Code Composer Studioのインストールディレクトリ>/ccs/install_scriptsディレクトリに移動して、専用デバイスドライバをインストールする必要がある。
     cd /<Code Composer Studioのインストールディレクトリ>/ccs/install_scripts
     sudo ./install_drivers.sh
    

    UDEVルールファイルを再読み込みする。
     sudo udevadm control --reload-rules
     sudo udevadm trigger
    



CCSのアンインストール

CCSのインストールディレクトリに移動する。

cd <CCSのインストールディレクトリ>


まず、TIのudevルールファイルを削除する。

./ccs/install_scripts/uninstall_drivers.sh


または、手動でTIのudevルールファイルを削除する。

cd /etc/udev/rules.d
sudo rm 61-msp430uif.rules          \
        70-mm-no-ti-emulators.rules \
        71-ti-permissions.rules     \
        99-jlink.rules


最後に、CCSをアンインストールする。

./uninstall_ccs.run  --mode gtk



MSP430 SDK (MSP430ware)

MSP430 SDK (MSP430ware) とは

MSP430 SDKは、MSP430マイコン向けの効果的なコードを記述する場合に役立つリソースを集めたものである。
これらは、全てのMSP430マイコンをサポートしている。

なお、MSP430 SDKは、以前はMSPWareおよびMSP430Wareとして知られている。

この設計リソースコレクションには、
MSP430ドライバライブラリのようなデバイスやペリフェラルに特化したライブラリから、グラフィックスライブラリや静電容量式タッチライブラリのようなアプリケーションに特化したライブラリまで、
高度に抽象化されたソフトウェアライブラリの幅広いセレクションが含まれている。

特に、MSP430ドライバライブラリは、ソフトウェア開発者が便利なAPIを活用して低レベルで複雑なハードウェアペリフェラルを制御して、結果としてコードを読みやすく保守しやすくするために不可欠である。

MSPドライバライブラリは、最も初期のシリーズを除くすべてのデバイスをサポートしている。

MSP430 SDK (MSP430ware) のインストール

Code Composer StudioおよびTI Developer Zoneのユーザは、Resource ExplorerからMSP430 SDKにアクセスすることができる。

TIの公式Webサイトにアクセスして、MSP430 SDKのインストーラをダウンロードする。
TIのアカウントにログインする必要があることに注意する。

MSP430 SDKをインストールする。

./MSP430Ware_<バージョン>_setup.run           \
   --prefix <MSP430 SDKのインストールディレクトリ> \
   --mode gtk --installer-language ja

# または

kdesu -c "./MSP430Ware_<バージョン>_setup.run \
   --prefix <MSP430 SDKのインストールディレクトリ> \
   --mode gtk --installer-language ja"


また、TIのResource ExplorerのWebサイトにアクセスして、TI社マイコンのサンプルコードをダウンロードすることも可能である。


MSPM0 SDK

MSPM0 SDKとは

MSPM0 SDKは、TI社が提供する無償のSDKであり、以下に示すものを含む。

  • DriverLib
    ハードウェア抽象化ライブラリ O(GPIO、UART、ADC等の制御関数)
  • サンプルコード
    各ペリフェラルの動作例
  • スタートアップコード・リンカスクリプト
    プロジェクトの基本構成
  • SysConfig
    グラフィカルな周辺機能設定ツール
  • ドキュメント
    APIリファレンス、ユーザガイド


これは、MSPM0ファミリーのマイコンを使用する場合は必須となる。
ただし、DriverLibを使用せずとも全てレジスタを直接アクセスして開発することも可能であるが、開発効率と保守性の面からMSPM0 SDKの使用が推奨される。

MSPM0 SDKのインストール

Code Composer StudioにあるResource Explorer または TIの公式WebサイトからMSPM0 SDKをダウンロードする。
ダウンロードしたファイルに実行権限を付加して、MSPM0 SDKをインストールする。

chmod u+x ./mspm0_sdk_<バージョン>.run

./mspm0_sdk_<バージョン>.run           \
   --prefix <任意のインストールディレクトリ> \
   --installer-language ja



TI Cloud Agent

TI Cloud Agentとは

TI Cloud Agentとは、TI社のCloud Tools (Webブラウザベースの開発環境) から、
ローカルに接続されたハードウェアデバイス (MSPM0G3519 LaunchPad等) へのフラッシュ書き込みとデバッグを可能にするWebアプリケーションである。

Webブラウザとローカルハードウェアの橋渡しを行うため、TI Cloud Agent Bridgeというブラウザ拡張機能も別途インストールする必要がある。

TI Cloud Agentのインストール

  1. Webブラウザを起動して、TI Developer Zoneへアクセスする。
  2. TIアカウントでログインする。
  3. TI Developer Zoneのトップページから、[Browse Software And Examples]を選択する。
    または、CCS Cloudを起動して、[Click to Start Developing]を選択する。

  4. TI Cloud Agentをインストールする。
    初めてCCS Cloudを使用する場合、または、評価ボードへのプログラム書き込みを試みる場合、[TI Cloud Agent Installation]ダイアログが表示される。
    このダイアログには、以下の2つのインストール手順が表示される。
    • TI Cloud Agent
    • TI Cloud Agent Bridge
  5. ダイアログ内の[Install TI Cloud Agent]リンクを選択してダウンロードする。
  6. ダウンロードしたインストーラに実行権限を付加して実行する。
     chmod u+x TICloudAgent_setup.run
     
     ./TICloudAgent_setup.run \
        --prefix <任意のインストールディレクトリ> \
        --install-language ja
    
  7. インストール中において、スーパーユーザ権限が要求されることに注意する。
  8. インストールウィザードの指示に従ってインストールを完了する。


インストールされるUDEVファイル等は、以下の通りである。

  • UDEVルールファイル
    • /etc/udev/rules.d/61-msp430uif.rules
    • /etc/udev/rules.d/70-mm-no-ti-emulators.rules
    • /etc/udev/rules.d/71-ti-permissions.rules

  • デスクトップエントリファイル
    • /usr/share/applications/ticloudagent.desktop


TI Cloud Agent Bridge (ブラウザ拡張機能) のインストール

TI Cloud Agentのインストールが完了した後、TI Cloud Agent Bridgeをインストールする。

  • Chromium系ブラウザの場合
    1. Chromeウェブストアを開く。
    2. TICloudAgent Bridge 拡張機能を探す。
    3. [Chromeに追加]ボタンを押下する。

  • Mozilla Firefoxの場合
    1. Firefox Add-onsページを開く。
    2. TICloudAgent Bridge 拡張機能を探す。
    3. [Firefoxへ追加]ボタンを押下する。


MSPM0G3519を使用した回路の接続

MSPM0G3519を使用した回路において、USBケーブルでPCと接続する。
Windowsの場合は、デバイスドライバが自動的にインストールされる。

動作確認

  1. Webブラウザを起動して、TI Developer Zoneへアクセスする。
  2. [Browse Software And Examples]を選択する。
  3. [MSPM0 SDK] - [Examples]から任意のサンプルプロジェクトを選択する。
    例 : gpio_toggle_output
  4. [Import]ボタンを押下して、プロジェクトをCCS Cloudにインポートする。
  5. 左サイドバーのデバッグアイコンを選択する。
  6. [Play]ボタンを押下して、デバッグセッションを開始する。
    自動的にTI Developer ZoneがMSPM0G3519を使用した回路が接続されていることを検出する。
    サンプルコードがMSPM0G3519にダウンロードされて、デバッガがエントリポイントで一時停止する。
    再度、[Play]ボタンを押下することにより、プログラムが実行される。



TI Cloud Agent

ログファイル (CCS 20以降使用時)

Linux

TI Cloud Agentの問題において、
/<CCSのインストールディレクトリ>/ccs/ccs_base/cloudagent/ticloudagent.shファイル において、3行目から5行目のコメントを外す。
Code Composer Studioを再起動する。

ログファイルは、/tmp/my_ticld.logファイル として保存される。

Windows

TI Cloud Agentの問題において、
\<CCSのインストールフォルダ>\ccs\ccs_base\cloudagent\ticloudagent.batファイル において、3行目から5行目のコメントを外す。
Code Composer Studioを再起動する。

ログファイルは、C:\temp\my_ticld.logファイル として保存される。


エラー

スーパーユーザ権限でのインストール (CCS 9.2 〜 9.3)

CCS 9.2および9.3には不具合があり、スーパーユーザ権限でインストールした時、
プロジェクトでターゲットを構成する場合、または、特定のデバイスファミリー (C2000、Hercules) を使用して新しいターゲット構成ファイルを作成する場合、以下に示すようなエラーが出力される。

# ターゲット構成ファイルの作成:

インクルードまたはインスタンスxmlファイルの解析に問題があります。
/opt/ti/ccs930/ccs/ccs_base/common/targetdb/../Modules/C2000/C2000_FPU32_Registers.xml(そのようなファイルまたはディレクトリはありません)


# 新しいプロジェクトでの接続の構成:

ファイルの解析エラー:
(0, 0)での致命的なエラー : 例外が発生しました!type : RuntimeException, メッセージ : プライマリドキュメントエンティティを開けませんでした。
Id=/opt/ti/ccs930/ccs/ccs_base/common/targetdb/../Modules/C2000/C2000_FPU32_Registers.xml


# ファイルの解析中:
/opt/ti/ccs930/ccs/ccs_base/common/targetdb/../Modules/C2000/C2000_FPU32_Registers.xml


これは、インストールツリー内のいくつかのサポートファイルの権限が不適切に設定されているために発生する。
これを修正するには、CCSのインストールディレクトリにあるccsディレクトリ下の全てのディレクトリとファイルに対して、全てのユーザの読み込み権限と実行権限を付加する。

cd /opt/ti/ccs930/ccs
sudo chmod -R go+rX *


アップデートエラー

Code Composer Studioをアップデートする時、以下に示すような内部エラーが発生する場合がある。

An internal error occurred during: "Computing size".
Profile epp.package.cpp is not current. 
Expected timestamp 1717462470939 but was 1717462431485.


これは、プロファイル"epp.package.cpp"のタイムスタンプが期待値と異なることが原因である。

このエラーを解決するためには、以下に示す手順を実施する。

  1. Code Composer Studioを完全に終了する。
  2. Code Composer Studioのワークスペースフォルダを削除、または、名前を変更する。
  3. Code Composer Studioを再起動して、新しいワークスペースを作成する、または、別の場所にワークスペースを指定する。
  4. 問題のプロジェクトをインポートし直す、または、新しいプロジェクトを作成する。


もし、上記の手順でエラーが解決しない場合は、以下の追加手順を実施する。

  1. Code Composer Studioをアンインストールする。
  2. TIの公式Webサイトから最新バージョンのCode Composer Studioをダウンロードしてインストールする。
  3. 新しいワークスペースを作成して、プロジェクトを再度インポート、または、新規作成する。



プロジェクトの作成

はじめに

まず、プロジェクトを保管するワークスペース向けのディレクトリを作成する。
なお、ディレクトリのパスのに全角文字がある場合、CCSのコンパイラ等のツールが動作しない可能性があることに注意する。

Code Composer Studioの起動後、上記で作成したワークスペースを指定する。

次に、ワークスペース内にプロジェクトを作成する。 作成方法は、以下に示すように2通りある。

  • 新規作成する方法
  • ライブラリのサンプルプロジェクトをインポートして作成する方法


初心者の場合は、サンプルプロジェクトをインポートして作成する方がよい。
これは、サンプルプロジェクトは最初からライブラリがプロジェクト内に組み込まれているためである。

新規作成は、ライブラリを使用せずに1から設計者がソースコードを記述する場合や古いバージョンのライブラリを使用する場合等に選択する。

作成

Code Composer Studioの起動後、[File]メニューバー - [New] - [CCS Project]を選択する。
[New CCS Project]画面が表示されるので、プロジェクトの各種設定を行う。

まず、[Target:]プルダウンから使用するマイコンのファミリーとマイコンの型番を選択する。

次に、[Connection:]プルダウンから使用するデバッガを指定する。
LaunchPadボードの場合は、TI MSP430 USB X [Default]を選択する。
何を指定すればよいか不明の場合は、デバッガを接続した状態で[Identify]ボタンを押下して、デバッガとPCの接続確認を確認する。
もし、選択が間違っている場合や未接続の場合はエラーが出力される。

※注意
[Identify]ボタンを押下した時、デバッガのファームウェアをアップデートするよう促される場合がある。
この時、[Update]ボタンを押下する。

サンプルプロジェクトの使用

サンプルプロジェクトを使用する場合、Resource Explorerツールを使用する。

  1. [View]メニューバー - [Resource Explorer]を選択する。
    または、[View]メニューバー - [Getting Started]を選択して、[Getting Started]画面から[Resource Explorer]を選択する。

  2. Resource Explorerでは、サンプルプロジェクト以外にもマイコン、LaunchPadボード、ライブラリのドキュメント等の開発時に必要な資料が1通り存在する。
    もし、サンプルソースコード等が必要な場合は、Resource Explorerを使用して探すことを推奨する。

  3. Resource Explorerの起動後、使用するサンプルソースコードをインポートする。
    [MSP430 microcontrollers] - [Embedded Software] - [MSP430Ware] - [Devices] - [MSP430ファミリー名] - [MSP430の型番] -
    [Peripheral Examples] - [Driver Library] - [Example Projects] -> [サンプルソースコードの種類] - [サンプルソースコードのプロジェクト名]に保存されている。

  4. 使用するサンプルプロジェクト名にマウスオーバーして、プロジェクト名の右側にある点をクリックして、[Import to CCS IDE]を選択する。
    これにより、ワークスペースにサンプルプロジェクトがインポートされる。

    なお、プロジェクトがローカルに存在しない旨のエラーが出力される場合は、[Install]を選択する。

    また、インポートしたサンプルプロジェクトは、プロジェクト名やファイル名を適当にリネームして使用する。

  5. 最後に、[Finish]ボタンを押下する。


Resource Explorerには、多くのサンプルプロジェクトが存在しているため、様々なサンプルプロジェクトをインポートしてMSPの動作確認をすることができる。


デバッグ

デバッグインターフェース

MSP-FETは、MSP430 / MSP 432マイコンとの通信に2種類のデバッグインターフェースをサポートしている。

  • JTAG (Joint Test Action Group) インターフェース
    IEEE 1149.1標準に基づいたデバッグインターフェースである。
    4線式のインターフェース (TDI、TDO、TMS、TCK)、GND、リセット (オプション) を使用する。
    全てのMSP430ファミリーでサポートされているが、比較的多くのピンを必要とする。

  • SBW (Spy-Bi-Wire) インターフェース
    TI社が開発した2線式のデバッグインターフェースであり、JTAGの機能を2本の信号線 (SBWTDIO、SBWTCK) で実現する。
    ピン数の制約がある小型パッケージのマイコンに適している。
    MSP430F2xx以降のほとんどのマイコンでサポートされている。
    JTAGと比較して、回路上の配線を削減できるため、より小型の設計が可能となる。


どちらのインターフェースを使用する場合でも、MSP-FETとターゲットマイコン間の接続には、VCC、GND、RST信号が必要である。

JTAGデバッグの方法

JTAGインターフェースを使用したデバッグセッションを開始する方法を以下に示す。

ハードウェア接続

MSP-FETとターゲットマイコンをJTAGインターフェースで接続する。

接続には、以下に示す信号線が必要である。

  • TDI (Test Data In)
  • TDO (Test Data Out)
  • TMS (Test Mode Select)
  • TCK (Test Clock)
  • RST (Reset、オプション)
  • VCC (ターゲット電源)
  • GND


MSP-FETの14ピンコネクタを使用する場合、以下に示すピン配置となる。

  • ピン1 (JTAG信号ピン)
    TDO / TDI
    Test Data Out (テストデータ出力) または Test Data In (テストデータ入力) の信号線である。
    JTAGチェーン内でのデータの流れにより、このピンの役割が変わる。
    MSP430の場合、通常はTDOとして機能し、デバイスからデバッグツールへデータを送信する。

  • ピン2 (電源関連ピン)
    VCC TOOL (ツールからターゲットへの電源を供給する場合)
    MSP-FETからターゲット基板に電源を供給するためのピンである。
    ターゲット基板に独自の電源がない場合、このピンを通じてMSP-FETがターゲットマイコンに動作電圧を提供する。
    開発初期段階で、外部電源を用意せずにデバッグしたい場合に便利な機能である。

  • ピン3 (JTAG信号ピン)
    TDI/VPP
    Test Data In (テストデータ入力) または VPP (プログラミング電圧) の信号線である。
    通常のデバッグモードではTDIとして機能し、デバッグツールからデバイスへデータを送信する。
    VPPは特定の状況 (セキュリティヒューズのブロー等) で使用される高電圧である。

  • ピン4 (電源関連ピン)
    VCC TARGET (ターゲット電源の検出用)
    ターゲット基板の電源電圧を検出するためのピンである。
    ターゲット基板がバッテリーや外部電源で動作している場合、このピンをターゲットのVCCに接続する。
    MSP-FETはこのピンを通じてターゲットの電源電圧を監視し、出力する信号のレベルをターゲットの電圧に合わせて調整する。
    これを、VCC-sense機能 と呼ぶ。

    ※注意
    ピン2とピン4は同時に接続してはならない。

  • ピン5 (JTAG信号ピン)
    TMS
    Test Mode Select (テストモード選択) の信号線である。
    JTAGの状態遷移を制御するために使用される。
    この信号により、デバッグツールはターゲットデバイスを様々な動作モード (テストモード、プログラミングモード、実行モード等) に切り替えることができる。

  • ピン6 (未使用ピン)
    N/C

  • ピン7 (JTAG信号ピン)
    TCK
    Test Clock (テストクロック) の信号線である。
    JTAG通信の同期を取るためのクロック信号を提供する。

    他のJTAG信号 (TDI、TDO、TMS) は、このクロック信号に同期してデータを送受信する。

  • ピン8 (特殊機能ピン)
    TEST / VPP
    テスト信号 または プログラミング電圧のピンである。
    このピンは、多重化JTAGピンを持つMSP430マイコンでのみ使用される。
    通常の動作では、このピンをHIGHレベルに保持することにより、ポートピンとして多重化されているJTAGピンをJTAG機能として動作させる。

    全てのMSP430マイコンがこのピンを持っているわけではないため、使用するデバイスのデータシートで確認が必要となる。

  • ピン9 (電源関連ピン)
    GND

  • ピン10 (未使用ピン)
    N/C

  • ピン11 (特殊機能ピン)
    RST / NMI / SBWTDIO
    複数の機能を持つ重要なピンである。
    RSTはリセット信号、NMIは非マスカブル割り込み、SBWTDIOはSpy-Bi-Wire通信のデータ入出力を意味する。
    4線式JTAG通信を使用する場合でも、SBW (Spy-Bi-Wire) をサポートするデバイスでは、このピンの接続が必須となる。

    デバッグツールは、JTAGコマンドでターゲットをリセットできない場合、このピンを使用して物理的なリセットを行う。
    また、Spy-Bi-Wire通信では、このピンが双方向のデータ通信に使用される。

  • ピン12 (未使用ピン)
    N/C (予約済み)

  • ピン13 (未使用ピン)
    N/C

  • ピン14 (未使用ピン)
    N/C


※注意
MSP-FETとMSP-GANG、MSP-GANG430、MSP-PRGS430は同一の接続を使用する。
VCC TOOLピン(ピン2)とVCC TARGETピン(ピン4)は同時に接続してはならない。

ターゲット基板への電源供給方法には、2通りの方法がある。

  • MSP-FETから電源を供給する場合
    ピン2 (VCC TOOL) をターゲット基板のVCCに接続する。
    この場合、ピン4は未接続とする。

    この方法は、ターゲット基板に独自の電源がない場合やデバッグ時のみMSP-FETから電源を供給したい場合に使用する。

  • ターゲット基板の独自電源を使用する場合
    ピン4 (VCC TARGET) をターゲット基板のVCCに接続する。
    この場合、ピン2は未接続とする。

    MSP-FETは、VCC TARGETピンを通じてターゲット基板の電源電圧を検出し、出力信号のレベルをそれに応じて調整 (VCC-sense機能) する。

    この方法は、ターゲット基板がバッテリーや外部電源で動作している場合に使用する。
    VCC-sense機能により、MSP-FETとターゲット基板の電源間の競合を防ぐことができる。


柔軟性を持たせるために、ジャンパブロックを使用してピン2またはピン4のどちらかを選択できるように設計することが推奨される。
ただし、この柔軟性が不要な場合は、使用する電源供給方法に応じて直接配線しても構わない。

ターゲット基板の推奨回路構成

ターゲット基板のRST/NMIピンには、以下に示す回路構成を推奨する。
この構成はデバイスファミリーによって異なるため、使用するMSP430ファミリーのユーザーズガイドを参照すること。

  • 抵抗R1
    47[kΩ]のプルアップ抵抗をRST/NMIピンとVCC間に接続する。
  • コンデンサC1
    RST/NMIピンとGND間に接続する。
    一般的なデバイスの場合は、0.01[uF]

    SBW (Spy-Bi-Wire) をサポートするデバイスを4線式JTAGモードで使用する場合は、上限は2200[pF]


  • 電源デカップリングコンデンサ
    VCCとGND間にコンデンサC2 (10[uF]) と コンデンサC3 (0.1[uF]) を並列に接続する。
    これらのコンデンサは、電源ノイズを抑制し、安定した動作を保証するために重要である。


  • TESTピンへのプルダウン抵抗 (オプション)
    過度のノイズやESDが懸念されるアプリケーションでは、TESTピンに500[Ω]〜1[kΩ]のプルダウン抵抗を追加することができる。
    この抵抗は、ターゲットデバイスの適切なプログラミングを妨げることなく、ノイズ耐性を向上させる。


ターゲット構成ファイルの作成

Code Composer Studioでデバッグを行うには、ターゲット構成ファイルを作成する必要がある。

  1. [View]メニューバー - [Target Configurations]を選択して、Target Configurationsビューを表示する。
  2. Target Configurationsビュー内の[User Defined]を右クリックして、[New Target Configuration]を選択する。
  3. ファイル名を入力する。
    例えば、"MSP430_JTAG.ccxml"のように入力する。拡張子は.ccxmlとする。
  4. [Finish]ボタンを押下する。

  5. ターゲット構成エディタが開くので、以下に示す設定を行う。
    1. [Connection:]プルダウンから[Texas Instruments MSP430 USB1]を選択する。
    2. [Board or Device:]欄で、使用するMSP430デバイスを選択する。
      この時、検索ボックスを使用して型番を入力すると素早く見つけることができる。

  6. [Advanced]タブを開いて、デバッグインターフェースの詳細設定を行う。
    1. デバイス名の左側にある矢印をクリックして展開する。
    2. 表示されたデバイス項目をクリックして選択する。
    3. 右側の[Connection Properties]パネルで、[JTAG Mode]が[4-wire JTAG] または [Auto] に設定されていることを確認する。

  7. 設定が完了したら、[Save]ボタンを押下して保存する。

  8. [Test Connection]ボタンを押下して、MSP-FETとターゲットマイコンの接続を確認する。
  9. 接続が成功する時、"The JTAG IR Integrity scan-test has succeeded"のようなメッセージが表示される。
    もし接続に失敗する場合は、ハードウェア接続、電源供給、ターゲットマイコンの型番設定を確認する。


デバッグセッションの開始

ターゲット構成ファイルの作成後、デバッグセッションを開始する。

  1. Project Explorerでデバッグするプロジェクトを右クリックして、[Debug As] - [Code Composer Debug Session]を選択する。
  2. もし複数のターゲット構成が存在する場合、使用する構成ファイルの選択を求められる。
  3. 上記で作成した"MSP430_JTAG.ccxmlファイル"を選択して、[OK]ボタンを押下する。

  4. Code Composer Studioが自動的にプログラムをビルドして、ターゲットマイコンにロードする。
    デバッグパースペクティブに切り替わり、プログラムのエントリポイント (通常はmain関数) で一時停止する。

  5. デバッグツールバーまたはキーボードショートカットを使用して、プログラムの実行を制御できる。
    • [Resume] (F8キー)
      プログラムを続行する
    • [Suspend]
      プログラムの実行を一時停止する
    • [Terminate]
      デバッグセッションを終了する
    • [Step Into] (F5キー)
      次の命令をステップ実行する。
      関数呼び出しの場合は関数内部に入る
    • [Step Over] (F6キー)
      次の命令をステップ実行する。
      関数呼び出しの場合は関数全体を実行する。
    • [Step Return] (F7キー)
      現在の関数から戻るまで実行する。


ブレークポイントの設定

ブレークポイントを設定することにより、プログラムの特定の位置で実行を一時停止させることができる。

  1. ソースコードエディタで、ブレークポイントを設定したい行の行番号の左側(左マージン)をダブルクリックする。
  2. 青い丸のアイコンが表示され、ブレークポイントが設定される。
  3. または、設定したい行にカーソルを置いて、[Run]メニューバー - [Toggle Breakpoint]を選択する。
    もしくは、[Ctrl] + [Shift] + [B]キーを同時押下する。

  4. 設定されたブレークポイントは、[Breakpoints]ビューで確認および管理できる。
  5. [Window]メニューバー - [Show View] - [Breakpoints]を選択して表示する。

  6. ブレークポイントを削除するには、再度行番号の左側をダブルクリック、または、[Breakpoints]ビューで該当のブレークポイントを選択して削除する。


変数とレジスタの監視

デバッグ中に変数やレジスタの値を監視することができる。

  • [Variables]ビュー
    現在のスコープ内のローカル変数とグローバル変数の値を表示する。
    プログラムがブレークポイントで停止している時、このビューで変数の値を確認できる。
    変数名をダブルクリックすることで、値を変更することも可能である。

  • [Expressions]ビュー
    任意の式や変数を追加して監視することができる。
    [Window]メニューバー - [Show View] - [Expressions]を選択して表示する。
    [Add new expression]アイコンをクリックして、監視したい変数名や式を入力する。

  • [Registers]ビュー
    MSP430マイコンのCPUレジスタやペリフェラルレジスタの値を表示する。
    [Window]メニューバー - [Show View] - [Registers]を選択して表示する。
    レジスタグループを展開して、個々のレジスタの値を確認できる。

  • [Memory Browser]ビュー
    メモリの内容を16進数やASCII形式で表示する。
    [Window]メニューバー - [Show View] - [Memory Browser]を選択して表示する。
    メモリアドレスを入力して、該当領域の内容を確認できる。


デバッグセッションの終了

デバッグが完了したら、以下に示す手順でデバッグセッションを終了する。

  1. デバッグツールバーの[Terminate]ボタン (赤い四角のアイコン) を押下する。
    または、[Run]メニューバー - [Terminate]を選択する。
  2. Code Composer Studioのパースペクティブ (編集モード) に戻るには、右上の[CCS Edit]ボタンを押下する。
    または、[Window]メニューバー - [Perspective] - [Open Perspective] - [CCS Edit]を選択する。


SBWデバッグの方法

SBW (Spy-Bi-Wire) インターフェースを使用したデバッグセッションを開始する方法を以下に示す。
SBWは2線式のインターフェースであり、JTAGと比較してピン数を削減できるメリットがある。

ハードウェア接続

MSP-FETとターゲットマイコンをSBWインターフェースで接続する。

接続には、以下に示す信号線が必要である。

  • SBWTDIO (Spy-Bi-Wire Test Data Input/Output)
  • SBWTCK (Spy-Bi-Wire Test Clock)
  • VCC (ターゲット電源)
  • GND (グランド)


MSP-FETの14ピンコネクタを使用する場合、以下に示すピンを接続する。

  • ピン1 (Spy-Bi-Wire専用信号ピン)
    TDO/TDI
    Spy-Bi-Wire通信における最も重要なピンである。
    このピンは、リセット信号 (RST)、非マスカブル割り込み (NMI)、Spy-Bi-Wireデータ入出力 (SBWTDIO)という3つの機能を持つ。

    SBW通信では、このピンがMSP-FETとターゲットマイコン間の双方向データ通信に使用される。
    つまり、MSP-FETからターゲットへのコマンド送信とターゲットからMSP-FETへの応答受信の両方が、この1本のピンを通じて行われる。
    このため、このピンに接続される容量性負荷 (コンデンサやケーブルの寄生容量) は、通信品質に直接影響を与える。

    RST/NMI/SBWTDIOピンには、47[kΩ]のプルアップ抵抗 と コンデンサC1 (標準値1100[pF]、上限2200[pF]) を接続することが推奨される。
    プルアップ抵抗は、信号線を安定した状態に保つために必要となる。
    コンデンサは、ノイズ除去とリセット機能のために使用されるが、その容量値は慎重に選ぶ必要がある。
    容量が大きすぎると、SBWTDIOピンの信号の立ち上がり・立ち下がりが遅くなり、双方向通信に支障をきたす。

    最適値はSBW通信速度、ターゲットの電源電圧、基板設計等により、100[pF]〜2200[pF]の範囲で調整することが推奨されている。

  • ピン2 (電源関連ピン)
    VCC TOOL (ツールからターゲットへの電源を供給する場合)
    MSP-FETからターゲット基板に電源を供給するためのピンである。
    ターゲット基板に独自の電源がない場合、このピンを通じてMSP-FETがターゲットマイコンに動作電圧を提供する。
    開発初期段階で、外部電源を用意せずにデバッグしたい場合に便利な機能である。

  • ピン4 (電源関連ピン)
    VCC TARGET (ターゲット電源の検出用)
    ターゲット基板の電源電圧を検出するためのピンである。
    ターゲット基板がバッテリーや外部電源で動作している場合、このピンをターゲットのVCCに接続する。
    MSP-FETはこのピンを通じてターゲットの電源電圧を監視し、出力する信号のレベルをターゲットの電圧に合わせて調整する。
    これを、VCC-sense機能 と呼ぶ。

  • ピン7 (Spy-Bi-Wire専用信号ピン)
    TCK
    Spy-Bi-Wire通信におけるクロック信号線である。
    4線式JTAG通信ではこのピンはTCKとして機能するが、SBW通信ではSBWTCKとして機能する。
    このクロック信号に同期して、ピン1 (SBWTDIO) を通じてデータが送受信される。
    SBWTCKは、MSP-FETからターゲットマイコンへの単方向信号であり、通信のタイミングを制御する。

  • ピン8
    TEST/VPP

  • ピン9
    GND
    MSP-FETとターゲット基板の間で共通のグランド基準を確立する。
    デジタル信号の電圧レベルを正確に判定するには、送信側と受信側で同じグランド基準を共有する必要がある。


※注意
SBWの信号線の配置は、ターゲットマイコンのファミリーやパッケージによって異なる場合がある。
また、SBW接続では以下の点に注意する。

  • ターゲット基板の電源がオンになっていることを確認する。
  • SBWTDIOおよびSBWTCK信号線には、47[kΩ]のプルアップ抵抗が必要な場合がある。
  • 信号線の長さは、できるだけ短くする。
    これは、長い配線はノイズの影響を受けやすく、通信エラーの原因となるためである。


ターゲット構成ファイルの作成

SBWインターフェースを使用する場合も、ターゲット構成ファイルを作成する必要がある。

  1. [View]メニューバー - [Target Configurations]を選択して、Target Configurationsビューを表示する。
  2. Target Configurationsビュー内の[User Defined]を右クリックして、[New Target Configuration]を選択する。
  3. ファイル名を入力する。
    例えば、"MSP430_SBW.ccxml"のように入力する。
  4. [Finish]ボタンを押下する。

  5. ターゲット構成エディタが開くので、以下に示す設定を行う。
    1. [Connection:]プルダウンから[Texas Instruments MSP430 USB1]を選択する。
    2. [Board or Device:]欄で、使用するMSP430デバイスを選択する。

  6. [Advanced]タブを開いて、SBWインターフェースの設定を行う。
    1. デバイス名の左側にある矢印をクリックして展開する。
    2. 表示されたデバイス項目をクリックして選択する。
    3. 右側の[Connection Properties]パネルで、[JTAG Mode]を[2-wire Spy-Bi-Wire]に設定する。
    4. もし、[Auto]が選択されている場合、Code Composer Studioは自動的にインターフェースを検出して選択するが、明示的に[2-wire Spy-Bi-Wire]を指定することを推奨する。

  7. 設定が完了したら、[Save]ボタン または [Ctrl] + [S]キーを押下して保存する。

  8. [Test Connection]ボタンを押下して、MSP-FETとターゲットマイコンの接続を確認する。
  9. 接続が成功すると、"The JTAG IR Integrity scan-test has succeeded"のようなメッセージが表示される。
  10. もし接続に失敗する場合は、ハードウェア接続、電源供給、JTAG Mode設定、ターゲットマイコンの型番設定を確認する。


デバッグセッションの開始と操作

SBWインターフェースを使用したデバッグセッションの開始方法と操作方法は、JTAGデバッグと同様である。

  1. Project Explorerでデバッグしたいプロジェクトを右クリックして、[Debug As] - [Code Composer Debug Session]を選択する。
  2. 上記で作成した"MSP430_SBW.ccxml"構成ファイルを選択して、[OK]ボタンを押下する。
  3. プログラムがターゲットマイコンにロードされ、デバッグパースペクティブに切り替わる。
  4. JTAGデバッグと同様、ブレークポイントの設定、ステップ実行、変数の監視等のデバッグ操作を行うことができる。


SBWインターフェースは、JTAGインターフェースと比較して以下に示す特徴がある。

  • ピン数が少ないため、小型パッケージのデバイスに適している。
  • 配線が簡素化されるため、基板設計が容易になる。
  • 通信速度は、JTAGと比較してわずかに遅い場合があるが、通常のデバッグ作業では問題にならない。


デバッグ時のトラブルシューティング

接続エラーが発生する場合
  • MSP-FETとPCが正しくUSB接続されているか確認する。
  • ターゲットマイコンとMSP-FETの配線が正しいか確認する。
    特にVCC、GND、および信号線の接続を確認する。
  • ターゲット基板の電源が供給されているか確認する。
    MSP-FETは通常、ターゲットの電源電圧を検出する必要がある。
  • ターゲット構成ファイルで選択したデバイス型番が正しいか確認する。
  • JTAGまたはSBWのインターフェース設定が正しいか確認する。
  • MSP-FETのファームウェアが最新版にアップデートされているか確認する。
  • 他のデバッガや開発ツールがMSP-FETに接続していないか確認する。
    複数のツールが同時にアクセスするとエラーが発生する。


プログラムのロードに失敗する場合
  • ターゲットマイコンのフラッシュメモリが書き込み保護されていないか確認する。
  • プログラムサイズがターゲットマイコンのフラッシュメモリ容量を超えていないか確認する。
  • ターゲットマイコンがロックされている場合は、マスイレース (Mass Erase) を実行する。
    [Tools]メニューバー - [On-Chip Flash]を選択して、Flash Programmerツールを開く。
    [Erase]ボタン - [Entire Flash]を選択する。


デバッグ中にプログラムが停止しない場合
  • ブレークポイントが正しく設定されているか確認する。
  • 最適化オプションが有効になっている場合、コンパイラがコードを最適化してブレークポイントの位置が変わることがある。
    デバッグビルド構成を使用して、最適化を無効にすることを推奨する。
  • ウォッチドッグタイマ(WDT)が有効になっている場合、プログラムが定期的にリセットされる可能性がある。
    デバッグ時は、WDTを無効にするか、適切にクリアする。


変数の値が正しく表示されない場合
  • 最適化オプションが有効になっている場合、変数がレジスタに割り当てられるか、完全に削除される可能性がある。
  • デバッグビルド構成を使用して、最適化レベルを下げる。
  • プロジェクトのプロパティから、[Build] - [MSP430 Compiler] - [Optimization]を選択して、Optimization Levelを[Off] または [Debug(-Og)] に設定する。



MSP-FET

第2世代MSP-FETは、Code Composer Studio v7.0、IAR EW430 v7.1、IAR EWAR v8.10以降のIDEでサポートされている。
それ以前のIDEで使用する場合は、こちらのE2E投稿を参照すること。

第2世代MSP-FETと第1世代MSP-FETを区別する方法については、MSP-FETのユーザガイド(5.6.1節 - general features)を参照すること。

MSP-FETファームウェアのアップデート

MSP Flasherは、JTAGを介してMSP430およびMSP432マイコンをプログラミングするためのオープンソースのシェルベース (コマンドライン) インタフェースであり、一般的なプログラミング機能を提供する。
CCSやIARのようなIDEを使用せずに、バイナリファイルを直接メモリにダウンロードするために使用できる。
また、ファームウェアの抽出やJTAGアクセスの永久ロックにも使用できる。

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

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


MSP Flaserをインストールする。

chmod u+x MSPFlasher-1.3.20-linux-x64-installer.run
./MSPFlasher-<バージョン>-linux-x64-installer.run --prefix <MSP Flaserのインストールディレクトリ>    \
                                                  --installer-language ja                    \
                                                  --mode <gtk | xwindow | text | unattended>   # もし、gtkを選択して描画が崩れる場合は、xwindowまたはtextを指定する


MSP-FETのファームウェアをアップデートする。
-n NO_TARGETオプションを付加する場合、MSP FlaserはMSP-FETのファームウェアのみを更新するため、ターゲットマイコンへの接続は行わない。

# 通常のアップデート
./MSP430Flasher -n NO_TARGET

# 自動アップデートを行う場合
# -sオプションは、このユーザプロンプトを抑制するためのものである
# ファームウェアのバージョンとMSP Debug Stackのバージョンの間に不一致がある場合、ファームウェアのアップデートが自動的に行われる
./MSP430Flasher -n NO_TARGET -s


アップデートの実行中において、MSP FlaserがMSP-FETのファームウェアのバージョンとMSP Debug Stack (libmsp430.soまたはMSP430.dll) のバージョンの競合を検出した場合、
MSP Flaserにファームウェアをアップデートさせるようユーザに促す。

>> FETのファームウェアが古いです。
>> 更新しますか?(Y/N):


[Y]キーを入力する場合、MSP-FETのファームウェアが更新されて、ステータスレポートが表示される。
アップデートに成功した後、MSP Flasherルーチンの実行が継続される。

[N]キーを入力する場合、実行中のインスタンスを古いファームウェアで再開する。
TIでは、MSP-FETのファームウェアがMSP Debug Stackのバージョンと一致していない間は、MSP Flasherを使用してマイコンへの書き込みを行わないことを推奨している。

アップデート中にエラーが検出された場合、MSP Flaserはユーザにアップデートの再試行またはキャンセルを促す。
更新を繰り返す場合は、[R]キーを入力する。

[C]キーを入力する場合、実行中のインスタンスを古いファームウェアで再開する。