忍者ブログ
グラビアアイドルについて語るブログ。
[1] [2] [3] [4] [5] [6]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

少し前のエントリで「Linux から V850 のフラッシュ ROM に書き込む手段がない」と書いたところ、arms22 さんという方から、sp850es を移植したというコメントをいただきました。

その頃オリジナルの sp850esh8write のソースを読み始めたところだったのですが、移植されたとあっては、使わせていただくしかありません。
大変ありがたいご連絡をいただき、感謝しております。

ただし、INI ファイルを使うのも面倒だし、かといって毎回オプションを指定するのは更に面倒ですので、alias して使っています。
/usr/local/bin/sp850es -dev=3716 -port=/dev/ttyUSB0 -freq=5000 -bps=38400

ところで、ROM に書き込めなかったのが最大の難関だと思っていたのですが、それは開発環境の話で、実際にはそれ以上の難関がありまして・・・

ええっと、僕は電子回路の設計とか、まったくできないんです(泣)

ということですので、しばらくは LED や UART で遊ぶことになりそうです。
PR
先日ビルドしたV850クロス開発環境では、Interface 6月号の TOPPERS の記事(第6章)のサンプルで下記のコンパイルエラーが出ることが発覚したので、作り直しました。
$ make
/usr/local/v850/bin/v850-nec-elf-gcc -g -Wa,--gstabs -O2 -mv850e -mdisable-callt -I. -c led_c.c
cc1: invalid option `v850e'
cc1: invalid option `disable-callt'
make: *** [led_c.o] エラー 1

TOPPERS 的にはターゲットは v850-nec-elf よりも v850-elf の方が都合が良さそうなので、今回は --target=v850-elf でビルドしました。

■binutils のビルド
$ tar jxf binutils-2.17.tar.bz2
$ cd binutils-2.17
$ mkdir objs
$ cd objs
$ ../configure --target=v850-elf --prefix=/usr/local/v850
$ make
$ su
# make install

以下のビルドで必要ですので、/usr/local/v850/bin にパスを通しておきます。
$ export PATH=/usr/local/v850/bin:$PATH


■gcc, newlib のビルド
$ tar jxf gcc-4.1.2.tar.bz2 
$ tar zxf newlib-1.15.0.tar.gz
$ cp -r newlib-1.15.0/newlib newlib-1.15.0/libgloss gcc-4.1.2
$ cd gcc-4.1.2
$ mkdir objs
$ cd objs
$ ../configure --target=v850-elf --prefix=/usr/local/v850 --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-gxx-include-dir=/usr/local/v850/v850-elf/include
$ make
$ su
# make install


■gdb のビルド
$ tar jxf gdb-6.6.tar.bz2 
$ cd gdb-6.6
$ mkdir objs
$ cd objs
$ ../configure --target=v850-elf --prefix=/usr/local/v850
$ make
$ su
# make install


今回は、Interface 5月号付属の V850 基板のフラッシュ ROM に Linux から書き込む試みです。まず結論を書くと、まだ成功していません。

■wine で FPL

最初に考えたのは、CD-ROM 収録の開発ツールに含まれる FPL を、wine から起動することでした。
$ wine FPL.exe

Device Setup ダイアログで、Port の候補が出てきません。/dev/ttyUSB0 が、wine から起動された FPL 上で COM ポートとして認識されていないということでしょうか。

wine のマニュアルを見て、次のように COM1 を追加してみました。
$ ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

また、COM ポートの話とは別に、FPL.INI をシステムフォルダにコピーする必要もあるようです。
$ cp FPL.ini ~/.wine/drive_c/windows

再度 FPL を起動してみますが、相変わらず Device Setup で COM ポートの設定ができません。Interface 5月号の「開発ツールのインストールと使い方」のうち、「●仮想シリアル・ポートを設定する」に相当する部分が wine で未設定であることが原因ではないかと考えています。

現時点ではここまでです。何とか使えると楽なんですが。
今回は Interface 5月号付属の V850 基板のためのクロス開発環境の準備です。

ビルド環境はFC6で、標準のgccのバージョンは4.1.1ですので、以下のビルドには compat-gcc-34, compat-gcc-34-c++ が必要でした。

以下では /usr/local/v850 を開発環境のインストール先としています。

■binutils のビルド
$ tar jxf binutils-2.13.2.tar.bz2
$ cd binutils-2.13.2
$ mkdir objs
$ cd objs
$ CC=gcc34 CXX=g++34 ../configure --target=v850-nec-elf --prefix=/usr/local/v850
$ make
$ su
# make install

以下のビルドで必要ですので、/usr/local/v850/bin にパスを通しておきます。
$ export PATH=/usr/local/v850/bin:$PATH


■gcc, newlib のビルド
$ tar jxf gcc-3.2.3.tar.bz2
$ tar zxf newlib-1.13.0.tar.gz
$ cp -r newlib-1.13.0/newlib newlib-1.13.0/libgloss gcc-3.2.3
$ cd gcc-3.2.3
$ mkdir objs
$ cd objs
$ CC=gcc34 CXX=g++34 ../configure --target=v850-nec-elf --prefix=/usr/local/v850 --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-newlib --with-gxx-include-dir=/usr/local/v850/v850-nec-elf/include
$ make
$ su
# make install


■gdb のビルド
$ tar jxf gdb-6.6.tar.bz2
$ cd gdb-6.6
$ mkdir objs
$ cd objs
$ ../configure --target=v850-nec-elf --prefix=/usr/local/v850
$ make
$ su
# make install


■動作確認

開発環境を構築したものの、あいにく Linux からフラッシュROMへの書き込みをどうするかが未解決なので(爆)、gdb シミュレータでの動作確認とします。

お約束の "Hello, world!" をコンパイルして実行しました。
$ /usr/local/v850/bin/v850-nec-elf-gcc hello.c
$ /usr/local/v850/bin/v850-nec-elf-run a.out
Hello, world!

無事動作しました。

気になったのが a.out のサイズ。177235バイトもありました。strip してから実機に転送する習慣が必要ですね(35328バイトになりました)。また、printf ではなく puts を使うと約半分のサイズになりました。

組み込みの場合、リッチなターゲットでなければ、標準ライブラリは極力使わない、使うとしても必要最低限にするという開発方針でないと駄目なんでしょうね。

■参考リンク
組み込み向けクロス開発環境の構築
組込み技術者向け「初めてのC言語」
今回は Interface 5月号付属の V850 基板と Linux PC との間のシリアル通信の確認です。Linux は FC6、カーネルは 2.6.19-1 です。

■デバイスの確認

USBケーブルで基板とPCを接続し、dmesg でデバイスを調べます。僕の環境では /dev/ttyUSB0 でした。
$ dmesg | grep usb
■minicom の設定
root で minicom の設定を行います。
# minicom -s
シリアルポートの設定を選択し、デバイスを /dev/ttyUSB0、速度を115200に変更した後、「"dfl"に設定を保存」を選びます。(/etc/minirc.dfl に保存されます)

■minicom 起動

まず、使用するユーザを uucp グループに追加します(追加しないとデバイスにアクセスできません)。ログインし直して minicom を起動すると、出荷検査用プログラムの出力が表示されます。

$ minicom
minicom へようこそ 2.1

オプション: History Buffer, F-key Macros, Search History Buffer, I18n
コンパイルされた日時は: Jul 26 2006, 06:38:09.

CTRL-A Z を押すと、説明画面になります。

0679 0679 0677 0679 0681 0679 0679
0676 0676 0678 0677 0679 0678 0677 0680 0679 0680 0678 0680
0678 0676 0679 0678 0677 0677 0677 0679 0677 0680 0678 0680
0678 0678 0677 0677 0677 0679 0679 0677 0677 0677 0677 0677
0679 0677 0678 0677 0679 0678 0679 0678 0679 0678 0677 0678
0676 0679 0678 0677 0677 0677 0679 0677 0679 0678 0676 0677
0676 0677 0678 0678 0679 0677 0677 0678 0678 0679 0680 0678
0677 0678 0678 0678 0679 0679 0678 0679 0677 0680 0680 0678
0677


忍者ブログ [PR]
ブログ内検索
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新コメント
[07/07 tiffany jewelry uk]
[09/17 車載モニター・阿蘇テック]
[08/30 愛]
[06/12 シモネッタ]
[06/11 arms22]
最新トラックバック
フリーエリア
あわせて読みたい
    Firefox 2 無料ダウンロード
    バーコード
    プロフィール
    名前:
    シモネッタ
    性別:
    非公開
    カウンター
    アクセス解析