ARMのgcc環境を構築する
Chumbyの開発に使うgcc環境を整備する。
標準の開発環境は、
http://wiki.chumby.com/mediawiki/index.php/GNU_Toolchain
からダウンロードできるが、x86のLinux専用。
http://omake.accense.com/wiki/ChumbyRebuildToolchain
とかちょっと期待したが結局もとのバイナリは同じ...
MacOSXとWindowsでも開発できるようにしたいので、同バージョンを自前で用意する。
実際何が必要なのかよくわかってないが、とりあえずgccとbinutilsをARMで用意してみましょう。
手順はTOPPERS/JSPのgnu_install.txtを参考にしています。
binutils
http://ring.riken.jp/archives/GNU/binutils/binutils-2.18.tar.bz2
seiryu$ cd /Users/seiryu/Projects/Chumby/tools/ seiryu$ mkdir arm9_binutils seiryu$ cd arm9_binutils seiryu$ ../binutils-2.18/configure --prefix=/User/seiryu/Projects/Chumby/tools --target=arm-elf --disable-nls seiryu$ make seiryu$ sudo make install
gcc
seiryu$ cd gcc-4.1.2 seiryu$ ln -s ../newlib-1.16.0/newlib . seiryu$ cd .. seiryu$ mkdir arm9_gcc seiryu$ cd arm9_gcc seiryu$ ../gcc-4.1.2/configure --target=arm-elf --prefix=/User/seiryu/Projects/Chumby/tools/ --with-gnu-as --with-gnu-ld --with-newlib --with-headers=../newlib-1.16.0/newlib/libc/include seiryu$ make CC='cc -no-cpp-precomp' CFLAGS="-O2 -fomit-frame-pointer" all seiryu$ sudo make install
makeでエラーがでた。
make[3]: arm-elf-ar: Command not found make[3]: *** [libgcc.a] Error 127 make[2]: *** [stmp-multilib] Error 2 make[1]: *** [all-gcc] Error 2 make: *** [all] Error 2
見出し
小見出し
小々見出し
C++言語
class non_multitask_test { int* x_; public: non_multitask_test() : x_(new int(12345)) // カーネル非動作状態でのnew演算子 { } ~non_multitask_test() { if (*x_== 12345) syslog(LOG_NOTICE,"non-multitask test succeeded"); else syslog(LOG_NOTICE,"non-multitask test failed"); delete x_; // カーネル非動作状態でのdelete演算子 x_ = 0; } } test;
@implementation ClockWindow - (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag { NSWindow* result = [super initWithContentRect:contentRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO]; [result setBackgroundColor: [NSColor clearColor]]; //フローティングウィンドウにする [result setLevel: NSFloatingWindowLevel];//NSStatusWindowLevel]; [result setAlphaValue:1.0]; [result setOpaque:NO]; [result setHasShadow:NO]; [result setHidesOnDeactivate:YES]; // NSLog(@"ClockWindow:initWitContentRect"); return result; }