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 * \addtogroup TOPPERS_CHIP
49 * \brief カーネル実装のチップ依存モジュール(LPC18xx汎用)
51 #include "kernel_impl.h"
54 #include "target_serial.h"
55 #include "target_syssvc.h"
59 void chip_initialize(void)
69 // Todo:ビルドは通るがPLLの設定が正しいか確認
71 pllClockSource_type clkSrc,
74 unsigned int cpuClkDiv
79 LPC_CGU->PLL1_CTRL = ((M-1)<<CGU_PLL1_CTRL_MSEL_Pos) // Multiplier
80 | ((N-1)<<CGU_PLL1_CTRL_NSEL_Pos) // Pre-PLL div
81 | ((clkSrc-1)<<CGU_PLL1_CTRL_CLK_SEL_Pos) // clock source
82 | CGU_PLL1_CTRL_AUTOBLOCK_Msk;
84 (!(LPC_CGU->PLL1_STAT & CGU_PLL1_STAT_LOCK_Msk)); /* PLLの準備が整うまで待つ */
86 // select PLL1 as input for M3 core
87 LPC_CGU->BASE_M3_CLK = CGU_BASE_M3_CLK_AUTOBLOCK_Msk | (0x09 << CGU_BASE_M3_CLK_CLK_SEL_Pos);
99 void chip_fput_log(char_t c)
101 /* Newlineなら、CRも追加する */
103 sio_pol_snd_chr('\r', LOGTASK_PORTID);
105 sio_pol_snd_chr(c, LOGTASK_PORTID);
108 //Todo : これが必要かどうか慎重にチェックすること。
110 * \brief 低レベルのターゲット依存の初期化
113 * CCRのSTKALIGNビットをクリアする
114 * このビットはCORTEX-M3コアがR1からR2に変化する過程で"1"に変更された。クリアしないと
115 * TOPPERS/ASPはクラッシュする。
117 void hardware_init_hook()
119 SCB->CCR &= ~SCB_CCR_STKALIGN_Msk;