SUZAKU-VでTOPPERS/ASPを動かす#1の続きです。 ここよりTOPPERS/ASP TESC版の移植を進めます。
今回はTECS対応版を使用します。
コンポーネント対応をしておくと、今後の機能変更が容易になると期待できます。
また、現在のASPは今後TECSに統合していくとのことですし。
$ cd /suzakuv $ tar xvfz tecs_package-20090728.tar.gz
$ cd /suzakuv/tecs_package/asp+tecs/target $ cp -r mindstorms_nxt_gcc suzakuv_gcc $ cd /suzakuv/tecs_package/asp+tecs $ cp -r sample sample_suzakuv $ ln -s ../bin/tecsgen.exe tecsgen.exe
$ cd /suzakuv/tecs_package/asp+tecs/arch $ cp -r arm_gcc ppc_gcc $ cd ppc_gcc $ mv at91sam7s ppc405
(■■以下見直し中■■)
105: #tecsgen.exeを利用する場合 >106: #TECSGEN_CPP = 'gcc -E -D TECS' 107: #cygwinのgccがシンボリックリンクの場合は、 108: #下記のようにシンボリックリンク先(gcc-3,gcc-4など)を直接指定する必要がある. 109: #TECSGEN_CPP = 'gcc-3 -E -D TECS' 110: #TECSGEN_CPP = 'gcc-4 -E -D TECS' >111: TECSGEN_CPP = 'powerpc-suzakuv-elf-gcc -E -D TECS' 112: TECSGEN = $(SRCDIR)/tecsgen -c $(TECSGEN_CPP) -k euc (省略) 224 # 225 # ターゲットファイル(複数を同時に選択してはならない) 226 # >227 #all: $(OBJFILE) >228 all: $(OBJNAME).bin 229 #all: $(OBJNAME).srec
114: INCLUDE target/macosx_gcc/MANIFEST 115: INCLUDE target/at91skyeye_gcc/MANIFEST >116: INCLUDE target/suzakuv_gcc/MANIFEST 117: INCLUDE arch/arm_gcc/MANIFEST 118: INCLUDE arch/gcc/MANIFEST 119: INCLUDE arch/logtrace/MANIFEST >120: INCLUDE arch/powerpc_gcc/MANIFEST 121: # INCLUDE cfg/MANIFEST 122: # INCLUDE test/MANIFEST 123: # INCLUDE extension/MANIFEST
macosx.h → suzakuv.h tPutLogMacOSX.c → tPutLogSuzakuV.c tPutLogMacOSX.cdl → tPutLogSuzakuV.cdl tSIOPortMacOSX.c → tSIOPortSuzakuV.c tSIOPortMacOSX.cdl → tSIOPortSuzakuV.cdl tSIOPortMacOSX.h → tSIOPortSuzakuV.h続いて各ファイルでmacosx,MacOSX,MACOSX,Mac OS Xになっている所を、それぞれsuzakuv,SuzakuV,SUZAKUV,Suzaku-Vに一括変換します。
E_PACKAGE Makefile.target MANIFEST suzakuv.h target.tf target_check.tf target_config.c target_config.h target_kernel.h target_sil.h target_stddef.h target_syssvc.h target_syssvc_decl.cdl target_syssvc_inst.cdl target_test.h target_timer.c target_timer.h target_user.txt tPutLogSuzakuV.c tPutLogSuzakuV.cdl tSIOPortSuzakuV.c tSIOPortSuzakuV.cdl tSIOPortSuzakuV.h
$ export PATH=/suzakuv/bin:/suzakuv/gcc/bin:$PATH ←Cygwin起動後に1回実行 $ cd /suzakuv/tecs_package/asp+tecs $ mkdir obj $ cd obj $ perl ../configure -T suzakuv_gcc -A tSample1 -t sample_suzakuv $ make all ../tecsgen -c 'powerpc-suzakuv-elf-gcc -E -D TECS' -k euc -R -D TECS -D TECS_CPP \ -I. -I./ gen -I../tecs_kernel -I../include -I../arch -I.. -I../target/suzakuv_gcc tSample1.cdl tecsgen version 1.0.0.6 copyright(c) 2008-2009, TOPPERS project warning: ../include/kernel.cdl: line 644 p_block pointer level mismatch warning: ../include/kernel.cdl: line 645 p_block pointer level mismatch warning: ../include/kernel.cdl: line 646 p_block pointer level mismatch warning: ../target/suzakuv_gcc/tSIOPortSuzakuV.cdl: line 35 char: obsolete type. use char_t 4 warnings touch tecs.timestamp ../cfg/cfg/cfg --pass 1 --kernel asp -I. -I./gen -I../tecs_kernel -I../include - I../arch -I.. -I../target/suzakuv_gcc --api-table ../kernel/kernel_api.csv --cf g1-def-table ../kernel/kernel_def.csv --cfg1-def-table ../target/suzakuv_gcc/ta rget_def.csv tSample1.cfg gcc -c -Wall -g -O2 -I. -I./gen -I../tecs_kernel -I../include -I../arch -I.. -I../target/suzakuv_gcc -DALLFUNC -I../kernel cfg1_out.c In file included from ../kernel/kernel_impl.h:82, from ../kernel/kernel_int.h:53, from cfg1_out.c:3: ../target/suzakuv_gcc/target_config.h:112:2: error: #error architecture not supported In file included from ../kernel/kernel_impl.h:82, from ../kernel/kernel_int.h:53, from cfg1_out.c:3: ../target/suzakuv_gcc/target_config.h: In function 'sense_context': ../target/suzakuv_gcc/target_config.h:195: error: 'stack_t' undeclared (first use in this function) ../target/suzakuv_gcc/target_config.h:195: error: (Each undeclared identifier is reported only once ../target/suzakuv_gcc/target_config.h:195: error: for each function it appears in.) ../target/suzakuv_gcc/target_config.h:195: error: expected ';' before 'ss' ../target/suzakuv_gcc/target_config.h:197: warning: implicit declaration of function 'sigaltstack' ../target/suzakuv_gcc/target_config.h:197: error: 'ss' undeclared (first use in this function) ../target/suzakuv_gcc/target_config.h:198: error: 'SA_ONSTACK' undeclared (first use in this function) ../target/suzakuv_gcc/target_config.h: In function 'x_probe_int': ../target/suzakuv_gcc/target_config.h:374: warning: implicit declaration of function 'sigpending' ../target/suzakuv_gcc/target_config.h: In function 'x_define_inh': ../target/suzakuv_gcc/target_config.h:504: error: 'SA_ONSTACK' undeclared (first use in this function) ../target/suzakuv_gcc/target_config.h:507: warning: implicit declaration of function 'sigaction' ../target/suzakuv_gcc/target_config.h: In function 'x_define_exc': ../target/suzakuv_gcc/target_config.h:525: error: 'struct sigaction' has no member named 'sa_sigaction' ../target/suzakuv_gcc/target_config.h:526: warning: 'struct __siginfo' declared inside parameter list ../target/suzakuv_gcc/target_config.h:526: warning: its scope is only this definition or declaration, which is probably not what you want ../target/suzakuv_gcc/target_config.h:527: error: 'SA_ONSTACK' undeclared (first use in this function) ../target/suzakuv_gcc/target_config.h:527: error: 'SA_SIGINFO' undeclared (first use in this function) ../target/suzakuv_gcc/target_config.h:527: error: 'SA_NODEFER' undeclared (first use in this function) ../target/suzakuv_gcc/target_config.h: In function 'exc_sense_context': ../target/suzakuv_gcc/target_config.h:581: error: 'ucontext_t' undeclared (first use in this function) ../target/suzakuv_gcc/target_config.h:581: error: expected expression before ')' token ../target/suzakuv_gcc/target_config.h: In function 'exc_get_sigmask': ../target/suzakuv_gcc/target_config.h:590: error: 'ucontext_t' undeclared (first use in this function) ../target/suzakuv_gcc/target_config.h:590: error: expected expression before ')' token gen/tecsgen.cfg: At top level: gen/tecsgen.cfg:5: error: 'SIGSTKSZ' undeclared here (not in a function) ../target/suzakuv_gcc/unix_sigio.cfg:13: error: 'SIGIO' undeclared here (not in a function) tSample1.cfg:15: error: 'SIGINFO' undeclared here (not in a function) make: *** [cfg1_out.o] Error 1tecsgenとcfgは無事動作しているようです。この結果を元に修正していきます。
warning: ../include/kernel.cdl: line 644 p_block pointer level mismatch warning: ../include/kernel.cdl: line 645 p_block pointer level mismatch warning: ../include/kernel.cdl: line 646 p_block pointer level mismatch次の警告については修正します。
warning: ../target/suzakuv_gcc/tSIOPortSuzakuV.cdl: line 35 char: obsolete type. use char_t/suzakuv/tecs_package/asp+tecs/target/suzakuv_gcc/tSIOPortSuzakuV.cdlを修正します。
34: attr { >35: char_t *path; /* ファイルのパス名 */ 36: };
../target/suzakuv_gcc/target_config.h:112:2: error: #error architecture not supportedtarget_config.h内でプロセッサを判定していますが、これは PowerPC Mac と Intel Mac の切り替えだと思われるので、ばっさり修正。
94: /* 95: * アーキテクチャ(プロセッサ)依存の定義 96: */ 97: #define JMPBUF_PC 21 /* jmp_buf中でのPCの位置 */ 98: #define JMPBUF_SP 0 /* jmp_buf中でのSPの位置 */ 99: #define TASK_STACK_MERGIN 4U 100: #define DEFAULT_ISTKSZ SIGSTKSZ /* シグナルスタックのサイズ */ 101: 102: /* 103: * 標準の割込み管理機能の初期化を行わないための定義 104: */
Total:2610 Today:2 Yesterday:0