OSDN Git Service

LPCXpresso IDE上の設定変更箇所などを示す暫定的なドキュメントを追加しました。
[toppersasp4lpc/asp.git] / asp / target / lpcxpresso1768_gcc / README
1 ===============================================================
2  TOPPERS/ASP for LPCXpresso LPC1768
3 ===============================================================
4
5 1. はじめに
6  TOPPERS/ASP for LPCはTOPPERS/ASPをNXPセミコンダクターズの
7  LPCシリーズ上で動作するようにしたものです。
8
9  このターゲット(lpcxpresso1768_gcc)はEmbedded Artists社が開発
10  したLPCXpresso LPC1768上でTOPPERS/ASPを動作させるために実装
11  されています。
12
13  従来は評価用ボードに加えて、JTAGデバッガ、環境構築など様々な
14  準備が必要でしたが、このターゲットを使用することで簡単に実機
15  動作を体験できます。
16
17 2. 対応環境について
18  2-1. ホストのOS
19   環境はLPCXpressoが対応しているLinux環境に今回は限定しました。
20   TOPPERS/ASPのビルドシステムにはシェルとperlに依存する箇所が
21   あります。
22   Windowsでも様々な外部ツールを使って、依存する環境に近い状況を
23   作り出す事が可能ですが、今回は作業負担を軽減させるために割愛
24   しました。
25
26   最近ですとVMware Player上で簡単にLinux環境が構築できますし、
27   WindowsとLinuxの両環境で対応できるように沢山の時間をかけるより、
28   早く提供したいという思いが先行した結果でもあります。
29
30  2-2. 動作を確認した環境
31   参考までに動作を確認した環境を記します。
32
33   * Ubuntu 10.10
34   * LPCXpresso 3.8.2 [Build 129][31/01/2011]
35   * LPCXpresso LPC1768 REV A
36
37 3. 公開当初からの変更点
38
39  公開当初から幾つかの変更を加えてあります。
40
41  変更は
42   * デバッグをIDE上でできるようにすること。
43   * 極力TOPPERS/ASPのオリジナルとの差分を小さくすること。
44   * LPCXpressoのみで実現可能なこと。
45  を念頭に作業しました。
46
47  ソースコードとビルド用ファイルについては以下の変更を行っています。
48
49   * 元々あったlpc1768_sram.ldとlpc1768_rom.ldを削除しました。
50
51   * LPCXpressoが生成したDebugとReleaseのリンカスクリプトを使用
52     しました。
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に名称を変更しました。
59
60   * kernel/target/lpc1768_generic_gcc/Makefile.targetに以下を追加
61     しました。
62    -> CDEFS=-DDEBUG -D__CODE_RED -D__REDLIB__
63
64   * Makefileで生成されるオブジェクトの名称を変更しました。
65
66   * Makefileで生成されるオブジェクトの拡張子を変更しました。
67     LPCXpresso上の実行設定は拡張子がaxfでないと、実行する度に新しい
68     設定を自動的に生成してしまうようです。これを防ぐ狙いがあります。
69
70   * LPCXpresso IDE上でアーカイブプロジェクトzipファイルをインポート
71     すると全てのファイルの実行権限が落ちてしまいます。
72     そこでMakefileにpermissionというターゲットを追加し、ビルド時に
73     実行権限を立てるようにしてあります。(暫定対策)
74
75  LPCXpressoのプロジェクトに対しては以下の変更を行って下さい。
76
77   * Debug ConfigurationsのDebuggerタブでStop on startup at: sta_kerに
78     変更して下さい。
79     これはLPCXpresso IDE上でデバッグを開始した時に実行を停止させる
80     関数を指定するものです。
81     RunメニューからResumeを選択することで動作を継続することができます。
82
83   * Debug ConfigurationsのDebuggerタブでVector catch: Trueに変更して
84     下さい。
85
86   * PropertiesのC/C++ BuildでGenerate Makefiles automaticallyの
87     チェックを外して下さい。
88     これによりLPCXpressoは外部Makefileを参照するようになります。
89
90   * PropertiesのC/C++ BuildでBuild directoryからDebugとReleaseを削除
91     して下さい。
92     これによりプロジェクトのルートディレクトリを参照する形になり
93     Makefileとの整合性が確保されます。
94
95     システムログがUART0(LPCXpressoの21, 22ピンに相当)に出力されます。
96     LPCXpressoの21番ピンはLPC1768のP0[1]/TXD0/AD0[7]ピンに接続されて
97     います。
98     同様に22番ピンはLPC1768のP0[3]/RXD0/AD0[6]ピンに接続されています。
99
100     シリアルポートの設定はボーレート57600、8ビット、ノンパリティ、
101     ストップビット1です。
102
103  ビルドが完了したらDebug 'TOPPERS-ASP_LPCXpresso-LPC1768'でデバッグ
104  できます。
105  Resume, Suspendがソースコード表示と共に楽しめます。
106
107 4. 最後に
108  今回の対応は既存のTOPPERS/ASPのビルドの枠組みを超えない形で行ないました。
109  本来であれば、LPCXpresso上のプリビルドやポストビルドを駆使してカーネルに
110  対するコンフィギュレーションなどを行うのが筋ですが、先に述べたとおり早めの
111  公開を目指して割愛したものです。
112
113  もし、何かシンプルな方法でコンフィギュレータまでを包括的に処理させることが
114  できる方法を思いついた場合、是非ご一報頂ければと思います。
115