CQ EVカート開発環境をCS+からGCCに移行した話
こんばんは。k-abeです。
私、技術書1でも書いていますがCQ出版社より販売されているEVカート改造し、組込みソフトウェアのスキルアップを考えています。
デフォルトのEVカートのソフトウェア開発環境はルネサスエレクトロニクス社のCS+で、ソースコード自動生成ツールApplilet2 for V850ES/Fx3を使っています(制御マイコンはV850ES/FG3)。
今回、CS+からGCCに開発環境を移行できたので備忘録として残しておこうと思います。
※何故、CS+からGCCに開発環境を移行した背景・理由は次の資料8, 11スライド目を見ていただければと思います。
開発環境は次のツールをインストールします。
MSYS2, make
make
V850ツールチェイン
ツールをインストールしたホストPCの条件
- Windows 8.1 64bit (多分Windows10でも大丈夫だと思います)
MSYS2, makeのインストール
MSYS2のインストール
次のページからmsys2-x86_64-20200903.exeをダウンロード・実行します。 www.msys2.org
↑のリンク先の手順通りにインストール・パッケージの更新を実行します。
makeのインストール
パッケージ更新が終了したらmakeをインストールします。
下記コマンドを実行します。
インストールするか?と聞かれるのでyを入力します。
$ pacman -S make
resolving dependencies...
looking for conflicting packages...
Packages (1) make-4.3-1
Total Download Size: 0.45 MiB
Total Installed Size: 1.48 MiB
:: Proceed with installation? [Y/n] y
:: Retrieving packages...
インストールが始まります。
make-4.3-1-x86_64 456.7 KiB 541 KiB/s 00:01 [#####################] 100%
(1/1) checking keys in keyring [#####################] 100%
(1/1) checking package integrity [#####################] 100%
(1/1) loading package files [#####################] 100%
(1/1) checking for file conflicts [#####################] 100%
(1/1) checking available disk space [#####################] 100%
:: Processing package changes...
(1/1) installing make [#####################] 100%
:: Running post-transaction hooks...
(1/1) Updating the info directory file...
インストールが終わったらmakeがインストールできているかバージョン表示で確認してみます。
$ make -ver
GNU Make 4.3
Built for x86_64-pc-msys
Copyright (C) 1988-2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
make 4.3がインストールできました。
V850ツールチェインのインストール
次のページからGNUV850 v14.01 Windows Toolchain (ELF)をダウンロードします。
※ダウンロードするためにはユーザ登録が必要です。
https://gcc-renesas.com/ja/v850/v850-download-toolchains/
ダウンロードしたインストーラを実行します。すべてインストーラのデフォルト設定のままインストールを進めます。
この画面になったら登録メールアドレス、アクティベーションコードを入力します。
アクティベーションコードは次のメニューから確認できます。
ツールチェインをダウンロードしたサイトに移動し、GNU Tools -> ダッシュボード を選択します。
Your legacy*** のactivation codeを確認します(図の点線枠内部分)。
確認したアクティベーションコードを入力し、Nextボタンを押下します。
Next
Yes
Next
このままNext
Next
Next
インストールが開始される。
インストール中...
Next
Finishでインストール完了。
このままではコンパイルできないことがわかったので以下の設定を行う。
環境変数を開く。
ユーザー環境変数Pathにツールチェイン実行ファイルのパスを追加する。
ツールチェイン実行ファイルのパス:C:\Program Files (x86)\KPIT\GNUV850v14.01-ELF\v850-elf\binユーザー環境変数に下記を追加する。
MSYSを終了し、サインアウト→サインインする。その後、MSYSを起動し(スタートメニューからMSYS2 64bit -> MSYS2 MSYSのバッチファイルを選択)、gccのバージョンを確認する。
$ v850-elf-gcc -v
Using built-in specs.
COLLECT_GCC=c:\Program Files (x86)\KPIT\GNUV850v14.01-ELF\v850-elf\bin\v850-elf-gcc.exe
COLLECT_LTO_WRAPPER=c:/program\ files\ (x86)/kpit/gnuv850v14.01-elf/v850-elf/bin/../libexec/gcc/v850-elf/4.9-GNUV850_v14.01/lto-wrapper.exe
Target: v850-elf
Configured with: /home/kpit/fsfsrc/elf-v14.01-src-v850/gcc-4.9.2/configure --disable-shared --build=i686-pc-linux-gnu --host=i386-pc-mingw32msvc --enable-languages=c,c++ --target=v850-elf --with-newlib --with-gmp=/home/vinayk/utilities/mingw_gmp_mpfr/prefix/ --with-mpfr=/home/vinayk/utilities/mingw_gmp_mpfr/prefix/ --with-mpc=/home/vinayk/utilities/mingw_gmp_mpfr/prefix/ --prefix=/usr/share//mingwgnuv850_v14.01_elf-1 --disable-libstdcxx-pch --with-pkgversion=GCC_Build_2.01
Thread model: single
gcc version 4.9-GNUV850_v14.01 (GCC_Build_2.01)
gccのバージョンを確認できました。
makeの動作確認
git hubからソースコードを取得する。
Codeボタン -> Download ZIPを選択し、ソースコードをダウンロードする。
※もちろん、gitクライアントから取得してもOK。
取得したファイルをC:\msys64\home\ユーザ名 などに解凍する。
解凍したディレクトリ(Makefileがあるディレクトリ)に移動する。
$ cd cq-ev-kart-gcc/
makeを実行する。
$ make
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. start.S
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. main.c
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. interrupt_vector.S
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. interrupt.S
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. nop_interrupt.c
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. clock.c
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. system_init.c
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. port.c
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. e1_debug_memory_alloc.S
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. timer.c
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. ad.c
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. motor.c
v850-elf-gcc -c -mv850e -mdisable-callt -g -Wall -O2 -I. serial.c
v850-elf-gcc -mv850e -mdisable-callt -g -Wall -O2 -I. -nostartfiles -lgcc -lc -msoft-float -T v850fg3.ld -o cq-ev-kart start.o main.o interrupt_vector.o interrupt.o nop_interrupt.o clock.o system_init.o port.o e1_debug_memory_alloc.o timer.o ad.o motor.o serial.o
v850-elf-nm -n cq-ev-kart > cq-ev-kart.syms
v850-elf-objcopy -O srec -S cq-ev-kart cq-ev-kart.srec
オブジェクトファイル(*.o)、ELF形式のファイルcq-ev-kart、モトローラSレコード形式の書き込みファイル(cq-ev-kart.srec)などができる。
make cleanを実行でオブジェクトファイルを削除できる。
$ make clean
rm -f *.o
rm -f cq-ev-kart cq-ev-kart.syms cq-ev-kart.srec
cq-ev-kart.srecをフラッシュプログラマで書き込み、CQ EVカートのモータを回すことができた。
もっと簡単に環境構築するには???
今回はWindows+MSYSにツールチェインをインストールしました。
インストールした後に発見したのですが今回インストールしたツールチェインのコンテナがありました。
https://hub.docker.com/r/mikoto2000/v850-toolchain
上記コンテナはLinuxで動かすようですが、もしLinuxかWindows10にWSLを構築済みであればこちらのコンテナを試してみるのに良いかもしれません。
今回はこれで終わりです。読んでいただきありがとうございました。