LPC800 (10) mbed (3) ライブラリ作成2013年06月30日 10時06分10秒

RealView gnu compiler command-line option
別のターゲットで試す前に調べてみた。
答えは意外なことに身近な所にあった。
それは µVision4 の Help の中。


command-line option として
"--gnu”
を与えればよい。


というわけで、 RealView を使えば問題なくライブラリができてターゲットファイル群とリンクできることになった。


それはいいんだけど、今の所 RealView は使っていないのでやはり gcc で何とかしたい。
TOOLCHAIN_GCC_CS の中の sys.cpp を sys.c にしてみた。
region `ram' overflowed by 96 bytes
やはりエラーだ。
rom の容量オーバーはなくなり、ram もあと少しというところまできた。


次に、 sys.c をプロジェクトから外してみた。
エラーにはならない。
なくてもいい物なのか?
ついでにライブラリもリンクしてみる。(まだライブラリはコールしていない。)
問題ない。
書き込んでみる。(今回は lpc21isp を使った[lpc21isp.exe -wipe -hex !H com1 230400 12000])
動いている。
おお!とうとうここまできた。
あとはライブラリを使って動かしてみることだ。


参照:mbed
環境: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
    + mbed SDK
    + lpc21isp Version 1.92

LPC800 (11) mbed (4) ライブラリを使う 12013年06月30日 16時52分23秒

mbed CMSIS の TARGET 部分も動いて、mbed ライブラリもできたとなると次は全体の動作確認だ。
まず main.c に読み込むヘッダーを mbed.h にしてみる。

 




../../api/platform.h(25): error: fatal error: cstddef: No such file or directory


エラーだ。ヘッダーファイルを見つけられない。
拡張子を変えて main.cpp にする。


./test_lpc810_out/test_lpc810.elf section `.text' will not fit in region `rom'
./test_lpc810_out/test_lpc810.elf section `.data' will not fit in region `ram'
region `rom' overflowed by 6592 bytes
region `ram' overflowed by 1192 bytes
sbrk.c:(.text+0x34): undefined reference to `__cs3_heap_limit'


容量オーバーした上に __cs3_heap_limit が見つからないらしい。
簡単にはいかないのね...


次に main.cpp を RealView で試す。
エラーは出ない。
書き込んでみると...
動かない。


踏んだり蹴ったりの結果だ。
さて、どうしよう?


参照:mbed
環境: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
    + mbed SDK
    + lpc21isp Version 1.92