(toppers-users 4176) Re: kernel_cfg.timestampでのSegmentation Fault

mitsu.takada @ nifty.ne.jp mitsu.takada @ nifty.ne.jp
2013年 12月 3日 (火) 10:53:06 JST


鈴木さん

こんにちは,みつといいます。
メッセージをみるとcfgがpass2の実行時に落ちているのだと思います。
ATDEは使ったことがないのですが,ホスト環境はDebianなのですね。

cfgはDebianの中で作成されていると思うのですが,
toppers/itronx/cfg1_out.c にある cfg1_out::~cfg1_out() の「delete pimpl_」をコメントアウトしてcfgを再ビルドされるとどうでしょうか。

2013/12/03 2:39、Juggler Shu <shu @ jugglershu.net> のメール:

> 返信ありがとうございます。
> 
> 利用しているsafegのバージョンは以下のものです。
> - safeg-0.5-armadillo-800-eva-6mar2013
> 
> ログを見る限り、以下のバージョンのソースコードをfetch_sources.shは取って きているようです。
> - linux-2.6.35-a800eva-at3.tar.gz
> - asp_armadillo-800-eva_gcc-20130221.tar.gz
> - cfg-1.8.0.tar.gz
> 
> なお、コンパイラはATDE4に追加で
> gcc-arm-none-eabi-4_7-2013q3
> をダウンロードし、コンパイルしてインストールしました。
> 
> 以下に、build_all.shスクリプトでエラーが起きた箇所のビルドログを貼り付け ます。
> 何か環境等、確認すべきものがあればお教え下さい。
> よろしくお願い致します。
> 
> ----BEGIN----
> LIBBOOST_SUFFIX=
> BOOST_VERSION=1_55
> BOOST_DIR=/usr/local/include
> LIBBOOST_DIR=/usr/local/lib
> OPTIONS=
> make BOOST_DIR="/usr/local/include" LIBBOOST_SUFFIX="" CXXFLAGS="-O2 " -C toppers
> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/toppers' に入ります
> make[1]: `all' に対して行うべき事はありません.
> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/toppers' から出ます
> make BOOST_DIR="/usr/local/include" LIBBOOST_SUFFIX="" CXXFLAGS="-O2 " -C toppers/itronx
> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/toppers/itronx' に入ります
> make[1]: `all' に対して行うべき事はありません.
> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/toppers/itronx' から出ます
> make BOOST_DIR="/usr/local/include" LIBBOOST_SUFFIX="" CXXFLAGS="-O2 " -C cfg
> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/cfg' に入ります
> make[1]: `all' に対して行うべき事はありません.
> make[1]: ディレクトリ `/home/atmark/Downloads/safeg/safeg-0.5-armadillo-800-eva-6mar2013/asp/cfg/cfg' から出ます
> if ! [ -f Makefile.depend ]; then \
>        rm -f kernel_cfg.timestamp kernel_cfg.c kernel_cfg.h ; \
>        rm -f cfg1_out.c cfg1_out.o cfg1_out.elf cfg1_out.syms cfg1_out.srec; \
>        rm -f makeoffset.s offset.h; \
>    fi
> rm -f Makefile.depend
> ../../asp/cfg/cfg/cfg --pass 1 --kernel asp -I. -I../../asp/include -I../../asp/arch -I../../asp -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc --api-table ../../asp/kernel/kernel_api.csv --cfg1-def-table ../../asp/kernel/kernel_def.csv  --cfg1-def-table ../../asp/arch/arm_gcc/common/core_def.csv  sample1.cfg
> arm-none-eabi-gcc -c  -mlittle-endian -mcpu=cortex-a9 -g -Wall -O2  -DTOPPERS_SAFEG_SECURE -DTOPPERS_SAFEG_COM -DTOPPERS_SAFEG_LOAD -D__TARGET_ARCH_ARM=7 -I. -I../../asp/include -I../../asp/arch -I../../asp -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc   -DALLFUNC -I../../asp/kernel cfg1_out.c
> arm-none-eabi-gcc  -mlittle-endian -mcpu=cortex-a9 -g -Wall -O2 -DTOPPERS_SAFEG_SECURE -DTOPPERS_SAFEG_COM -DTOPPERS_SAFEG_LOAD -D__TARGET_ARCH_ARM=7 -I. -I../../asp/include -I../../asp/arch -I../../asp  -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc  -nostdlib -mlittle-endian -N -mcpu=cortex-a9 -Wl,-Ttext,0x5f000000 -T ../../asp/target/armadillo-800-eva_gcc/armadillo-800-eva.ld  -o cfg1_out.elf \
>                         cfg1_out.o
> arm-none-eabi-nm -C cfg1_out.elf > cfg1_out.syms
> arm-none-eabi-objcopy -O srec -S cfg1_out.elf cfg1_out.srec
> ../../asp/cfg/cfg/cfg --pass 2 --kernel asp -I. -I../../asp/include -I../../asp/arch -I../../asp -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc \
>                -T ../../asp/target/armadillo-800-eva_gcc/target.tf --api-table ../../asp/kernel/kernel_api.csv --cfg1-def-table ../../asp/kernel/kernel_def.csv  --cfg1-def-table ../../asp/arch/arm_gcc/common/core_def.csv  sample1.cfg
> make: *** [kernel_cfg.timestamp] セグメンテーション違反です
> arm-none-eabi-gcc  -mlittle-endian -mcpu=cortex-a9 -g -Wall -O2 -DTOPPERS_SAFEG_SECURE -DTOPPERS_SAFEG_COM -DTOPPERS_SAFEG_LOAD -D__TARGET_ARCH_ARM=7 -I. -I../../asp/include -I../../asp/arch -I../../asp  -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc  -nostdlib -mlittle-endian -N -mcpu=cortex-a9 -Wl,-Ttext,0x5f000000 -T ../../asp/target/armadillo-800-eva_gcc/armadillo-800-eva.ld  -o cfg1_out.elf \
>                         cfg1_out.o
> arm-none-eabi-nm -C cfg1_out.elf > cfg1_out.syms
> arm-none-eabi-objcopy -O srec -S cfg1_out.elf cfg1_out.srec
> ../../asp/cfg/cfg/cfg --pass 2 --kernel asp -I. -I../../asp/include -I../../asp/arch -I../../asp -I../../asp/target/armadillo-800-eva_gcc -I../../asp/arch/arm_gcc/safeg -I../../asp/arch/arm_gcc/rma1 -I../../asp/arch/arm_gcc/common -I../../asp/arch/gcc \
>                -T ../../asp/target/armadillo-800-eva_gcc/target.tf --api-table ../../asp/kernel/kernel_api.csv --cfg1-def-table ../../asp/kernel/kernel_def.csv  --cfg1-def-table ../../asp/arch/arm_gcc/common/core_def.csv  sample1.cfg
> make: *** [kernel_cfg.timestamp] セグメンテーション違反です
> >> building SafeG
> arm-none-eabi-gcc -c -DSAFEG_RMA1 -DPROF_SUPPORT -DDUALOS_DEVICE_SHARING -mcpu=cortex-a9 -msoft-float -g -Wall -Wextra -Werror -I . -DSECURE_START_ADDRESS=0x5f000000 -DNORMAL_START_ADDRESS=0xe80c0000 -D__TARGET_ARCH_ARM=7 -O2 safeg.S
> arm-none-eabi-gcc -c -DSAFEG_RMA1 -DPROF_SUPPORT -DDUALOS_DEVICE_SHARING -mcpu=cortex-a9 -msoft-float -g -Wall -Wextra -Werror -I . -DSECURE_START_ADDRESS=0x5f000000 -DNORMAL_START_ADDRESS=0xe80c0000 -D__TARGET_ARCH_ARM=7 -O2 crt0-safeg.S
> arm-none-eabi-gcc -mcpu=cortex-a9 -msoft-float -static -nostdlib -lgcc -Wl,-Ttext,0x5f800000 -T safeg.lds safeg_start.o safeg.o crt0-safeg.o -o safeg.elf
> arm-none-eabi-objcopy -O binary -S safeg.elf safeg.bin
> >> copying binary files
> mkdir: ディレクトリ `./tools/auto_build/output' を作成できません: ファイ ルが存在します
> cp: `./app/sample1_s/asp.elf' を stat できません: そのようなファイルや ディレクト
> ----END----
> 
> 
> 
> On 12/2/13 2:32 PM, Shinya Honda wrote:
>> 鈴木さん
>> 
>> 本田です.
>> 
>> こちらでは,ATDE4でビルド出来ています.
>> 
>> 下記の情報だけでは判断できないので,ビルドログや使われたソースのバー ジョ ンを提示頂けないでしょうか.
>> 
>> 以上,よろしくお願いします.
>> 
>> (2013/12/01 18:22), Juggler Shu wrote:
>>> はじめまして。現在TrustZone関連の技術について調べておりまして、
>>> safegをArmadillo-800evaで動作させたいと考えているものです。
>>> プリビルド版に関しては問題なく動作しているようなのですが、コードの変更な
>>> どを入れたいと考え
>>> ソースコードからビルドしようとしました。
>>> 
>>> そうしたところ、ASPのsample1をビルドしようとしたところで以下のエラーと
>>> なってしまいました。
>>> 
>>> make: *** [kernel_cfg.timestamp] セグメンテーション違反です
>>> 
>>> 1つずつ手動でビルドした場合でも、build_all.shスクリプトを用いた場合でも
>>> 同様のようでした。
>>> バイナリは出来上がっているようなのですが。
>>> 
>>> ビルド環境はArmadilloで提供されているATDE4を用いています。
>>> 
>>> このエラーを修正する方法がありましたら、お教えいただきたいです。
>>> よろしくお願い致します。
>>> 
>>> 鈴木秀一郎
>>> 
>> 
>> 
>> 
>