* SUZAKU-VでTOPPERS/ASPを動かす [#n553c242] 今回使用したSUZAKU-Vは、SZ410-U00です。また動作確認用に、LED/SWボードを使用します。~ TOPPERS/ASPはSUZAKU-S上のMicroBlaze向けにはリリースされていますが、SUZAKU-V向けにはリリースされていません。~ 今回 Xilinx Virtex-4 FX 内蔵の PowerPC405コアへの移植を試みます。 #contents ---- **TOPPERS/ASPとは [#r58bbe8c] - TOPPERS/ASPの情報は[[TOPPERSプロジェクト:http://www.toppers.jp/]]を見てください。 **開発環境の準備 [#fd53978f] + Cygwinのインストール~ [[ここ:http://sourceware.org/cygwin/]]から「Install or update now!(using setup.exe)」をクリックしてセットアップを行います。~ ~ 今回はSelect Packagesで以下のパッケージをインストールしました。 All Archive unzip 5.52-3 Devel autoconf 6-1 automake 4-1 binutils 20080624-2 flex 2.5.35-1 gcc 3.4.4-999 make 3.81-2 ruby 1.8.7-p72-2 Utils cpio 2.9-1 file 4.21-1 patch 2.5.8-9 time 1.7-2 ~ +PowerPC用ビルド環境の構築~ 次の手順で行いました。~ ~ ++ディレクトリの準備~ 次のディレクトリを作成し、カレントディレクトリに変更します。 $ mkdir /suzakuv ++binutilsのダウンロード~ [[ここ:http://ftp.gnu.org/gnu/binutils/]]からダウンロードします。~ 今回はbinutils-2.19.1.tar.gzをダウンロードし、/suzakuvに格納しました。~ ~ ++binutilsのビルド~ PowerPC用にビルドとインストールを行います。 $ cd /suzakuv $ tar xvfz binutils-2.19.1.tar.gz $ cd binutils-2.19.1 $ mkdir build $ cd build $ ../configure --target=powerpc-suzakuv-elf --prefix=/suzakuv/binutils $ make CFLAGS="-O2" $ make install シンボリックリンクを作成しておきます。 $ mkdir /suzakuv/bin $ cd /suzakuv/bin $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-addr2line.exe addr2line $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-objcopy.exe objcopy $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-ar.exe ar $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-objdump.exe objdump $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-as.exe as $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-ranlib.exe ranlib $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-c++filt.exe c++filt $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-readelf.exe readelf $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-embedspu embedspu $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-size.exe size $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-gprof.exe gprof $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-strings.exe strings $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-ld.exe ld $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-strip.exe strip $ ln -s /suzakuv/binutils/bin/powerpc-suzakuv-elf-nm.exe nm ++gccと依存ファイルのダウンロード~ gccは[[ここ:http://mirror.anl.gov/pub/gnu/gcc/]]からダウンロードします。~ 今回はgcc-4.4.0/gcc-4.4.0.tar.gzをダウンロードし、/suzakuvに格納しました。~ 依存ファイルとして、[[ここ:ftp://gcc.gnu.org/pub/gcc/infrastructure/]]から gmp-4.2.4.tar.bz2 および mpfr-2.4.1.tar.bz2 をダウンロードし、/suzakuvに格納しました。~ さらに[[ここ:ftp://sources.redhat.com/pub/newlib/index.html]]から newlib-1.17.0.tar.gz をダウンロードし、これも/suzakuvに格納しました。~ ~ ++gmpのビルド~ ビルドとインストールを行います。 $ cd /suzakuv $ tar jxf gmp-4.2.4.tar.bz2 $ cd gmp-4.2.4 $ mkdir build $ cd build $ ../configure --prefix=/suzakuv/gmp $ make CFLAGS="-O2" $ make check $ make install ++mpfrのビルド~ ビルドとインストールを行います。 $ cd /suzakuv $ tar jxf mpfr-2.4.1.tar.bz2 $ cd mpfr-2.4.1 $ mkdir build $ cd build $ ../configure --with-gmp=/suzakuv/gmp --prefix=/suzakuv/mpfr $ make CFLAGS="-O2" $ make check $ make install ++gccとnewlibのビルド~ PowerPC用にビルドとインストールを行います。 $ PATH=/suzakuv/binutils/bin:$PATH $ export PATH $ cd /suzakuv $ tar xvfz newlib-1.17.0.tar.gz $ tar xvfz gcc-4.4.0.tar.gz $ cd gcc-4.4.0 $ ln -s ../newlib-1.17.0/newlib $ ln -s ../newlib-1.17.0/libgloss $ mkdir build $ cd build $ ../configure --target=powerpc-suzakuv-elf --enable-languages=c --prefix=/suzakuv/gcc --with-gmp=/suzakuv/gmp --with-mpfr=/suzakuv/mpfr --disable-libssp --disable-libgcc --disable-ada --with-newlib --with-headers=/suzakuv/newlib-1.17.0/newlib/libc/include/ $ make CFLAGS="-O2" $ make install ビルド結果を確認。~ $ cd /suzakuv/gcc/bin $ ./powerpc-suzakuv-elf-gcc -v Using built-in specs. Target: powerpc-suzakuv-elf Configured with: ../configure --target=powerpc-suzakuv-elf --enable-languages=c --prefix=/suzakuv/gcc --with-gmp=/suzakuv/gmp --with-mpfr=/suzakuv/mpfr --disable-libssp --disable-libgcc --disable-ada --with-newlib --with-headers=/suzakuv/newlib-1.17.0/newlib/libc/include/ Thread model: single gcc version 4.4.0 (GCC) シンボリックリンクを作成しておきます。 $ cd /suzakuv/bin $ ln -s /suzakuv/gcc/bin/powerpc-suzakuv-elf-cpp.exe cpp $ ln -s /suzakuv/gcc/bin/powerpc-suzakuv-elf-gccbug gccbug $ ln -s /suzakuv/gcc/bin/powerpc-suzakuv-elf-gcc-4.4.0.exe gcc-4.4.0 $ ln -s /suzakuv/gcc/bin/powerpc-suzakuv-elf-gcov.exe gcov $ ln -s /suzakuv/gcc/bin/powerpc-suzakuv-elf-gcc.exe gcc ~ +racc環境の構築~ TOPPERS/ASPは、TECS版を使用する予定です。~ TECSの環境変更でraccを使用しますので、ここで構築しておきます。~ 次の手順で行いました。~ ~ ++ディレクトリの準備~ 今回は先ほど作成した /suzakuv を使用します。~ ~ ++raccのダウンロード~ SubVersionリポジトリ http://i.loveruby.net/svn/public/racc/trunk からダウンロードします。~ 今回はWindows上のTortoiseSVNでエクスポートし、/suzakuv/racc-1.4.5 に格納しました。~ ~ ++raccのインストール~ raccのインストールを行います。 $ cd /suzakuv/racc-1.4.5 $ ruby setup.rb **動作確認 [#wae6eec2] 簡単なプログラムを作成して、SUZAKU-V上で動かしてみます。~ ビルドしてSUZAKU-V上のLinux領域に上書きします。~ ~ ++サンプルプログラムについて~ このサンプルプログラムは、SUZAKU-V本体のLED赤を3回点滅・消灯してリブートするものです。~ SUZAKU-VのFPGAコンフィグレーションはデフォルトである必要があります。~ ~ ++ディレクトリ作成~ 次のようにします。 $ cd /suzakuv $ mkdir sample $ cd sample ++ファイル作成~ 次の2つのファイルを作成します。~ ~ 【sample.c】 #define LED_RED (0xF0FFA200) #define LED_ON (0x00000000) #define LED_OFF (0x00000001) #define SOFT_RESET (0xF0FFA000) #define REBOOT (0x00000001) /* binファイルが小さすぎてHermit-At Win32が落ちる対策 */ int a[] = {0,1,2,3}; void main(void) { int *led_red = (int*)LED_RED; int *soft_reset = (int*)SOFT_RESET; int i,j; *led_red = LED_OFF; for(i=0;i<3;i++) { for(j=0;j<100000;j++) { } *led_red = LED_ON; for(j=0;j<100000;j++) { } *led_red = LED_OFF; } *soft_reset = REBOOT; } 【Makefile】 ROOTDIR = /suzakuv PATH := $(ROOTDIR)/bin:$(PATH) CC = gcc AS = as LD = ld OBJCOPY = objcopy CFLAGS = -Wa,-m405 LDLIBS = $(ROOTDIR)/gcc/powerpc-suzakuv-elf/lib/libc.a LDFLAGS = -e main -Ttext 0x00000000 TARGET = sample BIN = $(TARGET).bin ELF = $(TARGET).elf OBJS = $(TARGET).o all: $(BIN) $(BIN): $(ELF) $(OBJCOPY) -O binary $(ELF) $(BIN) $(ELF): $(OBJS) $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS) %.o: %.c $(CC) -c $(CFLAGS) -o $@ $< clean: -rm -f *.bin *.elf *.o *.map ++プログラムのビルド~ 続いてmakeを実行します。 $ make gcc -c -Wa,-m405 -o sample.o sample.c ld -e main -Ttext 0x00000000 -o sample.elf sample.o /suzakuv/gcc/powerpc-suzakuv-elf/lib/libc.a objcopy -O binary sample.elf sample.bin ++プログラムの書き込み~ PCでターミナルソフトを起動します。ターミナルソフトの設定は次の通り。 ポート : 任意 ボーレート: 115200 データ : 8bit パリティ : なし ストップ : 1bit フロー制御: なし SUZAKU-VのJP1のみショートさせて電源に接続すると、次のメッセージが表示されます。 BBoot v2.6 (powerpc) Press 'z' or 'Z' for BBoot Menu. Hermit-At v1.1.21 (suzaku/powerpc) compiled at 18:40:14, Mar 25 2009 hermit> Harmitが起動すると、SUZAKU-VのLED赤が点灯します。~ 続いて、SUZAKU-V付属のHermit-At Win32で先ほどのsample.binを書き込みます。~ そのため一旦ターミナルを切断して、Hermit-Atの設定を次のように行います。~ Serial Port: 任意 機能 : Download Image : 上記のsample.binを選択 Region : Image ForceLocked: チェックしない この状態で実行をクリックすると、linuxの場所にsample.binが上書きされます。~ ~ ++プログラムの実行~ Hermit-At Win32を終了、再びターミナルを接続してSUZAKU-Vの電源を入れ直します。~ hermitのコマンド入力待ちになるので、bootと入力します。~ うまくいけば、SUZAKU-VのLED赤が消灯し、リブートします。~ ~ 【実行例】 BBoot v2.6 (powerpc) Press 'z' or 'Z' for BBoot Menu. Hermit-At v1.1.21 (suzaku/powerpc) compiled at 18:40:14, Mar 25 2009 hermit> boot Copying kernel............................done. (ここでLED赤が点滅・消灯、リブートします) BBoot v2.6 (powerpc) Press 'z' or 'Z' for BBoot Menu. Hermit-At v1.1.21 (suzaku/powerpc) compiled at 18:40:14, Mar 25 2009 hermit> **TOPPERS/ASPの移植・その1 [#r34c681b] 今回はTECS対応版を使用します。~ コンポーネント対応をしておくと、今後の機能変更が容易になると期待できます。~ また、現在のASPは今後TECSに統合していくとのことですし。~ +TECS対応版のダウンロード~ [[ここ:http://www.toppers.jp/tecs.html]]からダウンロードします。~ 今回はtecs_package-20090612.tar.gzをダウンロードし、/suzakuvに格納しました。~ ~ +TOPPERS/ASPの移植準備 ++アーカイブの展開~ アーカイブを展開します。 $ cd /suzakuv $ tar xvfz tecs_package-20090612.tar.gz ++ターゲット依存部の仮準備~ 付属のMacOS X版からsuzaku-v版を仮作成します。ついでにtecsgenへのシンボリックリンクも作成しておきます。~ $ cd /suzakuv/tecs_package/asp+tecs/target $ cp -r macosx_gcc suzakuv_gcc $ cd /suzakuv/tecs_package/asp+tecs $ cp -r sample sample_suzakuv $ ln -s ../bin/tecsgen.exe tecsgen.exe ++アーキテクチャ依存部の仮準備~ 付属のMacOS X版からsuzaku-v版を仮作成します。~ $ cd /suzakuv/tecs_package/asp+tecs/arch $ cp -r gcc powerpc_gcc ~ ++Makefileの変更~ Makefileを一部変更します。~ 対象ファイル: /suzakuv/tecs_package/asp+tecs/sample_suzakuv/Makefile 48: # 49: # ターゲット略称の定義 50: # > 51: TARGET = suzakuv_gcc (省略) 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 (省略) 223 # 224 # ターゲットファイル(複数を同時に選択してはならない) 225 # >226 #all: $(OBJFILE) >227 all: $(OBJNAME).bin 228 #all: $(OBJNAME).srec ~ ++サンプルプログラムのビルド~ エラー承知で試しにサンプルプログラムをビルドしてみます。 $ export PATH=/suzakuv/bin:/suzakuv/gcc/bin:$PATH ←Cygwin起動後に1回実行 $ cd /suzakuv/tecs_package/asp+tecs/sample_suzakuv $ make ../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 --cfg1-def-table ../kernel/kernel_def.csv --cfg1-def-table ../target/suzakuv_gcc/target_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 inthis 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' (以下省略) 一応tecsgenとgccは動いているようです。~ ~ ++MANIFESTの修正~ 対象ファイル: /suzakuv/tecs_package/asp+tecs/MANIFEST~ ~ ターゲット依存部およびアーキテクチャ依存部のMANIFESTの定義を追加します。~ 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 ~ ++ターゲット依存部の修正~ 対象フォルダ: /suzakuv/tecs_package/asp+tecs/target/suzakuv_gcc~ ~ まずはファイル名を変更します。MacOSXになっている所をすべてSuzakuVに変更します。~ ~ 【対象ファイル】 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 ++アーキテクチャ依存部の修正~ 対象フォルダ: /suzakuv/tecs_package/asp+tecs/arch/suzakuv_gcc~ ~ とりあえず変更せずにそのまま使用します。~ ~ これで準備は完了です。もう一度ビルドしてみます。 $ export PATH=/suzakuv/bin:/suzakuv/gcc/bin:$PATH ←Cygwin起動後に1回実行 $ cd /suzakuv/tecs_package/asp+tecs/sample_suzakuv $ make realclean $ make 結果は次の通り。これをベースに移植を進めます。 ../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.3 copyright(c) 2008-2009, TOPPERS project warning: ../include/kernel.cdl: line 575 p_block pointer level mismatch warning: ../include/kernel.cdl: line 576 p_block pointer level mismatch warning: ../include/kernel.cdl: line 577 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 --cfg1-def-table ../kernel/kernel_def.csv --cfg1-def-table ../target/suzakuv_gcc/target_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 inthis 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' declaredinside 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 In file included from ./gen/tSample1_tecsgen.h:40, from ./gen/tCyclicHandler_tecsgen.h:30, from cfg1_out.c:7: ./gen/tKernel_tecsgen.h:86:1: warning: "GET_CELLCB" redefined In file included from cfg1_out.c:6: ./gen/tTask_tecsgen.h:118:1: warning: this is the location of the previous definition In file included from ./gen/tSample1_tecsgen.h:40, from ./gen/tCyclicHandler_tecsgen.h:30, from cfg1_out.c:7: ./gen/tKernel_tecsgen.h:89:1: warning: "CELLCB" redefined In file included from cfg1_out.c:6: ./gen/tTask_tecsgen.h:121:1: warning: this is the location of the previous definition In file included from ./gen/tSample1_tecsgen.h:40, from ./gen/tCyclicHandler_tecsgen.h:30, from cfg1_out.c:7: ./gen/tKernel_tecsgen.h:92:1: warning: "CELLIDX" redefined In file included from cfg1_out.c:6: ./gen/tTask_tecsgen.h:124:1: warning: this is the location of the previous definition In file included from ./gen/tSample1_tecsgen.h:40, from ./gen/tCyclicHandler_tecsgen.h:30, from cfg1_out.c:7: ./gen/tKernel_tecsgen.h:133:1: warning: "INITIALIZE_CB" redefined In file included from cfg1_out.c:6: ./gen/tTask_tecsgen.h:167:1: warning: this is the location of the previous definition In file included from ./gen/tKernel_tecsgen.h:139, from ./gen/tSample1_tecsgen.h:40, from ./gen/tCyclicHandler_tecsgen.h:30, from cfg1_out.c:7: ../tecs_kernel/tKernel_inline.h: In function 'tKernel_eiKernel_senseDispatchPendingStateCPU': ../tecs_kernel/tKernel_inline.h:448: warning: passing argument 1 of 'xsns_dpn' discards qualifiers from pointer target type ../include/kernel.h:346: note: expected 'void *' but argument is of type 'const void *' ../tecs_kernel/tKernel_inline.h: In function 'tKernel_eiKernel_senseTaskExceptionPendingStateCPU': ../tecs_kernel/tKernel_inline.h:459: warning: passing argument 1 of 'xsns_xpn' discards qualifiers from pointer target type ../include/kernel.h:347: note: expected 'void *' but argument is of type 'const void *' In file included from ./gen/tSample1_tecsgen.h:44, from ./gen/tCyclicHandler_tecsgen.h:30, from cfg1_out.c:7: ./gen/tAlarmHandler_tecsgen.h:105:1: warning: "ATTR_id" redefined In file included from cfg1_out.c:6: ./gen/tTask_tecsgen.h:128:1: warning: this is the location of the previous definition 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 ina function) tSample1.cfg:15: error: 'SIGINFO' undeclared here (not in a function) make: *** [cfg1_out.o] Error 1 **TOPPERS/ASPの移植・その2 [#k64426ec] ここからポーティングの手順に従ってソースを修正していきます。~ (この項、未完) もう一度ビルドしてみます。 $ export PATH=/suzakuv/bin:/suzakuv/gcc/bin:$PATH ←Cygwin起動後に1回実行 $ cd /suzakuv/tecs_package/asp+tecs/sample_suzakuv $ make realclean $ make ---- #comment Total:&counter(total); Today:&counter(today); Yesterday:&counter(yesterday);