LPC800 (5) LED blink (2) Keil µVision4 + GCC2013年06月13日 21時13分02秒

GUI Flash Magic
前回手に入れたサンプル (LPC810 CodeBase) をコンパイルして書き込んでみよう。
使う環境はいつもの通り
   Keil MDK-ARM V4.53
   GCC Sourcery CodeBench Lite 2012.09-63
さっそくプロジェクトを作る。
Output
 ž Create Executable
 R Create HEX File
Listing
 R Linker Listing
 R Memory Map
CC
 Define	 	__USE_CMSIS
 R Enable APCS (ARM Procedure Call Standard)
 R Support Calls between ARM and THUMB Instruction Set
 R Compile Thumb Code
 IncludePaths		.\cmsis;.\src
 MiscControls		-fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections

Assembler
 Define			
 R Enable ARM/Thumb Interworking
 Include Paths	
 MiscControls	

Linker
 R Do not use Standard System Startup Files
 R Do not use Standard System Libraries
 R Use Math Libraries
 linkerScriptFile	.\linker\LPC810_rom_gnu.ld
 IncludeLibraries	
 IncludePaths		.\linker
 MiscControls		-nostdlib -Xlinker --gc-sections

Utilities
 ž Use External Tool for Flash Programming
 Command		fm.exe
 Arguments		DEVICE($D,$X) ERASEUSED("!H",PROTECTISP) HEXFILE("!H",NOCHECKSUMS,NOFILL,PROTECTISP) COM(1,230400)


ソースをプロジェクトに登録
 main.c
 system_LPC8xx.c
 gpio.c
 mrt.c
 printf.c
 printf-retarget.c
 spi.c
 uart.c
 startup_LPC8xxG++.s



次にソースの修正
system_LPC8xx.c
System PLL Clock Source Select Register (SYSPLLCLKSEL) を System Oscillator から IRC Oscillator に変更(1を0)


コンパイル・・・・・・・・問題ない
書き込み・・・・・・・・・エラーだ!
ERROR: Invalid parameters for DEVICE directive: DEVICE(LPC810M021,12.0)


今回 Flash Magic を新しくしたのでそのせいかも知れない。
ドキュメントを読んでみると、パラメータに flashbank が増えている。
パラメータを追加して書き込み・・・・・・・・またエラーだ。
ERROR: Invalid parameters for DEVICE directive: DEVICE(LPC810M021,12.0,0)


何がいけないんだ。
GUI版では書き込みできるのでGUI版と同じデバイス名(LPC810M021FN8)を使ってみる。
書き込み・・・・・・・・・エラーだ!
ERROR: Invalid parameters for ERASEUSED directive: ERASEUSED(.\outG++\LPC810_CodeBaseS.HEX,PROTECTISP)


今度は異なる部分のパラメータだ。
分からない。


もうだめだ。
GUI版の Flash Magic で書き込むことにする。
書き込んで Reset 。


動いている。
特に問題は無いようだ。
さて、ここで動作 Clock を調べてみよう。system_LPC8xx.c の SYSPLLCTRL_Val が 0x41で SYSAHBCLKDIV_Val が 0x1なので Main CLK が 24MHz 、System clock も 24MHz ということになる。


環境:LPC800 Mini Kit (LPC810M021FN8)
    + Keil MDK-ARM V4.53
    + LPC800 Support for version 4.60 of Keil MDK-ARM
    + GCC Sourcery CodeBench Lite 2012.09-63
    + LPC810 CodeBase
    + Flash Magic Version 7.50