2010年5月24日 (月曜日)

LED チカチカまでが結構長かった(余談)

昨日のエントリで書き忘れていた事があったので余談として書いておきます。

6月号のHEWで動作させてみるサンプル「LEDチカチカ」はタイマ割り込みを使ったプログラムです。これはこれで十分に初歩的なものなのですが、マイコンの世界に初めて入ってきた方にとってはこれでもちょっと「?」な世界だったりするものです。

まぁ、タイマのハンドラはJavaやVisualStudio.NETあたりから来た方で、Timerクラスなんかを使った事のある方であればイメージはそんなに難しくなくて、「main関数の冒頭の部分でこの命令を実行する事によって、この関数(ハンドラ)が1秒置きに実行されるんですよ」でほぼ納得できると思うのですが、I/Oポートの値を設定する事によってLEDがOn/Offする部分が意外とイメージしづらいみたいです(と言うか、最初は自分がそうでした。負論理でビットOnでLED消灯って何それ!って本当に思いましたからw)。

でもまぁ、ここもI/Oポートへの操作をラッピングしたled_on()とかled_off()とかの関数を作る事でだいぶイメージがしやすくなるみたいですね。

んで、そこにさらに輪をかけて割り込みを使わないLEDチカチカプログラムをちょっと載せてみようかなと思います。中で何も行わないforループについて賛否両論あるかと思いますが、まずは直感的なイメージが大事だと思ってます。誌面に掲載の割り込みを使ったプログラムが上手く動かなくて、「ちょっと挫折気味」な方がいたらこのプログラムで「とにかくマイコン基板とのコンタクトは取れているんだな」と安心していただけたらなと思います。

Led_2

はい、これがプログラムです。って、画像ですがね。ま、簡単なんで練習だと思って手で入力してみてください(ファイルはmain関数のある、SH7262_LED.cです)。既存のサンプルの一部(タイマの設定と割り込み発生許可の部分)をコメントにして、後はLEDの点灯/消灯関数のプロトタイプ宣言を追加しています。無限ループ内は

ちょっと時間を空けてLED点灯、ちょっと時間を空けてLED消灯

と言う定番な処理です。クロックが結構早い(インターフェース誌最速!は伊達じゃない!w)ので3000000回なんてベラボーなループ回数になっているのはご愛嬌です。

これが無事に動けば多分、タイマ割り込み使用版の方は設定のどこかがおかしいと言う事になります。マイコンとのコンタクトが取れた事に安堵しつつ、じっくりとプログラムを見直してみてください。

さて、世の中ではすでに液晶繋いだり、音出したりしている方もいらっしゃるようですね。こちらもじっくりとではありますが、色々触っていこうと思います(少なくとも液晶は繋いでみるつもり)。

| | コメント (0) | トラックバック (0)

2010年5月23日 (日曜日)

LED チカチカまでが結構長かった(その2)

前回エントリの最後に表示されたビルドエラー。調べてみると、ビルド途中に生成されたファイルをなんらかの理由で削除できなかった際に表示される様です。ビルド作業自体に干渉できるほどHEWには精通していないので、正直「手詰まり」な感じで途方にくれました。ビルド時に生成されるフォルダ類を全削除してやってもダメで、以前の「H8用の環境」が悪さをしているのかも…とHEWをインストールしなおしたりしても状況は変わらず。

それでも諦めきれず(ここで諦めちゃう人が結構多いかも)、何回もビルドを試していると以下の傾向に気がつきました。

  • エラーになる箇所が時々変わる
  • ビルド中のCPU負荷がエライ高い

この手の挙動は経験的に「PCスペックが原因」と考え、他に常駐しているアプリを終了させられるだけ終了させてみました。すると…

94033996

ようやくビルド完了!(ウォーニングが1件出てますが、今回はこれで良いようです)いやー、一時はどうなるかと思いました。これで一安心!と思いきや、その後も何回か同じ現象が発生した為、他のPCでも環境構築&検証を行って結果的に自宅で一番スペックの高いMacBook(Late2008)のBootCamp上が一番安定していると言う結果になりました(これはこれで、OSがVistaなので後述のシリアル接続HEWモニタの動作保証外だったりします)。

94037450

さて、続いてシリアル接続HEWモニタをインストールしてマイコン基板へのプログラムのダウンロードとデバッグを行うのですが、ここでもう一つ問題が発生。はい、色々なマイコンで仮想COMポートの設定をされている方はご存知かと思いますが、COMポートの番号がエライ事になってますw。ついうっかりインストール時とは別のUSBコネクタに繋いでしまうだけで別のCOMポートになってしまってちょっと困るアレです。今回のシリアル接続HEWモニタはCOM8までしか対応していないようで、それ以外だと接続エラーになってしまいます(HEWに限った事ではなく、他のツールでもCOM8までと言うケースは多いですね)。

94046393

ま、これには対処方法があって、デバイスマネージャで対象のCOMポートのプロパティを開いていくとある「詳細設定」の部分で別の番号に変更が出来ます。この辺りは他のマイコン基板で慣れていた事もあってスムーズに作業が出来るあたりがなんともですw。

さて、シリアル接続HEWモニタの設定も出来たら後はマイコン基板にプログラムをダウンロードして実行!なのですが、ここでもすんなりと行きませんでした。具体的には手順通りに「リセットして実行」を選んでもLEDが点灯しない!デバッガもなにやら途中の部分でブレークしてしまっているような感じ。コンソールにも「Abort」とか不吉な文字が表示されていました。

94341507

その後、諦めも悪く、何度か試してみると、ようやくLEDが点滅を始めました!このデバッガとの通信の挙動はやはり問題があるらしく、CQ出版社の特設ページで入手できる新しいバージョンを試す事で解消する事もあるようです(ちなみに私の環境ではまだAbortが表示されたり、デバッガの挙動が?な時があります)ので、定期的にチェックしてみてください。

と、ようやくこのエントリを書き終えましたが、もう数日で7月号が出てしまいますね。本エントリが6月号を買って試してみて「上手く行かないし、もうやーめた!」と思っていた人の引き留めにつながれば幸いです。

| | コメント (0) | トラックバック (0)

2010年5月22日 (土曜日)

LEDチカチカまでが結構長かった

SH-2Aマイコン基板のその後です。タイトルにもあるように、動作確認の定番である「LEDチカチカ」までが結構長かったです。まぁ、初めてこういった基板に触れる人で無い限りはあまり参考にはならないでしょうが、その辺の顛末をちょっと書こうと思います。

開発環境はルネサスエレクトロニクスから提供されるHEWと言うものを使いますが、今回環境を作ろうとしたPCにはこれをH8マイコンで作った際にすでにHEWをインストールしていました。とは言え、ターゲットとなるマイコンが違う事から「何か起きそう」な予感がして一旦アンインストールしてインストールをしてみました。

93992784_3

実際のところ、アンインストールを行っても完全なアンインストールとはなっていなかったようです。しかも、HEWの方でもその辺りが考慮されているようで、インストーラの画面には「マルチインストール」の選択肢が。マイコン毎で環境を変えたい場合はここで別のインストール先を選ぶと良いみたいですね。余談ですが、ツールのダウンロードに必要な「My Renesas」サービスは今年の3月にログイン方法が変わっている様なので、それ以前に登録していて、しばらく使っていない方は注意が必要です。

さて、今回HEW以外ににもDFUと言うツールが必要で、これが無いとターゲットデバイスであるSH72620のプロジェクトが作成できません。誌面ではインストールしたHEWのバージョンが

  • V.9.03 Release 02だとSH72620の情報が無いのでDFUが必要
  • V.9.03 Release 02以降をインストールの場合はDFUが不要

と、ちょっと混乱する表記になっています(私は後者に先に目が行ってしまい、「DFU入れなくてもいいのか」と勘違いしてしまいました。DFUは必要です)。後者は「V.9.03 Release 02より後(例えばRelease 03だとか、V.9.04とか)」と言う解釈ですね。

さて、環境が出来た後(と言いつつ、その後さらにシリアル接続HEWモニタのインストールが必要ですが)は「LEDチカチカ」のプログラムを行うためのプロジェクト作成とプログラミングです。割込みベクタ設定の部分、初めての人だと戸惑いそうな感じですね。言うまでも無いのですが、intprg.cの変更点は「#pragma行の追加」と「INT_CMT_CMI0関数の処理を記述(初期状態はsleep()呼び出しがコメントになっている。つまり処理無し)」ですね。あと、リスト5の修正箇所は579行目にあります(ま、Ctrl+Fで「175」を検索すれば一 発なんですが)。

プログラミングが終了したら、ビルドの設定を行ってビルドを行います。と、簡単に言ってもこの「ビルドの設定」、初めての人は結構大変だと思います。設定する項目が結構ありますし、16進数に慣れていても普段ハードウェア寄りの事をやっていない方は「失敗してマイコン基板壊れたらどうしよう」と言う心配はありますよね。まぁ、ここは誌面通りの設定が出来れば問題ありませんのでじっくりと取り組んでみてください。

94019897

 

と、偉そうな風を吹かせておきながら一通りビルド設定を済ませてビルドを実行してみるとこんな表示が…。な、…ビルドエラー…だと?(次回に続く)

| | コメント (0) | トラックバック (0)

2010年4月27日 (火曜日)

とりあえず買ってみた

3ヶ月以上のご無沙汰です。季節はすっかり春・・・と言い切れない昨今ですが、皆さん如何お過ごしでしょうか?私の住んでいるあたりではようやく桜の花が咲き始めました。

と前置きはこれくらいにして、今年最初のエントリーの後はずっとTwitterでつぶやいておりました。はい、「ブログやってる人が始めると途端にブログの更新が滞る」とウワサのTwitterです。Twitterやりながらもブログ更新が滞らない人と「情報発信」のスキルの差をまざまざと見せ付けられてしまっています。こんなんじゃいかんな、なんとかせにゃぁ。

・・・と、前置きがまだ続いてますねw。そろそろ本題へ。今年もCQ出版さんからマイコン基板付属のインターフェース誌が発売されました。と言うことで早速入手。チップサイズは付属基板の中でも最大との事です。個人的には昨年末発売の増刊に付属の「液晶搭載マイコン(チップサイズは同じはず)」を見ていたのであまり「でか!」とは思いませんでしたが、でもまぁ、大きいですよね(写真は液晶搭載マイコンとの比較です)。

91735508

今年のG.W.は特に遠出の計画も無く、MTM05も今回は不参加なので、腰を据えて取り組んでみようかなと(他にやってみたいプログラミングもあるのでその中でのバランス配分がどうなるかによりますが)思います。

久々のブログ復帰エントリはとりあえずこんな感じで。今回がすでにそうなのですが、今後はTwitter上のネタをある程度まとめてブログで公開と言う、これまた「すでに誰しもがやっている」スタンスでやって行こうと思います。

と言うことで、興味のある方はnkgatewayをフォローください。なお、本ブログの左側にもブログパーツで最新のつぶやきが表示されております。

| | コメント (0) | トラックバック (0)