1 ===============================================================
2 TOPPERS/ASP for LPCXpresso LPC1768
3 ===============================================================
6 TOPPERS/ASP for LPCはTOPPERS/ASPをNXPセミコンダクターズの
7 LPCシリーズ上で動作するようにしたものです。
9 このターゲット(lpcxpresso1768_gcc)はEmbedded Artists社が開発
10 したLPCXpresso LPC1768上でTOPPERS/ASPを動作させるために実装
13 従来は評価用ボードに加えて、JTAGデバッガ、環境構築など様々な
14 準備が必要でしたが、このターゲットを使用することで簡単に実機
19 環境はLPCXpressoが対応しているLinux環境に今回は限定しました。
20 TOPPERS/ASPのビルドシステムにはシェルとperlに依存する箇所が
22 Windowsでも様々な外部ツールを使って、依存する環境に近い状況を
23 作り出す事が可能ですが、今回は作業負担を軽減させるために割愛
26 最近ですとVMware Player上で簡単にLinux環境が構築できますし、
27 WindowsとLinuxの両環境で対応できるように沢山の時間をかけるより、
28 早く提供したいという思いが先行した結果でもあります。
34 * LPCXpresso 3.8.2 [Build 129][31/01/2011]
35 * LPCXpresso LPC1768 REV A
42 * デバッグをIDE上でできるようにすること。
43 * 極力TOPPERS/ASPのオリジナルとの差分を小さくすること。
44 * LPCXpressoのみで実現可能なこと。
47 ソースコードとビルド用ファイルについては以下の変更を行っています。
49 * 元々あったlpc1768_sram.ldとlpc1768_rom.ldを削除しました。
51 * LPCXpressoが生成したDebugとReleaseのリンカスクリプトを使用
53 -> ENTRY(ResetISR)をENTRY(_start)に変更しました。
54 -> STARTUP(start.o)を追加しました。
55 -> __bss_start, __bss_endを追加しました。
56 -> __idata_start, __idata_end, __data_startを追加しました。
57 -> init_hook関数をPROVIDEで追加しました。
58 -> .isr_vectorを.vectorに名称を変更しました。
60 * kernel/target/lpc1768_generic_gcc/Makefile.targetに以下を追加
62 -> CDEFS=-DDEBUG -D__CODE_RED -D__REDLIB__
64 * Makefileで生成されるオブジェクトの名称を変更しました。
66 * Makefileで生成されるオブジェクトの拡張子を変更しました。
67 LPCXpresso上の実行設定は拡張子がaxfでないと、実行する度に新しい
68 設定を自動的に生成してしまうようです。これを防ぐ狙いがあります。
70 * LPCXpresso IDE上でアーカイブプロジェクトzipファイルをインポート
71 すると全てのファイルの実行権限が落ちてしまいます。
72 そこでMakefileにpermissionというターゲットを追加し、ビルド時に
73 実行権限を立てるようにしてあります。(暫定対策)
75 LPCXpressoのプロジェクトに対しては以下の変更を行って下さい。
77 * Debug ConfigurationsのDebuggerタブでStop on startup at: sta_kerに
79 これはLPCXpresso IDE上でデバッグを開始した時に実行を停止させる
81 RunメニューからResumeを選択することで動作を継続することができます。
83 * Debug ConfigurationsのDebuggerタブでVector catch: Trueに変更して
86 * PropertiesのC/C++ BuildでGenerate Makefiles automaticallyの
88 これによりLPCXpressoは外部Makefileを参照するようになります。
90 * PropertiesのC/C++ BuildでBuild directoryからDebugとReleaseを削除
92 これによりプロジェクトのルートディレクトリを参照する形になり
95 システムログがUART0(LPCXpressoの21, 22ピンに相当)に出力されます。
96 LPCXpressoの21番ピンはLPC1768のP0[1]/TXD0/AD0[7]ピンに接続されて
98 同様に22番ピンはLPC1768のP0[3]/RXD0/AD0[6]ピンに接続されています。
100 シリアルポートの設定はボーレート57600、8ビット、ノンパリティ、
103 ビルドが完了したらDebug 'TOPPERS-ASP_LPCXpresso-LPC1768'でデバッグ
105 Resume, Suspendがソースコード表示と共に楽しめます。
108 今回の対応は既存のTOPPERS/ASPのビルドの枠組みを超えない形で行ないました。
109 本来であれば、LPCXpresso上のプリビルドやポストビルドを駆使してカーネルに
110 対するコンフィギュレーションなどを行うのが筋ですが、先に述べたとおり早めの
113 もし、何かシンプルな方法でコンフィギュレータまでを包括的に処理させることが
114 できる方法を思いついた場合、是非ご一報頂ければと思います。