FRK-FM3 (4) LED を点滅させてみる ― 2012年04月28日 09時47分06秒
やっぱり最初は LED の点滅だ。
使用するプロジェクトは以前作成したものでよいだろう。
というわけで富士通の template の main.c を以下のように変更する。 そうそう、もう一つ変更がある Options for Target の設定の中で Linker タブの Do not use Standard System Startup Files のチェックを外すこと。
そして FUJITSU USB DIRECT Programmer で書き込み。
書き込み時間を計測してみる。
65.08秒(ストップウォッチ)
遅すぎる。何か設定があるのだろうか?
JPP1 を外して Reset (JPP2)
LED が点滅している。
とりあえず問題なかったということか?
環境:Keil µVision3 + GCC
使用するプロジェクトは以前作成したものでよいだろう。
というわけで富士通の template の main.c を以下のように変更する。 そうそう、もう一つ変更がある Options for Target の設定の中で Linker タブの Do not use Standard System Startup Files のチェックを外すこと。
そして FUJITSU USB DIRECT Programmer で書き込み。
書き込み時間を計測してみる。
65.08秒(ストップウォッチ)
遅すぎる。何か設定があるのだろうか?
JPP1 を外して Reset (JPP2)
LED が点滅している。
とりあえず問題なかったということか?
環境:Keil µVision3 + GCC
FRK-FM3 (3) Raisonance Ride7 & ARM Tools の準備 (2) ― 2012年04月22日 21時05分56秒
この辺でひとまずコンパイルしてみよう。
まず、リンカースクリプト。
リンカースクリプトは4つに分かれている。これは Ride7 のスクリプトにしたがって一部の値を変更するためだ。
MB9B61x_1000K_128K_FLASH.ld
MB9B61x_1000K_128K_DEF.ld
MB9B61x_COMMON.ld
sections_FLASH.ld
これは Raisonance オリジナルと同じなので省略。
これらのリンカースクリプトと、先日作成した crt0_MB9B61x.s を富士通のサンプルプログラムに組み込んでコンパイルしてみる。
特に問題は無いようだ。
残っているのは ARM.config と GNUtools.js の修正。
環境:Ride7 version 7.30.10.0169
RKit-ARM version 1.30.10.0356
まず、リンカースクリプト。
リンカースクリプトは4つに分かれている。これは Ride7 のスクリプトにしたがって一部の値を変更するためだ。
MB9B61x_1000K_128K_FLASH.ld
MB9B61x_1000K_128K_DEF.ld
MB9B61x_COMMON.ld
sections_FLASH.ld
これは Raisonance オリジナルと同じなので省略。
これらのリンカースクリプトと、先日作成した crt0_MB9B61x.s を富士通のサンプルプログラムに組み込んでコンパイルしてみる。
特に問題は無いようだ。
残っているのは ARM.config と GNUtools.js の修正。
環境:Ride7 version 7.30.10.0169
RKit-ARM version 1.30.10.0356
外国為替取引終了間際 ― 2012年04月22日 07時05分08秒
FRK-FM3 (3) Raisonance Ride7 & ARM Tools の準備 (1) ― 2012年04月21日 14時24分02秒
Raisonance の Ride7 & RKit-ARM に MB9BF618T を追加してみよう。
さて、まずはヘッダーファイルをコピー
system_mb9bf61x.h mb9b610t.h どこにコピーするかというと、ここ。
Raisonance\Ride\lib\ARM\include
そのつど用意してもよいがここに入れておくとパスの指定をしなくてよいもので...
次に、新規作成するもの
●crt0_MB9B61x.s
これは crt0_LPC17x.s をベースにして作成する。
簡単にできるがつまづくのはいつもここ。
●MB9BF618T.reg
レジストリデータ、書き終えたら実行する。
もちろんレジストリエディタを使って直接入力してもよい。
●MB9BF618T.sim
Simulator data、必要な項目のみ記述する。
●HFARM.XML に MB9BF618T を追加
SubFamily を追加し、そこに MB9BF618T を登録する。
●GNUtools.js と ARM.config については後日検討しよう。
今現在私が持っている ARM は LPC2388、STM32F103VB LPC1114/301 と FRK-FM3 (予定)だけなので当面この環境も継続してみる。
しかし、こんな事をしなくても富士通をサポートするというアナウンスが出ているので、次の次のバージョンあたりでは MB9BFx も正式にサポートされているだろう。
そうそう、私が使っているフリーのバージョン(下記の環境)はダウンロードメニューからなくなっていた。
環境:Ride7 version 7.30.10.0169
RKit-ARM version 1.30.10.0356
さて、まずはヘッダーファイルをコピー
system_mb9bf61x.h mb9b610t.h どこにコピーするかというと、ここ。
Raisonance\Ride\lib\ARM\include
そのつど用意してもよいがここに入れておくとパスの指定をしなくてよいもので...
次に、新規作成するもの
●crt0_MB9B61x.s
これは crt0_LPC17x.s をベースにして作成する。
簡単にできるがつまづくのはいつもここ。
●MB9BF618T.reg
レジストリデータ、書き終えたら実行する。
もちろんレジストリエディタを使って直接入力してもよい。
●MB9BF618T.sim
Simulator data、必要な項目のみ記述する。
●HFARM.XML に MB9BF618T を追加
SubFamily を追加し、そこに MB9BF618T を登録する。
●GNUtools.js と ARM.config については後日検討しよう。
今現在私が持っている ARM は LPC2388、STM32F103VB LPC1114/301 と FRK-FM3 (予定)だけなので当面この環境も継続してみる。
しかし、こんな事をしなくても富士通をサポートするというアナウンスが出ているので、次の次のバージョンあたりでは MB9BFx も正式にサポートされているだろう。
そうそう、私が使っているフリーのバージョン(下記の環境)はダウンロードメニューからなくなっていた。
環境:Ride7 version 7.30.10.0169
RKit-ARM version 1.30.10.0356
フリーの ARM 開発環境 ― 2012年04月14日 07時46分19秒
フリーの ARM 開発環境の選択肢が少なくなってきた。
私が知っているのは以下のとおりだが µVision はstartup と リンカースクリプトを自前で用意しなければならないし、Ride7 はフリーで使えなくなったし、CoIDE は Cortex-M0 and M3 のみだし、TrueSTUDIO と CodeBench はまだ触っていないが、それ以外のものは最近全く更新されていない。
といったところだろうか。Kpit のようにすぐに使える環境でないのが一番頭の痛いところだ。
候補として、
µVision は環境の変更ができないのが難点だ、一方、Ride7 はスクリプトの変更でいかようにもなるがその分手間がかかる。
Fujitsu お勧めの環境は?と調べてみると
Setup of FM3 GNU tool chain with Eclipse
Sourcery CodeBench Support for Fujitsu FM3
ヨーロッパ富士通が YAGARTO で日本富士通が Sourcery ということなのだろうか?
私が知っているのは以下のとおりだが µVision はstartup と リンカースクリプトを自前で用意しなければならないし、Ride7 はフリーで使えなくなったし、CoIDE は Cortex-M0 and M3 のみだし、TrueSTUDIO と CodeBench はまだ触っていないが、それ以外のものは最近全く更新されていない。
といったところだろうか。Kpit のようにすぐに使える環境でないのが一番頭の痛いところだ。
Keil µVision + GCC Supported processors:ARM7/ARM9/Cortex-M0-M4 Raisonance Ride7 + RKit-ARM Supported processors:ARM7/ARM9/Cortex-M0-M4 CooCox CoIDE Supported processors:Cortex-M0 and M3 Atollic TrueSTUDIO Lite Supported processors:ARM7/ARM9/Cortex-M0-M4 Mentor Graphics Sourcery CodeBench Lite Supported processors:ARM7/ARM9/Cortex-M0-M4 Amontec sdk4arm Supported processors:ARM7 / ARM9 BiPOM ARM Development System Supported processors:ARM7 Anglia IDEaliST Supported processors:STR7/STR9/STM32という訳で手を加えなければならないならどれか一つにしようと考えている。
候補として、
Keil µVision Raisonance Ride7を考えている。
µVision は環境の変更ができないのが難点だ、一方、Ride7 はスクリプトの変更でいかようにもなるがその分手間がかかる。
Fujitsu お勧めの環境は?と調べてみると
Setup of FM3 GNU tool chain with Eclipse
Sourcery CodeBench Support for Fujitsu FM3
ヨーロッパ富士通が YAGARTO で日本富士通が Sourcery ということなのだろうか?
FRK-FM3 (2) Keil µVision3 + GCC の準備 (4) ― 2012年04月09日 22時49分16秒
今回はFRK-FM3 (2) Keil µVision3 + GCC の準備 (1)で作成した startup を新規プロジェクト作成時にプロジェクトに読み込むようにしてみる。
RealView を使う場合はすでに C:\Keil\ARM\Startup\Fujitsu\MB9BF610 の中に startup_mb9bf61x.s があるので問題ない。
一方 GNU-Tool を使う場合は先日作成した startup_mb9bf61x.s を C:\Keil\ARM\GNU\Startup\Fujitsu\MB9BF610 の中にコピーする。
この情報はもちろん DeviceDatabase の中に記述してある。
SFILE という項目名がそれで MB9BF618T の場合
SFILE="Startup\Fujitsu\MB9BF610\startup_mb9bf61x.s"
と書かれている。
RealView では C:\Keil\ARM\
GNU-Tool では C:\Keil\ARM\GNU\ が基準ディレクトリという事になる。
もう一つよく使うのはフラッシュライタの設定で、項目名は FLASH
FLASH="C:\Program Files\Fujitsu\FUJITSU USB DIRECT Programmer\flash.exe"()
Arguments は使えないようなのでブランクにしておこう。
環境:Keil µVision3 + GCC
参照:
Device Database Parameters (デバイスデータベースのパラメータ)
Customize or Add Devices (カスタムデバイスと新規デバイス)
Flash Download Configuration (フラッシュメニューの設定)
Key Sequence for Tool Parameters (ツールパラメータ用キーシーケンス)
RealView を使う場合はすでに C:\Keil\ARM\Startup\Fujitsu\MB9BF610 の中に startup_mb9bf61x.s があるので問題ない。
一方 GNU-Tool を使う場合は先日作成した startup_mb9bf61x.s を C:\Keil\ARM\GNU\Startup\Fujitsu\MB9BF610 の中にコピーする。
この情報はもちろん DeviceDatabase の中に記述してある。
SFILE という項目名がそれで MB9BF618T の場合
SFILE="Startup\Fujitsu\MB9BF610\startup_mb9bf61x.s"
と書かれている。
RealView では C:\Keil\ARM\
GNU-Tool では C:\Keil\ARM\GNU\ が基準ディレクトリという事になる。
もう一つよく使うのはフラッシュライタの設定で、項目名は FLASH
FLASH="C:\Program Files\Fujitsu\FUJITSU USB DIRECT Programmer\flash.exe"()
Arguments は使えないようなのでブランクにしておこう。
環境:Keil µVision3 + GCC
参照:
Device Database Parameters (デバイスデータベースのパラメータ)
Customize or Add Devices (カスタムデバイスと新規デバイス)
Flash Download Configuration (フラッシュメニューの設定)
Key Sequence for Tool Parameters (ツールパラメータ用キーシーケンス)
FRK-FM3 (2) Keil µVision3 + GCC の準備 (3) ― 2012年03月24日 09時36分58秒
私の記憶によれば startup.s からライブラリを呼び出し、ライブラリの中でスタックポインタの設定、RAMの初期化などを行い、そこから main() を呼び出す。という手順だったはずだ。
ところが __libc_init_array() から _init() を呼び出したが見つからないというエラーで困っているわけだ。このあたりの詳細は知らないので別の方法を考える事にする。
しかし、以前はコンパイルが通っていたのになぜこんな事になってしまったの?
別の方法とは、 startup.s の中で RAM の初期化を行い、直接 main を呼び出すやり方。
いまいちすっきりしないがここはこれで逃げておこう。
もしかするとダミーの _init() 追加でもいけるのか?
環境:Keil µVision3 + GCC
ところが __libc_init_array() から _init() を呼び出したが見つからないというエラーで困っているわけだ。このあたりの詳細は知らないので別の方法を考える事にする。
しかし、以前はコンパイルが通っていたのになぜこんな事になってしまったの?
別の方法とは、 startup.s の中で RAM の初期化を行い、直接 main を呼び出すやり方。
いまいちすっきりしないがここはこれで逃げておこう。
もしかするとダミーの _init() 追加でもいけるのか?
環境:Keil µVision3 + GCC
FRK-FM3 (2) Keil µVision3 + GCC の準備 (2) ― 2012年03月04日 19時34分43秒
さて、project を作成してコンパイルしてみよう。
プロジェクト名は mb9bf61xt_template オリジナルのままでよいだろう。
いつものようにデバイスを選択して(MB9BF618T)プロジェクトにファイルを追加する。
追加するファイルは
続いて CCタブ、注意する点は Include Paths に
同様にアセンブラでも CMSIS ディレクトリを Include Paths に含める。
最後はリンカーの設定
そしてコンパイル。
あれ、エラーが出てリンクできない。
同じエラーだ。
はて...
なぜ??
環境:Keil µVision3 + GCC
プロジェクト名は mb9bf61xt_template オリジナルのままでよいだろう。
いつものようにデバイスを選択して(MB9BF618T)プロジェクトにファイルを追加する。
追加するファイルは
startup_mb9bf61x.s main.c system_mb9bf61x.c次に Options for Target の設定、先ずは出力ディレクトリを指定する。
続いて CCタブ、注意する点は Include Paths に
C:/Keil/ARM/CMSIS/Include/を追加する事、 µVision4 では必要ないが µVision3 には必要だ。
同様にアセンブラでも CMSIS ディレクトリを Include Paths に含める。
最後はリンカーの設定
そしてコンパイル。
あれ、エラーが出てリンクできない。
Build target 'MB9BF618T_Release' compiling system_mb9bf61x.c... compiling main.c... ../source/main.c(44): warning: return type of 'main' is not 'int' assembling startup_mb9bf61x.s... linking... c:/program files/raisonance/ride/arm-gcc/bin/../lib/gcc/arm-none-eabi/4.5.1/../../../../arm-none-eabi/lib/thumb2\libc.a(lib_a-init.o): In function `__libc_init_array': init.c:(.text+0x38): undefined reference to `_init' collect2: ld returned 1 exit status Target not createdそれではと 以前コンパイル動作確認済みのプロジェクト(LPC1114用)をコンパイルしてみる。
同じエラーだ。
はて...
なぜ??
環境:Keil µVision3 + GCC
FRK-FM3 (2) Keil µVision3 + GCC の準備 (1) ― 2012年03月01日 22時24分16秒
さっそく準備を始めよう。
① keil の最新版 MDK-ARM V4.23 を手に入れる。
解凍して必要な物を手に入れるためだ。
必要なのは
②念のため現在インストールしてある環境の上記ディレクトリとファイルのバックアップを取っておく。
MDK-ARM V4.23 をそのまま使う場合はこのような手続きは必要ない。なぜこのような事をやるのかというと、 µVision4 が使いにくいからだ。
③①のディレクトリとファイルを現在使っている環境にコピーする。
ただし、私のように µVision3 を使っている場合は UV4.cdb を UV3.cdb にリネームしなければならない。ちなみに UV4.cdb は device databases file の事でコピーしたディレクトリは、この device database に関係するものだ。
④確認のため富士通のサンプルをコンパイルしてみよう。
うまくいかなければどこかに間違いがあるはずだ。
ここまでは問題なく進むだろう。手間がかかるのはこれからだ。
⑤startup を作成する。これは富士通のサンプルを修正して使うことにしよう。ファイル名も同じ startup_mb9bf61x.s でいいだろう。
⑥リンカースクリプト、ファイル名は ldscript_rom_gnu.ld にしておこう。
今日のところはここまでにしておく。
もちろん、gcc での確認はまだ行っていない。
① keil の最新版 MDK-ARM V4.23 を手に入れる。
解凍して必要な物を手に入れるためだ。
必要なのは
Keil\ARM\INC の中の全て Keil\ARM\CMSIS の中の全て Keil\ARM\Startup の中の全て Keil\UV4\UV4.cdb必要ないものもあるが細かな作業を省くため
②念のため現在インストールしてある環境の上記ディレクトリとファイルのバックアップを取っておく。
MDK-ARM V4.23 をそのまま使う場合はこのような手続きは必要ない。なぜこのような事をやるのかというと、 µVision4 が使いにくいからだ。
③①のディレクトリとファイルを現在使っている環境にコピーする。
ただし、私のように µVision3 を使っている場合は UV4.cdb を UV3.cdb にリネームしなければならない。ちなみに UV4.cdb は device databases file の事でコピーしたディレクトリは、この device database に関係するものだ。
④確認のため富士通のサンプルをコンパイルしてみよう。
うまくいかなければどこかに間違いがあるはずだ。
ここまでは問題なく進むだろう。手間がかかるのはこれからだ。
⑤startup を作成する。これは富士通のサンプルを修正して使うことにしよう。ファイル名も同じ startup_mb9bf61x.s でいいだろう。
⑥リンカースクリプト、ファイル名は ldscript_rom_gnu.ld にしておこう。
今日のところはここまでにしておく。
もちろん、gcc での確認はまだ行っていない。
FRK-FM3 (1) Interface 6月号付属基板 ― 2012年02月26日 08時49分42秒
ずいぶん間が空いてしまった。
ブログは書き続けていたが、どれも半端になってしまい今だにアップできないでいる。
さて、今年もCQ出版社から付属基板が出るが今回は富士通のFM3だ。
スペックは
開発環境は IAR と KEIL がサポートしている。サンプルプログラムがあったので見てみると、他社で見かける CMSIS は採用して無いようだ。ライブラリは簡単なものがあるが MB9BF51xT 用なので修正が必要かもしれない。
FLASH Programmer はシリアル接続の FLASH MCU Programmer と USB 接続の FLASH USB Direct Programmer が用意してある。
先ずは、µVision + GNU C で環境を作ってみよう。
Header File はこれでよいかな。
参照:富士通FM3ファミリ
ブログは書き続けていたが、どれも半端になってしまい今だにアップできないでいる。
さて、今年もCQ出版社から付属基板が出るが今回は富士通のFM3だ。
スペックは
製品名 MB9BF618T CPUコア ARM社製Cortex-M3 Flash/RAM 1MB/128KB Ether 2 USB 2 動作周波数 144MHz パッケージ LQFP-176国産メーカのARMなので手に入れてみようと思っている。
開発環境は IAR と KEIL がサポートしている。サンプルプログラムがあったので見てみると、他社で見かける CMSIS は採用して無いようだ。ライブラリは簡単なものがあるが MB9BF51xT 用なので修正が必要かもしれない。
FLASH Programmer はシリアル接続の FLASH MCU Programmer と USB 接続の FLASH USB Direct Programmer が用意してある。
先ずは、µVision + GNU C で環境を作ってみよう。
Header File はこれでよいかな。
参照:富士通FM3ファミリ











最近のコメント