{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "オリジナルの作成:2015/02/15\n", "\n", "ここまで、 Arduino勉強会/0F-lbeDuino誕生、 Arduino勉強会/0G-lbeDuinoシールドを作る、 Arduino勉強会/0H-アイロンプリントのすすめ とlbeDuinoのハード関連の説明をしてきましたので、 lbeDuinoの開発環境について説明します。\n", "\n", "lbeDuinoの最大の特徴は、同じソース、同じシールドをArduinoとlbeDuinoで使え、LPCXpressoを使ってデバッグできる点にあります。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 準備するもの\n", "開発に必要なものは、以下の2つです。\n", "\n", "- トラ技ARMライタ\n", "- LPCXpresso IDE(CMSI-DAPに対応したVersion6以降を使用して下さい)\n", "\n", "### トラ技ARMライタ\n", "プログラムの書き込みとデバッグには、CQ出版の \n", "[トランジスタ技術2014年3月号](http://toragi.cqpub.co.jp/tabid/710/Default.aspx)\n", "の付録のトラ技ARMライタを使っています。\n", "\n", "\n", "\n", "これにL字のピンとジャンバーピン(タクトスイッチの代用) を付けて使っています。ブレッドボードに差すこと考えメスのL字コネクターではオスのL字ピンを使いました。\n", "\n", "トラ技ARMライタの書き込みは、トラ技で紹介されています。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## LPCXpresso IDE\n", "LPCXpresso IDEを\n", "[ダウンロードページ](http://www.lpcware.com/lpcxpresso/download)\n", "からダウンロードします。\n", "[トラ技のサポートページ](http://toragi.cqpub.co.jp/tabid/440/Default.aspx)\n", "に手順が詳しく載っていますので、参考にしてください。\n", "\n", "ダウンロードしたLPCXpressoは、フリー版でもアクティベートが必要です。\n", "\n", "最初に、シリアル番号を取得します。 LPCXpressoを起動して、HelpメニューからActivate LPCXpresso (FreeEdition)→Create Serial number and Activate...のメニューを選択します。\n", "\n", "Copy Serial Number to Clipboardにチェックを入れてOKボタンを押します。\n", "\n", "アクティベートには、以下のページでregisterからユーザ登録して、loginしてください。 \n", "[LPCXpresso Key Activation](http://www.lpcware.com/lpcxpresso/activate)\n", "\n", "\n", "\n", "ログインに成功すると以下のアクティベーションページに移ります。\n", "\n", "\n", "\n", "先ほどのシリアルナンバーをペーストし、 Register LPCXpressoを押すとしばらくしてユーザ登録したメールアドレスにアクティベーションキーが送られてきます。\n", "\n", "HelpメニューからActivate→Activate (FreeEdition)を選択し、シリアルナンバーを入力すれば完了です。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## lbeDuinoソースのダウンロード\n", "最新のソースは、Githubからダウンロードすることができます。 LBEDはまだ開発途中なので、更新が必要なのでgitを使って最新のページにすることをお薦めします。\n", "\n", "ソースを保存するディレクトリに移動した後、ターミナルソフトで、以下のコマンドを入力してください。\n", "\n", "```bash\n", "$ git clone https://github.com/take-pwave/lbed\n", "```\n", "\n", "ソースを最新に更新するには、lbedのディレクトリで、以下のコマンドを入力してください。\n", "\n", "```bash\n", "$ git pull\n", "```\n", "\n", "gitが使えない場合には、以下のURLでGithubのlbedのページを表示して、Download ZIPボタンからzipファイルをダウンロードしてください。\n", "\n", "- https://github.com/take-pwave/lbed" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## LPCXpressoへのプロジェクトのインポート\n", "lbedのディレクトリには、他のボードのlbedが含まれています。lbeDuinoでインポートするプロジェクトは以下の4つです。\n", "\n", "- CMSISv2p00_LPC11xx\n", "- LBED_lbeDuino\n", "- LBED_lbeDuino_USERLIB\n", "- LBED_lbeDuino_MAIN\n", "\n", "### プロジェクトインポート手順\n", "LPCXpressoを起動してProject Explorerのタブで右クリックすると以下のポップアップメニューが表示されます。\n", "\n", "\n", "\n", "GeneralのExisting Projects into Workspaceを選択します。\n", "\n", "th_import.jpg\n", "\n", "Select root directoryのBrowse...ボタンでgitコマンドでダウンロードしたlbedの必要なプロジェクトのディレクトリを 選択し、Finishiボタンを押します。\n", "\n", "\n", "\n", "インポートされたプロジェクトがProject Exploreに追加されます。\n", "\n", "\n", "\n", "これを必要な4つのプロジェクトに対して繰り返します。\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Blinkを動かしてみる\n", "lbeDuinoのメインのプロジェクトは、LBED_lbeDuino_MAINです。プロジェクトを展開すると、 以下の様になります。\n", "\n", "\n", "\n", "ユーザの使用するのは、srcと Examplesの2つだけです。srcには、最新版でチェックしたスケッチが入っています。 これとExampleのBlink.cppを入れ替えます。\n", "\n", "### Blinkのビルド\n", "ビルドは、LBED_lbeDuino_MAINプロジェクトを右クリックして、Clean Projectを実行した後、Build Projectを選択します。\n", "\n", "\n", "\n", "Consoleに以下の様にBuild Finishedが表示されればビルドの完成です。\n", "\n", "\n", "\n", "\n", "### Blinkの書き込み\n", "トラ技ARMライタをlbeDuinoのソケットに差します。\n", "\n", "\n", "\n", "初回だけデバッグ用の設定を作成するために、Quickstart PanelからDebug 'LBED_lbeDuino_MAIN'[Debug]を選択します。 2回目以降は、メニューアイコンの虫をクリックするだけです。\n", "\n", "\n", "\n", "最初は、トラ技ARMライタが認識できずに、以下のダイアログが出ます。\n", "\n", "\n", "\n", "ここで、Search for any enabled emulatorボタンをクリックすると、Toragi_LPC Writer CMSI-DAPが見つかりますので、 ここで、OKボタンを押します。\n", "\n", "\n", "\n", "プログラムが無事lbeDuinoにダウンロードされたら、以下の様にデバッグ画面が表示されます。 ここで、RunメニューからResumeを選択するとBlinkが動き出します。\n", "\n", "\n", "\n", "まだ、デバッガが有効なので、好きなタイミングでブレークポイントをセットして止めることができます。\n", "\n", "デバッグを終了するには、RunメニューからTerminateを選択します。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## lbeDuinoのデバッグ\n", "プログラムの書き込みとデバッグ開始手順は同じなので、ここからはデバッグの手順について説明します。\n", "\n", "ユーザがsrcディレクトリに作成したスケッチは、src_baseにあるプログラムによって起動前の処理を行った後、 呼び出されます。 デバッガでは、src_base/Main.cppのmain関数で止まるように設定されています。\n", "\n", "ユーザの作成したスケッチ(ここではBlink.cpp)で止めるには、2つの方法があります。\n", "\n", "- デバッガのstep into機能を使って、setupやloop関数の内部に移動する\n", "- ユーザのスケッチにブレークポイントをセットする\n", "\n", "### デバッグアイコンの使い方\n", "デバッグには、上部アイコンメニューのデバッグアイコンを使用します。\n", "\n", "\n", "\n", "右から\n", "\n", "- 終了(Terminate)\n", "- 一時停止(Suspend)\n", "- 続けて実行(Resume)\n", "- Step Into\n", "- Step Over\n", "- Step Return\n", "- Use Step Filter\n", "\n", "があり、通常は、終了、続けて実行、Step Into、Step Over、Step Returnを使います。\n", "\n", "main関数の最初のstep()で止まったところで、右から4番目のStep Intoを実行して下さい。 Blink.cppが開き、step()関数の最初(以下の図では6行目)で止まります。\n", "\n", "\n", "\n", "プログラムのチェックが終わり、処理の途中で関数の呼び出し元まで進めたいときには、 Step Returnを使用します。\n", "\n", "今度は、Main.cppの21行目で止まりますので、またStep Intoを実行します。今度は、Blink.cppの9行目で止まります。\n", "\n", "変数の値を見たいときには、変数の上にマウスを移動すると、変数の値が表示されます。\n", "\n", "\n", "\n", "1行ずつ実行するには、Step Overを使用し、指定した行まで実行するには、止めたい行をマウスでクリックし、右クリックでRun to Lineを実行します。\n", "\n", "## Arduinoでlbedライブラリを使う\n", "lbedのダウンロードした時に作成されたArduinoの中のLbedをユーザのドキュメントディレクトリ/Arduino/librariesにコピーしてください。\n", "\n", "Arduinoでlbedライブラリを使用する方法は、 Arduino/Arduinoでmbedユーザライブラリーを動かす に紹介しています。" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 }