/* * ターゲット依存の初期化 */ void target_initialize(void) { uint32_t reg; /* * チップ依存の初期化 */ chip_initialize(); /* * Emulation Baseboardの割込みモードの設定 */ sil_wrw_mem(EB_SYS_LOCK, EB_SYS_LOCK_UNLOCK); /* ロック解除 */ reg = sil_rew_mem(EB_SYS_PLD_CTRL1); reg &= ~EB_SYS_PLD_CTRL1_INTMODE_MASK; reg |= EB_SYS_PLD_CTRL1_INTMODE_NEW_NODCC; sil_wrw_mem(EB_SYS_PLD_CTRL1, reg); sil_wrw_mem(EB_SYS_LOCK, EB_SYS_LOCK_LOCK); /* ロック */ /* * UARTを初期化 */ #ifndef TOPPERS_OMIT_TECS tPutLogCT11MPCore_initialize(); #endif /* TOPPERS_OMIT_TECS */ }
/** * \brief ターゲット依存部 初期化処理 * \details * sta_ker() の中から呼び出されてターゲットのハードウェアの初期化を行う。この関数の中では * PLLの初期化やペリフェラル・ピンの初期化などを行う。 */ void target_initialize(void) { /* * チップ依存部の初期化。この呼び出しは削除してはいけない。 */ chip_initialize(); /* Flash Accelerator を初期化。100MHz動作に対応 */ LPC_SC->FLASHCFG = 0x403a; /* * プロセッサクロックの初期化 */ // PLLの設定 (2 * 50 * 4MHz)/1/4 = 100MHz initPLL0( eIrc, // pllClockSource_type clkSrc, 0, // unsigned int isMainOsc20MHzMore, 1, // unsigned int N, 50, // unsigned int M, 4 // unsigned int cpuClkDiv ); /* * SIOポートの初期化 * * 以下のコードは、SIO_PORTIDの値に応じて自動的にピン・コンフィギュレーションを行うが、 * これはLPC1768の一部機能に過ぎないことに注意。LPC1768は、UART1や2の割り当て先を複数 * 種類持っている。以下のコードはそれらのうちの一つに対応しているにすぎない。必要に応じて * アプリケーション・プログラマが書き換えて使うこと。 */ #if (SIO_PORTID==1) /* Port0.2,3 ピンをUART0に割り当てる。*/ LPC_PINCON->PINSEL0 |= PINSEL_UART0_TX | PINSEL_UART0_RX; #elif (SIO_PORTID==2) /* Port2.0,1 ピンをUART1に割り当てる。*/ LPC_PINCON->PINSEL4 |= PINSEL_UART1_TX | PINSEL_UART1_RX; #elif (SIO_PORTID==3) /* Port0.10,11 ピンをUART2に割り当てる。*/ LPC_PINCON->PINSEL0 |= PINSEL_UART2_TX | PINSEL_UART2_RX; /* UART2 の電源をオンにする */ LPC_SC->PCONP |= PCUART2; #elif (SIO_PORTID==4) /* Port0.0,1 ピンをUART3に割り当てる。*/ LPC_PINCON->PINSEL0 |= PINSEL_UART3_TX | PINSEL_UART3_RX; /* UART3 の電源をオンにする */ LPC_SC->PCONP |= PCUART3; #else #error "SIO_PORTID NOT Supported" #endif /* * バナー出力用のシリアル初期化 */ target_uart_init(SIO_PORTID); }