2023年3月
      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  

カテゴリー

ブログパーツ

無料ブログはココログ

« TrueSTUDIOからEclipseへ乗り換える(その2) | トップページ | TrueSTUDIOからEclipseへ乗り換える(拾遺) »

2012年7月13日 (金)

TrueSTUDIOからEclipseへ乗り換える(その3)

今回はsprintfとsscanfを使えるようにしました。これが使えると変数の値を文字列にしたり、また文字列を数値にしたりできるので、TeraTernなどで情報を表示したり、数値を入力したりするインターフェイスが簡単に作れます。

例によってこちらのブログを参考に、ダウンロードしたnewlibのsyscalls.cを改造しました。
主な改造内容は、一文字出力と思われるputch()と一文字入力と思われるgetch()を追加しただけです。これらは(たぶん)printfやscanfで標準入出力とやり取りする部分だと思います。今回はこれらは使いませんので、putch()はなにもせずにリターンするだけ、getch()はリターンコード(0x0d)を返すだけになっています。
今回はヘッダファイルなしで使えるようにしました。実装は改造したsyscalls.cをプロジェクトのsrcフォルダにコピーするだけでOKでした。(改造したsyscalls.cはこの投稿の最後の「乗り換えガイドV2」にあります)

ここまでは難なく進みましたが、シェーキーのプロジェクトは相変わらずおかしな動きをしています。そもそもボーレートが明らかにおかしい。設定を変えても思ったようにかわりません。やむを得ず、プロジェクトを「再構築」しながら問題を探りました。その結果ようやく原因がつかめました。(ほんとに苦労しました)

double abc = 10.0; のようにdoubleの変数を定義する際に0以外の初期値を定義すると、なぜかボーレートの設定がでたらめになったり、Hard_Faultに落ち込んだりするようです。intやfloatなどでは問題ありません。なぜかdoubleだけがこうなります。全ての環境でこうなるかどうかはわかりませんが、僕の環境では必ず起ります。

これを修正したところ、シェーキープロジェクトはすんなり動作しました。だいぶ紆余曲折はありましたが、とりあえずTrueSTUDIOからEclipseへの乗り換えは出来たようです。
乗り換えを検討中の方の参考になればと、「乗り換えガイドV2」を作成しました。

「truestudioeclipse_v2.pdf」をダウンロード

文章ばかりでは寂しいのでこの写真を。R2ユニットがご先祖Shakeyと記念撮影といった感じでしょうか?(この大きなR2-D2は昔のニッコーの製品でDVDプロジェクターになっています)

Dscn2235

« TrueSTUDIOからEclipseへ乗り換える(その2) | トップページ | TrueSTUDIOからEclipseへ乗り換える(拾遺) »

管理人のページ」カテゴリの記事

ロボット作ろう」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: TrueSTUDIOからEclipseへ乗り換える(その3):

« TrueSTUDIOからEclipseへ乗り換える(その2) | トップページ | TrueSTUDIOからEclipseへ乗り換える(拾遺) »