/* hello.cfg */ INCLUDE(\"hello.h\"); CRE_TSK(HELLO_TASK, { TA_HLNG | TA_ACT, 0, hello_task, 5, 0x1000, NULL }); /* 以下、カーネル依存の設定 */
/* hello.h */ #ifdef __cplusplus extern "C" { #endif void hello_task(VP_INT); #ifdef __cplusplus } #endif
/* hello.cpp */ #include <toppers/task.hpp> #include <toppers/trace.hpp> #include "hello.h" #include "kernel_id.h" class hello_body : public topper::task_body<> { public: explicit hello_body(VP_INT exinf) : toppers_task_body<>(exinf) { } void run() { using namespace topper; syslog_tracer<> tr; tr << "Hello, World!" << endl; } } void hello_task(VP_INT exinf) { toppers::task_entry<hello_body>(exinf); }
以下にサンプルプログラムの使用方法を記す。 サンプルプログラムは Cygwin 環境でメイクすることを前提としている。
作業用のディレクトリを ~/work とした場合、カーネルとラッパライブラリをその下に展開する。 すなわち、~/work/jsp (または ~/work/fi4 )および ~/work/c++api というディレクトリ構成にする。 また、メイクのためのディレクトリを ~/work/build とする。
ここでは、最初の時点でサポートされている SH3 / MS7727CP01 をターゲットとして使用することにする。
$ cd ~/work/build $ ../jsp/configure -C sh3 -S ms7727cp01 -l c++ -d ../c++api/sample -A sample1 (ここで必要なファイルがコピーされる) $ make depend (予めコンフィギュレータをメイクしておかないと、ここでエラーが発生する) $ make
上記の手順を実行することで、 jsp.exe および jsp.srec が生成される。 以降の手順は JSP のサンプルプログラムの扱いと同様である。