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プロジェクターになっています)
« TrueSTUDIOからEclipseへ乗り換える(その2) | トップページ | TrueSTUDIOからEclipseへ乗り換える(拾遺) »
「管理人のページ」カテゴリの記事
- スパイ映画に出てきそうな高一再生検波受信機(2022.12.10)
- 「超小型」電池管再生検波ポケットラジオ(2022.11.08)
- サブミニ管5678と大型バーアンテナの再生検波ポータブル(2022.07.14)
- 電池管マイブーム到来(2022.07.01)
- グレイ・ウォルターの真空管式電子カメを作ってみる(2022.06.27)
「ロボット作ろう」カテゴリの記事
- Raspberry Pi3でturtlebotを動かしたいのだけど(2016.06.11)
- STM32F4のAD変換トラブル(その2)(2013.03.29)
- TrueSTUDIOからEclipseへ乗り換える(拾遺)(2012.07.14)
- TrueSTUDIOからEclipseへ乗り換える(その3)(2012.07.13)
- TrueSTUDIOからEclipseへ乗り換える(その2)(2012.07.07)
« TrueSTUDIOからEclipseへ乗り換える(その2) | トップページ | TrueSTUDIOからEclipseへ乗り換える(拾遺) »
コメント