LPC800 (10) mbed (3) ライブラリ作成 ― 2013年06月30日 10時06分10秒
別のターゲットで試す前に調べてみた。
答えは意外なことに身近な所にあった。
それは µ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
答えは意外なことに身近な所にあった。
それは µ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) ライブラリを使う 1 ― 2013年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
まず 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
最近のコメント