* 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);


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS