OSDN Git Service

マルチプロジェクト型にレポジトリを変更するために移動した
[toppersasp4lpc/asp.git] / asp / chip / lpc1700_gcc / chip_user.txt
1 =====================================================================
2                 CHIP_LPC17XXチップ依存部 (asp-1.6.0対応)
3                             Last Modified: 2010/Oct/23
4 =====================================================================
5
6 このチップ依存部は、TOPPERS/ASP 1.3.2対応 CQ-STARM依存部を元に開発した。
7
8 (1) 対応しているターゲットシステムの種類・構成,バージョン番号
9
10         ・ターゲットハードウェア(ボード等)の名称と対応している構成
11                 NXP製LPC17シリーズに共有のチップ依存部
12
13         ・ターゲット略称
14                 lpc17xx_gcc
15         
16         ・ターゲット非依存部のバージョン番号
17                 1.6
18         
19         ・プロセッサ,チップ,開発環境依存部の構成とバージョン番号
20                 1.6.1
21                 
22         ・使用するPDICとバージョン番号
23                 ターゲットに選択は任せてあるが、標準でpdic/uartを用意している。
24
25 (2) 使用する開発環境と動作検証した条件(バージョン,オプション等)
26
27         ・言語処理系(コンパイラ,アセンブラ,リンカ等)
28                 gcc version 4.4.1 (Sourcery G++ Lite 2010q1-188)  
29         
30         ・デバッグ環境
31                 GNU gdb (Sourcery G++ Lite 2010q1-188) 7.0.50.20100218-cvs
32                 Open On-Chip Debugger 0.4.0 (2010-08-12-22:40)
33                 HJ/LINK USB
34
35 (3) ターゲット定義事項の規定
36 (3-1) データ型に関する規定
37 (3-2) 割込み処理に関する規定
38
39         以下の割り込みベクトル用インデックスを使用している。INHNO_XXXおよびINTNO_XXXも同じ値を持つ。
40
41 #define IRQ_VECTOR_WDT          (16+WDT_IRQn)
42 #define IRQ_VECTOR_TIMER0               (16+TIMER0_IRQn)
43 #define IRQ_VECTOR_TIMER1               (16+TIMER1_IRQn)
44 #define IRQ_VECTOR_TIMER2               (16+TIMER2_IRQn)
45 #define IRQ_VECTOR_TIMER3               (16+TIMER3_IRQn)
46 #define IRQ_VECTOR_UART0                (16+UART0_IRQn)
47 #define IRQ_VECTOR_UART1                (16+UART1_IRQn)
48 #define IRQ_VECTOR_UART2                (16+UART2_IRQn)
49 #define IRQ_VECTOR_UART3                (16+UART3_IRQn)
50 #define IRQ_VECTOR_PWM1         (16+PWM1_IRQn)
51 #define IRQ_VECTOR_I2C0         (16+I2C0_IRQn)
52 #define IRQ_VECTOR_I2C1         (16+I2C1_IRQn)
53 #define IRQ_VECTOR_I2C2         (16+I2C2_IRQn)
54 #define IRQ_VECTOR_SPI          (16+SPI_IRQn)
55 #define IRQ_VECTOR_SSP0         (16+SSP0_IRQn)
56 #define IRQ_VECTOR_SSP1         (16+SSP1_IRQn)
57 #define IRQ_VECTOR_PLL0         (16+PLL0_IRQn)
58 #define IRQ_VECTOR_RTC          (16+RTC_IRQn)
59 #define IRQ_VECTOR_EINT0                (16+EINT0_IRQn)
60 #define IRQ_VECTOR_EINT1                (16+EINT1_IRQn)
61 #define IRQ_VECTOR_EINT2                (16+EINT2_IRQn)
62 #define IRQ_VECTOR_EINT3                (16+EINT3_IRQn)
63 #define IRQ_VECTOR_ADC          (16+ADC_IRQn)
64 #define IRQ_VECTOR_BOD          (16+BOD_IRQn)
65 #define IRQ_VECTOR_USB          (16+USB_IRQn)
66 #define IRQ_VECTOR_CAN          (16+CAN_IRQn)
67 #define IRQ_VECTOR_DMA          (16+DMA_IRQn)
68 #define IRQ_VECTOR_I2S          (16+I2S_IRQn)
69 #define IRQ_VECTOR_ENET         (16+ENET_IRQn)
70 #define IRQ_VECTOR_RIT          (16+RIT_IRQn)
71 #define IRQ_VECTOR_MCPWM                (16+MCPWM_IRQn)
72 #define IRQ_VECTOR_QEI          (16+QEI_IRQn)
73 #define IRQ_VECTOR_PLL1         (16+PLL1_IRQn)
74 #define IRQ_VECTOR_USBActivity          (16+USBActivity_IRQn)
75 #define IRQ_VECTOR_CANActivity          (16+CANActivity_IRQn)
76
77 (3-3) カーネル管理外の割込みに関する規定
78 (3-4) CPU例外処理に関する規定
79 (3-5) 性能評価用システム時刻の参照に関する規定
80 (3-6) オーバランハンドラ機能拡張のサポートに関する規定
81 (3-7) その他
82
83 (4) カーネルの起動/終了処理に関する情報
84         ・用意しているスタートアップモジュールの処理内容
85                 chip_initialize()では、prc_initialize()を呼び出してプロセッサを初期化する。
86                 
87         ・hardware_init_hook
88                 SCB_CCR_STKALIGN_Mskをクリアして、例外割り込みのアライメントをCORETX-M3 rev 1に
89                 あわせている。
90                 
91         ・カーネルを終了した後の振舞い
92                 chip_exit()はprc_terminate()を呼ぶ。
93                 
94
95 (5) メモリマップ
96         ターゲット依存部で決定するので、チップ依存部はメモリマップを操作しない。
97
98 (6) タイマドライバ関連の情報
99
100         ・タイムティックの周期,その変更方法
101                 タイムティックはchip_timer.hによって変更できる。周期を変更した場合、
102                 chip_kernel.hのTIC_NUME, TIC_DENOを変更して1mSを生成する方法をカーネルに知らせる。      
103         
104         ・使用するリソース(タイマ)
105                 SYSTICKタイマーを使う。
106         
107         ・タイマ割込みの割込み優先度の変更方法
108                 chip_timer.hのINTPRI_TIMERを変更する。
109                 
110         ・オーバランタイマ割込みの割込み優先度の変更方法
111
112 (7) シリアルインタフェースドライバの情報
113
114         target_user.txtを参照。
115
116 (8) システムログ機能の情報
117
118         ・システムログの低レベル出力の実現方法
119                 target_config.hのtarget_fput_log()が使用できるよう、chip_fput_log()を用意している。
120                 
121 (9) システム構築手順
122
123         target_user.txt参照
124
125 (10) ターゲットシステム固有の注意事項
126
127 (10) 類似のターゲットにポーティングする開発者向けの参考情報
128         CORTEX-M3を使った他のチップにポーティングする場合には、以下のオブジェクトを修正する
129         
130         lpc17xx.h                               (名前をチップ識別名に変更する)
131                 CMSIS                                           インクルードするCMSISヘッダファイルを変更する
132                 TMAX_INTNO                                      最大の割り込みインデックス番号
133                 TBITW_IPRI                                      NVICの割り込み優先順位のビット幅
134                 TBITW_SUBIPRI                           NVICのサブプライオリティのビット幅
135                 割り込みベクトル番号                  チップに沿った宣言に変更する。
136                 
137         chip_config.h
138                 initPLL0()                                      PLL初期化シーケンスはチップ依存である
139                 
140         target_config.c
141                 chip_initilaize()                       初期火事にチップ依存の特殊処理が必要なら変更する
142                 chip_exit()                             終了時にチップ依存の特殊処理が必要なら変更する
143                 chip_fput_log()                 使用するSIOドライバが変わるなら変更する
144                 initPLL0()                                      PLL初期化シーケンスはチップ依存である
145                 hardware_init_hook              チップに強く依存するので必ず変更する
146                 
147         chip_stddef.h
148                 TOPPERS_CHIP_LPC17XX            ターゲット識別マクロ。ターゲット識別名を大文字にし、頭に
149                                                                         TOPPERS_CHIP_をつける。
150                         
151         chip_syssvc.h
152                 SIO_UART_CLOCK                  pdc/uartを使用する場合、UARTに入力されるクロックの周波数を宣言する
153                 CHIP_COPYRIGHT                  チップ依存部の著作権表示文字列
154                 
155         chip_timer.h
156                 TIMER_CLOCK                             CPUクロックとタイマー周期の比
157
158         LPC1700では、SYS_CLOCKを「CPUコアへの入力」としているが、チップによっては「PLLの出力」とする
159         ほうがよい。
160
161 (12) ディレクトリ構成・ファイル構成
162         target_user.txtを参照。
163
164 (13) バージョン履歴
165
166 2010/Oct/23
167         ver 1.6.0
168
169
170
171
172