3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Advanced Standard Profile Kernel
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/
13 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
14 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
15 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
16 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
17 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
19 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
20 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
21 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
23 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
24 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
26 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
27 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
28 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
30 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
31 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
32 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
33 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
36 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
37 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
38 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
39 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
44 #ifndef TOPPERS_CHIP_CONFIG_H
45 #define TOPPERS_CHIP_CONFIG_H
47 * \addtogroup TOPPERS_CHIP
53 * \brief カーネル実装のチップ依存部モジュール(NXP LPC43XX用汎用)
55 * カーネルのターゲット依存部のインクルードファイル.kernel_impl.hのター
67 #ifdef TOPPERS_ENABLE_TRACE
68 #include "logtrace/trace_config.h"
69 #endif /* TOPPERS_ENABLE_TRACE */
75 * \brief 非タスクコンテキスト用スタックポインタの初期値を格納する変数
77 * porting.txtは、*_kernel_istkptを変数として使い、そこに非タスクコンテキスト用
78 * スタックポインタの初期値を格納することを要請している。LPC1800の場合、*_kernel_istkptの
79 * 値は、SRAM実行とROM実行で異なる。これに対応するため、LDスクリプトで例外ベクトルの先頭を
80 * 指す値、_vector_start_lmaを作り、_kernel_istkptとして使用している。
82 #define _kernel_istkpt _vector_start_lma
84 #ifndef DEFAULT_ISTKSZ
86 * \brief デフォルトの非タスクコンテキスト用のスタック領域の定義
88 * 割り込み用のスタックのサイズを指定する。8の倍数として指定すること。このマクロは
89 * ターゲット依存部で指定していない場合にのみ使用される。
91 #define DEFAULT_ISTKSZ (2048)
96 #ifndef TOPPERS_MACRO_ONLY
99 * @brief PLLのクロックソース。 initPLL0に渡して使う。
101 typedef enum { eIrc, eMainOsc, eRtcOsc} pllClockSource_type;
104 * @param clkSrc PLLのソースとなるクロック。0から0x10のうち一つを指定する。PLL1CTRLレジスタの解説参照
105 * @param M 逓倍比を決める整数。1から256が許される。
106 * @param N PLLのリファレンス入力の分周比を決める整数。1から4が許される
107 * @param pSel PLLの出力の分周器。1から4が許される。
109 * PLL0の周波数を設定する。クロックソースとなる発振器、その周波数、PLLのデバイダ、PLL後のデバイダを
110 * 指定する。生成するクロックの周波数は以下の通りとなる。CCLKがCPUのコアクロックである。
112 * PLLCLK = (2 × M × FIN) / N
113 * CCLK = PLLCLK / cpuClkDiv
115 * LPC1768のPLLに関しては次のような物理上限値がNXPによって定められている
116 * - 入力は32kHz - 50MHz (UM10360, section 5.1)
117 * - PLL出力は 275MHz - 550MHz (同上)
118 * - CCLKは最大100MHz (データシート)
120 * このプログラムはNXP社のCMSIS中のルーチンをコピーし、改良したものである。
122 extern void initPLL1(
123 pllClockSource_type clkSrc,
133 * この館数はtarget_initializeから呼ぶことを前提としている。
135 extern void chip_initialize(void);
140 * システムを終了する時に使う.この関数はtarget_exit()から
141 * 呼ぶことを前提としており、prc_terminate()を呼び、処理が終了すると制御を戻す。
143 extern void chip_exit(void);
146 * \brief システムログの低レベル出力のための文字出力
151 extern void chip_fput_log(char_t c);
154 #endif /* TOPPERS_MACRO_ONLY */
157 * プロセッサ依存モジュール(ARM-M用)
159 #include "arm_m_gcc/common/core_config.h"
161 #endif /* TOPPERS_CHIP_CONFIG_H */