1: 2018-08-13 (月) 20:23:36 takaboo | 現: 2018-08-31 (金) 00:08:04 takaboo | ||
---|---|---|---|
Line 91: | Line 91: | ||
**各機能の詳細 [#te2669af] | **各機能の詳細 [#te2669af] | ||
+ | ***ブートローダ [#m6eccb2a] | ||
+ | ****使用方法 [#i03953ba] | ||
+ | 予め書き込まれているブートローダによりJ10を経由してシリアル通信を行い、PCからユーザプログラムの転送や諸設定を行う事ができます。~ | ||
+ | PCにインストールしたSIMPLE TERMを用いてCOMポートを開き、ブートローダのコマンドモードに入ると、次のメッセージが表示されます。 | ||
+ | LPC82x BL1.3 | ||
+ | > | ||
+ | この状態で'?'を入力すると、使用できるコマンドの一覧が表示されます。 | ||
+ | >? | ||
+ | LPC82x BL1.3 | ||
+ | w:write e:erase d:dump g:go | ||
+ | > | ||
+ | -w (UPLOAD)~ | ||
+ | コンパイル済みのユーザプログラムをフラッシュROMに転送する。ダウンロードして実行できるファイルは、GCC Developer LiteにてLPC824向けにコンパイルされたバイナリファイルのみ。 | ||
+ | -e (ERASE)~ | ||
+ | ブートローダ本体を除くユーザプログラムエリアに書き込まれたデータを完全消去する。一度消去したデータは復活させる事はできない。 | ||
+ | -g (BOOT)~ | ||
+ | フラッシュROMに転送されたユーザプログラムへ実行を遷移する。ユーザプログラム領域が消去されていると実行されない。 | ||
+ | -d (DUMP)~ | ||
+ | MPUのメモリを16進数でダンプする。 | ||
+ | |||
+ | なお、ユーザプログラムが書き込まれている場合は、電源投入直後にユーザプログラムが実行されるため、ブートローダのコマンドモードにはなりません。~ | ||
+ | 再度ユーザプログラムの転送や消去といった操作を行う場合は、SIMPLE TERM上で「!」を押したままボードに供給する電源を入れ直して下さい。ブートローダはコマンドモードへ遷移します。 | ||
+ | **プログラムの開発環境 [#s19df6ff] | ||
+ | ***GCC Developer Lite [#xcbed9da] | ||
+ | GCC Developer Liteの詳細については[[こちら>GCC Developer Lite]]で紹介していますが、LPC824では公式版ではないものを使用します。~ | ||
+ | |||
+ | -~ | ||
+ | #ref(https://www.besttechnology.co.jp/download/USER/TECHSUPPORT/GDL2.6.0.55_LPC824_2.exe)~ | ||
+ | 141,702,743 byte~ | ||
+ | MD5sum:c99f5a38632cf028ddc9870af5691cd7~ | ||
+ | 改訂履歴:~ | ||
+ | LPC82x_EXTRAのwl_spi.hにタスクスイッチ用のフックルーチンを追加 | ||
+ | |||
+ | 本来であればインストーラーを用いて必要なファイルを自動的にインストールするものですが、ここではGCC Developer Liteがインストールされた状態をそのままzip形式で圧縮し自己解凍ファイルにしたものを提供します。~ | ||
+ | 他のバージョンのGCC Developer Liteを使用している場合は、上書きコピー等はしないよう注意して下さい。~ | ||
+ | ダウンロードしたフィルを実行すると、「C:\Program Files」もしくは「C:\Program Files (x86)」フォルダの配下に展開されます。~ | ||
+ | 既に別のバージョンを使用している場合は、ダウンロードしたファイルを予めアーカイバで展開しておき、ルートフォルダ名をBestTech2等に変更するなどしてから、「C:\Program Files」もしくは「C:\Program Files (x86)」フォルダの配下に移動します。~ | ||
+ | また、ショートカット等は作成されませんので、展開先の「C:\Program Files\BestTech\GCC Developer Lite\GCCDevL.exe」へのショートカットをデスクトップ等に作っておくと良いでしょう。 | ||
+ | |||
+ | なお、最新のノートンインターネットセキュリティーにてスキャン済みですが、相当量のバイナリファイルが他社のアンチウィルスで排除される可能性があります。正常に動作しない場合はアンチウィルスにて必要なファイルが削除されていると思われます。 | ||
+ | |||
+ | 更に、インストーラーを用いていない弊害がいくつか生じるため、初回のみ以下の手順を踏んで下さい。 | ||
+ | +GCCDevL.exeを実行し、Languageメニューを開き、japaneseを選択。 | ||
+ | +GCCDevL.exeを一端終了。 | ||
+ | +GCCDevL.exeを実行 | ||
+ | |||
+ | #ref(GDL_LPC824_Select.png) | ||
+ | LPC824で使用される主要なコンポーネントを簡単に紹介します。 | ||
+ | -''[[GCC Developer Lite>GCC Developer Lite#GCCDevL]]'' | ||
+ | ~ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。 | ||
+ | -''[[SIMPLE TERM>GCC Developer Lite#STERM]]'' | ||
+ | ~汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。~ | ||
+ | USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。 | ||
+ | -''ARMGCC'' | ||
+ | ~ARMコア向けC/C++言語向けのコンパイラ。できる限り最新のパッチを適用しているため、時に互換性を失う。 | ||
+ | -''ターゲットファイル'' | ||
+ | ~MPUの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。 | ||
+ | ****ターゲットファイル [#z4b2f8e8] | ||
+ | [[GCC Developer Lite>GCC Developer Lite]]ではLPC824用の設定を1種類備えています。~ | ||
+ | #ref(GDL_CompileOption_TargetList.png) | ||
+ | 以下にLPC824に対応した設定リストの一覧とその設定における機能を紹介します。 | ||
+ | -''LPC824 EXTRA (TERM, FREERTOS, EXTRA)'' | ||
+ | ~NXP LPC824用のペリフェラルライブラリとFreeRTOSを提供。~ | ||
+ | ~ビルドするとブートローダにてMPUのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~ | ||
+ | ビルドが成功すると、STERM.exe(SIMPLE TERM)が起動する。~ | ||
+ | |||
+ | ****SIMPLE TERMとブートローダ [#x928fcd7] | ||
+ | ブートローダはJ10を使用してユーザーログラムの書き換えや諸々の操作を行う事ができます。~ | ||
+ | ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常に動作しないまでか、ボードが破損する可能性があります。 | ||
+ | -LPC824 EXTRA (TERM, FREERTOS, EXTRA) | ||
+ | |||
+ | SIMPLE TERMからCOMポートを選択しオープンする事で、SIMPLE TERMからLPC824のブートローダの各種コマンドが使用できる様になります。その他の設定は以下の通りです。~ | ||
+ | Baudrate:115200bps | ||
+ | Databits:8 | ||
+ | Stopbits:1 | ||
+ | Parity:Non | ||
+ | Flow Control:Non | ||
+ | Protocol:Xmodem | ||
+ | #ref(LPC824_BL_COM.png,100%) | ||
+ | |||
+ | なお、LPC824にユーザプログラムが既に書き込まれている場合は、電源投入直後にそのユーザプログラムが自動的に実行されてしまいますので、その際はSIMPLE TERM上で'!'キーを押しっぱなしにしながらボードに供給する電源を一度OFFにし再度ONにして下さい。 | ||
+ | |||
+ | 先の設定リストでソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)が自動起動されます。COMポート以外に関しては、以下の条件で起動します。 | ||
+ | -既にSIMPLE TERMが実行中であれば2重に起動しない。 | ||
+ | -ボーレートや転送プロトコルは要求される設定が自動的になされる。 | ||
+ | -コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。 | ||
+ | -ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用できる様になる。 | ||
+ | |||
+ | #ref(LPC824_STERM_SCRIPT1.png,100%) | ||
+ | |||
+ | LPC824のブートローダがコマンドモードであれば、SIMPLE TERMのメニューから「スクリプト実行[STERM_LPC82x]」をクリックするだけで、転送するファイルを手動で選択する事無く転送にかかる処理と実行までが全て自動的に行われます。 | ||
+ | #ref(LPC824_STERM_SCRIPT2.png,100%) | ||
+ | 本機能により、手動で間違ったファイルを選択して転送してしまったり、転送不可能な状態で転送をしてしまうといったミスを軽減する事ができます。 | ||
+ | |||
+ | **LPC824向けターゲットファイル及びライブラリ [#ca4dd3ab] | ||
+ | [[GCC Developer Lite>GCC Developer Lite]]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方はできません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。~ | ||
+ | そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~ | ||
+ | GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。~ | ||
+ | ~ | ||
+ | LPC824は複数のライブラリを組み合わせて使用するため、実体はかなり複雑になっています。 | ||
+ | -''LPC82xライブラリ''~ | ||
+ | LPC82xシリーズ共通の内蔵ペリフェラルを簡便に扱う為のライブラリ。主に[[LPCOpen>https://www.nxp.com/support/developer-resources/software-development-tools/lpc-developer-resources-/lpcopen-libraries-and-examples:LPC-OPEN-LIBRARIES]]とシリアル通信、ブートコードを含む。 | ||
+ | -''LPC82x追加ライブラリ''~ | ||
+ | LPC82xシリーズ用のよく使われるペリフェラルのラッパーライブラリ。主にI2C,FLASH,DELAY,SPI,ADC,DXLIB,DX2LIBを含む。 | ||
+ | -''cortex-M0用FREERTOS''~ | ||
+ | Cortex-M0+用に予めビルドされたリアルタイムオペレーティングシステム[[FreeRTOS>https://www.freertos.org/]]。 |