OSDN Git Service

LPC4330i存部のコードを追加。ビルドが通る。
[toppersasp4lpc/asp.git] / asp / arch / arm_m_gcc / lpc4300_gcc / chip_config.h
1 /*
2  *  TOPPERS/ASP Kernel
3  *      Toyohashi Open Platform for Embedded Real-Time Systems/
4  *      Advanced Standard Profile Kernel
5  * 
6  *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7  *                              Toyohashi Univ. of Technology, JAPAN
8  *  Copyright (C) 2005-2007 by Embedded and Real-Time Systems Laboratory
9  *              Graduate School of Information Science, Nagoya Univ., JAPAN
10  *  Copyright (C) 2010 by TOPPERS/ASP for LPC project
11  *              http://sourceforge.jp/projects/toppersasp4lpc/
12  * 
13  *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
14  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
15  *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
18  *      スコード中に含まれていること.
19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
20  *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
21  *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
22  *      の無保証規定を掲載すること.
23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
24  *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
25  *      と.
26  *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
27  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
28  *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
29  *        報告すること.
30  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
31  *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
32  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
33  *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
34  *      免責すること.
35  * 
36  *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
37  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
38  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
39  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
40  *  の責任を負わない.
41  * 
42  */
43
44 #ifndef TOPPERS_CHIP_CONFIG_H
45 #define TOPPERS_CHIP_CONFIG_H
46 /**
47  * \addtogroup TOPPERS_CHIP
48  * \{
49  */
50
51 /**
52  * \file chip_config.h
53  * \brief カーネル実装のチップ依存部モジュール(NXP LPC43XX用汎用)
54  * \details
55  * カーネルのターゲット依存部のインクルードファイル.kernel_impl.hのター
56  * ゲット依存部の位置付けとなす.
57  */
58
59 /*
60  * チップ依存部の読み込み
61  */
62 #include "lpc4300.h"
63
64 /*
65  *  トレースログに関する設定
66  */
67 #ifdef TOPPERS_ENABLE_TRACE
68 #include "logtrace/trace_config.h"
69 #endif /* TOPPERS_ENABLE_TRACE */
70
71
72
73
74 /**
75  * \brief 非タスクコンテキスト用スタックポインタの初期値を格納する変数
76  * \details
77  * porting.txtは、*_kernel_istkptを変数として使い、そこに非タスクコンテキスト用
78  * スタックポインタの初期値を格納することを要請している。LPC1800の場合、*_kernel_istkptの
79  * 値は、SRAM実行とROM実行で異なる。これに対応するため、LDスクリプトで例外ベクトルの先頭を
80  * 指す値、_vector_start_lmaを作り、_kernel_istkptとして使用している。
81  */
82 #define _kernel_istkpt _vector_start_lma
83
84 #ifndef DEFAULT_ISTKSZ
85 /**
86  * \brief デフォルトの非タスクコンテキスト用のスタック領域の定義
87  * \details
88  *  割り込み用のスタックのサイズを指定する。8の倍数として指定すること。このマクロは
89  *  ターゲット依存部で指定していない場合にのみ使用される。
90  */
91 #define DEFAULT_ISTKSZ                  (2048)
92 #endif
93
94
95
96 #ifndef TOPPERS_MACRO_ONLY
97
98 /**
99  * @brief PLLのクロックソース。 initPLL0に渡して使う。
100  */
101 typedef enum { eIrc, eMainOsc, eRtcOsc} pllClockSource_type;
102
103 /**
104  * @param clkSrc PLLのソースとなるクロック。0から0x10のうち一つを指定する。PLL1CTRLレジスタの解説参照
105  * @param M 逓倍比を決める整数。1から256が許される。
106  * @param N PLLのリファレンス入力の分周比を決める整数。1から4が許される
107  * @param pSel PLLの出力の分周器。1から4が許される。
108  * @details
109  * PLL0の周波数を設定する。クロックソースとなる発振器、その周波数、PLLのデバイダ、PLL後のデバイダを
110  * 指定する。生成するクロックの周波数は以下の通りとなる。CCLKがCPUのコアクロックである。
111  * @code
112  * PLLCLK = (2 × M × FIN) / N
113  * CCLK = PLLCLK / cpuClkDiv
114  * @endcode
115  * LPC1768のPLLに関しては次のような物理上限値がNXPによって定められている
116  * - 入力は32kHz - 50MHz (UM10360, section 5.1)
117  * - PLL出力は 275MHz - 550MHz (同上)
118  * - CCLKは最大100MHz (データシート)
119  *
120  * このプログラムはNXP社のCMSIS中のルーチンをコピーし、改良したものである。
121  */
122 extern void initPLL1(
123                 pllClockSource_type     clkSrc,
124                 unsigned int                    N,
125                 unsigned int                    M,
126                 unsigned int                    pSel
127         );
128
129
130 /**
131  *  \brief チップ依存の初期化
132  *  \details
133  *  この館数はtarget_initializeから呼ぶことを前提としている。
134  */
135 extern void     chip_initialize(void);
136
137 /**
138  * \brief チップの終了処理
139  * \details
140  *  システムを終了する時に使う.この関数はtarget_exit()から
141  *  呼ぶことを前提としており、prc_terminate()を呼び、処理が終了すると制御を戻す。
142  */
143 extern void     chip_exit(void);
144
145 /**
146  * \brief システムログの低レベル出力のための文字出力
147  * \param c 出力キャラクタ
148  * \details
149  * コンソールに1文字出力する。
150  */
151 extern void chip_fput_log(char_t c);
152
153
154 #endif /* TOPPERS_MACRO_ONLY */
155
156 /*
157  *  プロセッサ依存モジュール(ARM-M用)
158  */
159 #include "arm_m_gcc/common/core_config.h"
160
161 #endif /* TOPPERS_CHIP_CONFIG_H */
162
163 /**
164  * \}
165  */
166