OSDN Git Service

modify cortex_m0 sample
authorryuz <ryuz@users.sourceforge.jp>
Tue, 29 Mar 2011 16:32:35 +0000 (01:32 +0900)
committerryuz <ryuz@users.sourceforge.jp>
Tue, 29 Mar 2011 16:32:35 +0000 (01:32 +0900)
sample/arm/lpc1114/main.c

index fa3b3d9..351ca44 100644 (file)
 #include "kernel.h"
 
 
+#define REG_SYSPLLCTRL                 ((volatile UW *)0x40048008)
+#define REG_SYSPLLSTAT                 ((volatile UW *)0x4004800C)
+#define REG_SYSOSCCTRL                 ((volatile UW *)0x40048020)
+#define REG_SYSPLLCLKSEL               ((volatile UW *)0x40048040)
+#define REG_SYSPLLCLKUEN               ((volatile UW *)0x40048044)
+#define REG_MAINCLKSEL                 ((volatile UW *)0x40048070)
+#define REG_MAINCLKUEN                 ((volatile UW *)0x40048074)
+#define REG_SYSAHBCLKDIV               ((volatile UW *)0x40048078)
+#define REG_SYSAHBCLKCTRL              ((volatile UW *)0x40048080)
+#define REG_SSP0CLKDIV                 ((volatile UW *)0x40048094)
+#define REG_UARTCLKDIV                 ((volatile UW *)0x40048098)
+#define REG_SSP1CLKDIV                 ((volatile UW *)0x4004809C)
+#define REG_PDRUNCFG                   ((volatile UW *)0x40048238)
+
+
 /** %jp{メイン関数} */
 int main()
 {
+       volatile int v;
+       
+       /* %jp{ハードウェアの初期化} */
+       *REG_PDRUNCFG   &= 0xffffffdf;
+       *REG_SYSOSCCTRL  = 0x00000000;
+       for ( v = 0; v < 200; v++ )
+               ;
+       *REG_SYSPLLCLKSEL = 0x00000000;
+       *REG_SYSPLLCLKUEN = 0x00000001;
+       *REG_SYSPLLCLKUEN = 0x00000000;
+       *REG_SYSPLLCLKUEN = 0x00000001;
+       while ( !(*REG_SYSPLLCLKUEN & 0x00000001) )
+               ;
+       *REG_SYSPLLCTRL  = 0x00000023;
+       *REG_PDRUNCFG   &= 0xffffff7f;
+       while ( !(*REG_SYSPLLSTAT & 0x00000001) )
+               ;
+       *REG_MAINCLKSEL = 0x00000003;
+       *REG_MAINCLKUEN = 0x00000001;
+       *REG_MAINCLKUEN = 0x00000000;
+       *REG_MAINCLKUEN = 0x00000001;
+       while ( !(*REG_MAINCLKUEN & 0x00000001) )
+               ;
+       *REG_SYSAHBCLKDIV  = 0x00000001;
+       *REG_SYSAHBCLKCTRL = 0x0001ffff;
+       *REG_SSP0CLKDIV    = 0x00000001;
+       *REG_UARTCLKDIV    = 0x00000001;
+       *REG_SSP1CLKDIV    = 0x00000001;
+       
+       
        /* %jp{カーネルの動作開始} */
        vsta_knl();