Ejemplo n.º 1
0
/**
 * \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);
}
Ejemplo n.º 2
0
/**
 * \ingroup SIOAPI
 * \brief シリアル・オープン
 * \param siopid SIOを識別する番号。1から TNUM_PORTまでの整数
 * \param exinf 拡張情報。コールバックを呼ぶときに引数として渡す
 * \details
 * シリアル・ペリフェラルを初期化する。ペリフェラルはプロトコル、スピードなどの
 * 設定を終え、割り込み禁止状態で待機する。この関数に続いて sio_ena_cbrが
 * 呼び出される。
 *
 * 引数extinfで渡される情報を処理する必要はない。この引数はそのまま
 * sio_irdy_sndおよび sio_irdy_rcvコールバックに渡される。
 *
 * プロトコルは8bit, 1stopbit, parityなしに決めうちしていい。
 */
SIOPCB *sio_opn_por(ID siopid, intptr_t exinf)
{
	SIOPCB* siopcb;

	if (siopid > TNUM_PORT) {
		return NULL;
	}

	siopcb = GET_SIOPCB(siopid);
	siopcb->exinf = exinf;

	target_uart_init(siopid);

	return siopcb;
}
Ejemplo n.º 3
0
void target_early_init(void)
{
#if WITH_DEBUG_UART
	target_uart_init();
#endif
}