cd jsp/cfg make depend make
mkdir akih8 //適当なディレクトリ cd akih8 ../configure -C h8 -S akih8_3069fsample1.hとsample1.cが生成される。sample1.cは下記の機能を持つ
/* * サンプルプログラム(1)の本体 * * JSPカーネルの基本的な動作を確認するためのサンプルプログラム. * * プログラムの概要: * * ユーザインタフェースを受け持つメインタスク(タスクID: MAIN_TASK, * 優先度: MAIN_PRIORITY)と,三つの並列実行されるタスク(タスクID: * TASK1〜TASK3,初期優先度: MID_PRIORITY)で構成される.また,起動周 * 期が2秒の周期ハンドラ(周期ハンドラID: CYCHDR1)を用いる. * * 並列実行されるタスクは,task_loop 回空ループを実行する度に,タスク * が実行中であることをあらわすメッセージを表示する. * * 周期ハンドラは,三つの優先度(HIGH_PRIORITY,MID_PRIORITY, * LOW_PRIORITY)のレディキューを回転させる.プログラムの起動直後は, * 周期ハンドラは停止状態になっている. * * メインタスクは,シリアルI/Oポートからの文字入力を行い(文字入力を * 待っている間は,並列実行されるタスクが実行されている),入力された * 文字に対応した処理を実行する.入力された文字と処理の関係は次の通り. * Control-C または 'Q' が入力されると,プログラムを終了する. * * '1' : 以降のコマンドは TASK1 に対して行う. * '2' : 以降のコマンドは TASK2 に対して行う. * '3' : 以降のコマンドは TASK3 に対して行う. * 'a' : タスクを act_tsk により起動する. * 'A' : タスクに対する起動要求を can_act によりキャンセルする. * 'e' : タスクに ext_tsk を呼び出させ,終了させる. * 't' : タスクを ter_tsk により強制終了する. * '>' : タスクの優先度を HIGH_PRIORITY にする. * '=' : タスクの優先度を MID_PRIORITY にする. * '<' : タスクの優先度を LOW_PRIORITY にする. * 'G' : タスクの優先度を get_pri で読み出す. * 's' : タスクに slp_tsk を呼び出させ,起床待ちにさせる. * 'S' : タスクに tslp_tsk(10秒) を呼び出させ,起床待ちにさせる. * 'w' : タスクを wup_tsk により起床する. * 'W' : タスクに対する起床要求を can_wup によりキャンセルする. * 'l' : タスクを rel_wai により強制的に待ち解除にする. * 'u' : タスクを sus_tsk により強制待ち状態にする. * 'm' : タスクの強制待ち状態を rsm_tsk により解除する. * 'M' : タスクの強制待ち状態を frsm_tsk により強制解除する. * 'd' : タスクに dly_tsk(10秒) を呼び出させ,時間経過待ちにさせる. * 'x' : タスクにパターン 0x0001 の例外処理を要求する. * 'X' : タスクにパターン 0x0002 の例外処理を要求する. * 'y' : タスクに dis_tex を呼び出させ,タスク例外を禁止する. * 'Y' : タスクに ena_tex を呼び出させ,タスク例外を許可する. * 'r' : 三つの優先度(HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY)の * レディキューを回転させる. * 'c' : 周期ハンドラを動作させる. * 'C' : 周期ハンドラを停止させる. * 'z' : CPU例外を発生させる. * 'Z' : CPUロック状態でCPU例外を発生させる(プログラムを終了する). * 'V' : vxget_tim で性能評価用システム時刻を2回読む. * 'v' : 発行したシステムコールを表示する(デフォルト). * 'q' : 発行したシステムコールを表示しない. */
cd jsp/tinet/cfg make
cd jsp/nserv make tinet make depend make
以下のエラーが出た
h8300-hms-gcc -c -mh -mint32 -mrelax -O2 -DLABEL_ASM -DSUPPORT_INET4 -DSUPPOR T_ETHER -DSUPPORT_TCP -DSUPPORT_UDP -DCPU_CLOCK=20000000 -DUSE_TCP_NON_BLOCKING -DUSE_UDP_NON_BLOCKING -DUSE_TCP_ECHO_CLI -DUSE_UDP_ECHO_CLI -DUSE_TCP_DISCARD_C LI -DUSE_UDP_DISCARD_CLI -DUSE_TCP_ECHO_SRV2 -DNUM_WWW_SRV_TASKS=2 -DNUM_TCP_ECHO_SRV_TASKS=8 -DAKI_MONITOR -I. -I../include -I../tinet/netd ev/if_ed -I../tinet -I../config/h8/akih8_3069f -I../config/h8 -Wall -Werror ../t inet/netapp/tcp_echo_srv2.c ../tinet/netapp/tcp_echo_srv2.c: In function `callback_nblk_tcp_echo_srv': ../tinet/netapp/tcp_echo_srv2.c:151: warning: comparison between signed and unsi gned ../tinet/netapp/tcp_echo_srv2.c:191: warning: comparison between signed and unsi gned make: *** [tcp_echo_srv2.o] Error 1 [kaneko@g5 nserv]$
変数型のキャストを追加して・・・(kanekoでマーク)
h8300-hms-gcc -mh -mint32 -mrelax -O2 -DLABEL_ASM -DSUPPORT_INET4 -DSUPPORT_E THER -DSUPPORT_TCP -DSUPPORT_UDP -DCPU_CLOCK=20000000 -DUSE_TCP_NON_BLOCKING -DU SE_UDP_NON_BLOCKING -DUSE_TCP_ECHO_CLI -DUSE_UDP_ECHO_CLI -DUSE_TCP_DISCARD_CLI -DUSE_UDP_DISCARD_CLI -DUSE_TCP_ECHO_SRV2 -DNUM_WWW_SRV_TASKS=2 -DNUM_T CP_ECHO_SRV_TASKS=8 -DAKI_MONITOR -I. -I../include -I../tinet/netdev/if_ed -I../tinet -I../config/h8/akih8_3069f -I../config/h8 -nostdlib -Wl,-Map,jsp.ma p -T ../config/h8/akih8_3069f/debug.ld -o jsp.exe \ start.o nserv.o netapp_subr.o dbg_cons.o wwws.o udp_echo_cli.o udp_echo_srv.o udp_discard_cli.o tcp_echo_cli.o tcp_discard_srv.o tcp_discard_cl i.o tcp_echo_srv2.o ping.o net_buf.o net_count.o net_subr.o net_timer.o in_su br.o tinet_cfg.o route_cfg.o ip_input.o ip_output.o ip_icmp.o if.o ethernet.o if _ether.o if_ed.o tcp_input.o tcp_output.o tcp_usrreq.o tcp_subr.o tcp_timer.o ud p_input.o udp_usrreq.o udp_output.o timer.o serial.o logtask.o log_output.o vasy slog.o t_perror.o strerror.o kernel_cfg.o -lc libkernel.a -lgcc h8300-hms-nm jsp.exe > jsp.syms h8300-hms-objcopy -O srec -S jsp.exe jsp.srec ../cfg/chk -m jsp.syms,jsp.srec \ -obj -cs jsp.chk -cpu h8 -system akih8_3069f Program failed in its process by following reason. [Internel error] Memory read with unmapped address make: *** [jsp.exe] Error 1 [kaneko@g5 nserv]$
なんじゃこりゃ?
FDAU TOPPERS memo 2004/9/29 takahashi
AKI-H8/3069F-LAN CPU: H8-3069F CLK20MHz MODE5 ROM: 内蔵512KB 000000h-007FFFh RAM: 内蔵 16KB FFBF20h-FFFF1Fh RAM: 外部DRAM 8bit幅 CS2 2MB 400000h-5FFFFFh RS232C: SCI0(JP1、線を引き出しDsub9を半田付け), SCI1(Dsub9) LAN: RTL8019AS 8bit幅 CS1 32B 200000h-20001Fh
binutils-2.13.2.tar.bz2 gcc-3.2.1-core.tar.bz2 h8300-hms-gcc-3.1-1.patch http://h8300-hms.sourceforge.net/ newlib-1.11.0.tar.gz gdb-5.2.1.tar.bz2
tar xfj binutils-2.13.2.tar.bz2 cd binutils-2.13.2 mkdir objdir cd objdir ../configure --prefix=/usr/local --target=h8300-hms --disable-nls make CFLAGS="-O2 -fomit-frame-pointer" all make install
export PATH=$PATH:/usr/local/bin tar xfj gcc-3.2.1-core.tar.bz2 tar xfz newlib-1.11.0.tar.gz cd gcc-3.2.1 ln -s ../newlib-1.11.0/newlib . patch -p1 < ../h8300-hms-gcc-3.1-1.patch mkdir objdir cd objdir ../configure \ --prefix=/usr/local --target=h8300-hms \ --enable-languages=c --with-newlib make CFLAGS="-O2 -fomit-frame-pointer" all make install
L62 #define TARGET_INT_BIT 32 L155 #define ARGLAST_REGNUM 1
tar xfj gdb-5.2.1.tar.bz2 cd gdb-5.2.1 mkdir objdir cd objdir ../configure --prefix=/usr/local --target=h8300-hms make CFLAGS="-O2 -fomit-frame-pointer" all make install
cd ../ mkdir akih83hms cd akih83hms ../configure -C h8 -S akih8_3069fでコンフィグレーションされる。 configureはperlスクリプトなのでperlつかえないとダメ。
make depend makeで、カーネル(jsp.exeとjsp.srec)がmakeされる。
cd ../../ mkdir akih83hms-net cd akih83hms-net ../configure -C h8 -S akih8_3069fでコンフィグレーションされる。
$ make tinet $ make depend $ makeできあがり??