(toppers-users 4106) Re: atk2-sc1がWindows8 64bitでmakeに失敗しました。

Shinya Honda honda @ ertl.jp
2013年 6月 21日 (金) 10:44:19 JST


こいさん

本田です.

ATK2のskyeye依存部は,ASPカーネルのskyeye依存部を踏襲して開発しています.

どちらも gcov によるカバレッジ取得を実現するため, CodeSourcery の提供す
る標準関数機能を使用しています.

gcovや標準関数が必要ないなら,下記に示されたコードを変更して
CodeSourcery 以外のgccに対応することは原理的には可能かと思います.

CodeSourcery's low-level board support libraryのソースコードの入手性は分
かりません.

以上,よろしくお願いします.

(2013/06/21 9:33), koizumi yoshiyuki wrote:
>  自己レスです。
> 
>  cs3***は CodeSourcery's low-level board support library の事らしい。 
> 開発担当は「Skyeyeのシミュレータ上での実行に伴い、CodeSourcery社のライブ 
> ラリを使用することにした」と思われる。しかし、このことにatk2の 
> at91skyeye_gccの中では触れられていように見えています(cs3は 
> at91skyeye.ld、start.S、target_config.c以外見つからなかった。)。
>  CodeSourcery's low-level board support libraryのソースは入手可能なので 
> しょうか。
>  私の調査(含む憶測)に誤りが有るのであれば連絡ください。
>  この記述の失礼があればお許しくださるようお願いします。
> 
>  以上
> 
> 
> 2013年6月20日 19:18 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com 
> <mailto:koizumiyoshiyuki @ gmail.com>>:
> 
>     名古屋大学 鴫原さま
> 
>      こいさんです。
>      CodeSourceryのインストール法のTTありがとうございます。おかげさま
>     で、atk2-sc1は無事動作しました。
> 
>      
>      別件です。(以前からの疑問)
>      Skyeye対応のat91skyeye_gccのBuildツールは、CodeSourcery ARMツール
>     に依存しているのでしょうか。リンカスクリプトがincludeしているarm-
>     names.incはLaunchpadのGCCではサポートされないのでしょうか。
>      arm-names.incはGCC標準の機能で、Launchpadは標準に準拠していないと
>     ゆうのは変な気がしています。
>      どう解釈すればよいのか、ご存じの方居られませんでしょうか。
> 
>      以上
> 
> 
>     2013年6月20日 15:14 鴫原一人 <shigihara @ nces.is.nagoya-u.ac.jp
>     <mailto:shigihara @ nces.is.nagoya-u.ac.jp>>:
> 
>         こいさん
> 
>         お世話になっております.
>         名古屋大学 鴫原です.
> 
> 
>         Windows8(64bit)でもCodeSourceryのインストールは可能です.
> 
>         GUIのインストーラを使用すると,UIエラーとなるので,コマンド
>         プロンプトからコンソールモードでインストールする必要があります.
> 
>         こちらでは,arm-2011.03-42-arm-none-eabi.exeを使っていますが,
>         以下のコマンドでインストールできます.
>          > arm-2011.03-42-arm-none-eabi.exe -i console
> 
>         なお,上記の場合,CygwinのPATHにインストールしたフォルダが
>         登録されないことがあるようですので,その場合は手動で登録
>         してください.
> 
>         上記のコンパイラにより,Windows8(64bit)でATK2-SC1を
>         ビルドできることを確認しております.
> 
> 
>         以上,よろしくお願いします.
> 
>         (2013/06/20 (木) 15:08), koizumi yoshiyuki wrote:
>          >  こいさんです。
>          >
>          >  atk2-sc1がWindows8 64bitでmakeが上手くいきません。
>          >  LaunchpadのGCCを使用しています。 gcc-arm-none-eabi-
>          > 4_7-2013q1-20130313-win32.exe 尚、CodeSourceryはインストール
>         できなかっ
>          > たので断念しました。Launchpadでasp_stbee_gcc-20120310はmakeで
>         きていま
>          > す。Vista 32bitでatk2-sc1をmakeしてWindows8のSkyeyeで動作して
>         います。
>          >
>          > make dependのエラー情報
>          >
>          > 実行log---------------
>          >
>          > C:\devel\TOPPERS\ATK2\atk2-sc1-1.0.1\atk2-sc1\OBJ>make depend
>          >
>          > if ! [ -f Makefile.depend ]; then \
>          >
>          > rm -f Os_Lcfg.timestamp Os_Lcfg.c Os_Lcfg.h Os_Cfg.h ; \
>          >
>          > rm -f cfg1_out.c cfg1_out.o cfg1_out.exe cfg1_out.syms
>         cfg1_out.srec; \
>          >
>          > rm -f offset.h; \
>          >
>          > fi
>          >
>          > rm -f Makefile.depend
>          >
>          > ../cfg/cfg/cfg --pass 1 --kernel atk2_no_osap -I.
>         -I../include -I../arch
>          > -I.. -
>          >
>          > I../target/at91skyeye_gcc -I../arch/arm_gcc/common -I../arch/gcc
>          > --api-table ../
>          >
>          > kernel/kernel_api.csv --cfg1-def-table ../kernel/kernel_def.csv
>          > --cfg1-def-tab
>          >
>          > le ../target/at91skyeye_gcc/target_def.csv --cfg1-def-table
>          > ../arch/arm_gcc/comm
>          >
>          > on/core_def.csv sample1.cfg
>          >
>          > arm-none-eabi-gcc -c -mcpu=arm7tdmi -mlittle-endian -g -Wall
>          > -Wno-unused-label
>          >
>          > -Wpointer-arith -O2 -I. -I../include -I../arch -I..
>         -I../target/at91skyeye_g
>          >
>          > cc -I../arch/arm_gcc/common -I../arch/gcc -DALLFUNC
>         -I../kernel cfg1_out.c
>          >
>          > arm-none-eabi-gcc -mcpu=arm7tdmi -mlittle-endian -g -Wall
>          > -Wno-unused-label -W
>          >
>          > pointer-arith -O2 -I. -I../include -I../arch -I..
>         -I../target/at91skyeye_gcc
>          >
>          > -I../arch/arm_gcc/common -I../arch/gcc -mcpu=arm7tdmi -N
>         -mlittle-endian
>          > -T .
>          >
>          > ./target/at91skyeye_gcc/at91skyeye.ld -o cfg1_out.exe \
>          >
>          > cfg1_out.o
>          >
>          > c:/program files (x86)/gnu tools arm embedded/4.7
>          > 2013q1/bin/../lib/gcc/arm-none
>          >
>          > -eabi/4.7.3/../../../../arm-none-eabi/bin/ld.exe: cannot open
>         linker
>          > script file
>          >
>          > arm-names.inc: No such file or directory
>          >
>          > collect2.exe: error: ld returned 1 exit status
>          >
>          > Makefile:335: recipe for target `Os_Lcfg.timestamp' failed
>          >
>          > make: *** [Os_Lcfg.timestamp] Error 1
>          >
>          >
>          >
>          > C:\devel\TOPPERS\ATK2\atk2-sc1-1.0.1\atk2-sc1\OBJ>
>          >
>          > --------------------
>          >
>          >  *arm-names.inc**なしと叱られる。*
>          >
>          >  Vista 32bitマシンのC:\Program Files\CodeSourcery\Sourcery G++
>          > Lite\arm-none-eabi\libから*arm-names.inc**を**OBJ**にコピーし
>         て再実行。*
>          >
>          > 実行log---------------
>          >
>          > C:\devel\TOPPERS\ATK2\atk2-sc1-1.0.1\atk2-sc1\OBJ>make
>          >
>          > arm-none-eabi-gcc -mcpu=arm7tdmi -mlittle-endian -g -Wall
>          > -Wno-unused-label -W
>          >
>          > pointer-arith -O2 -I. -I../include -I../arch -I..
>         -I../target/at91skyeye_gcc
>          >
>          > -I../arch/arm_gcc/common -I../arch/gcc -mcpu=arm7tdmi -N
>         -mlittle-endian
>          > -T .
>          >
>          > ./target/at91skyeye_gcc/at91skyeye.ld -o cfg1_out.exe \
>          >
>          > cfg1_out.o
>          >
>          > c:/program files (x86)/gnu tools arm embedded/4.7
>          > 2013q1/bin/../lib/gcc/arm-none
>          >
>          > -eabi/4.7.3/../../../../arm-none-eabi/lib/crt0.o: In function
>         `start':
>          >
>          > (.text+0x0): multiple definition of `start'
>          >
>          >
>         start.o:C:\devel\TOPPERS\ATK2\atk2-sc1-1.0.1\atk2-sc1\OBJ/../target/at91skyeye_g
>          >
>          > cc/start.S:68: first defined here
>          >
>          > c:/program files (x86)/gnu tools arm embedded/4.7
>          > 2013q1/bin/../lib/gcc/arm-none
>          >
>          > -eabi/4.7.3/../../../../arm-none-eabi/bin/ld.exe: cannot find
>         -lcs3
>          >
>          > c:/program files (x86)/gnu tools arm embedded/4.7
>          > 2013q1/bin/../lib/gcc/arm-none
>          >
>          > -eabi/4.7.3/../../../../arm-none-eabi/bin/ld.exe: cannot find
>         -lcs3hosted
>          >
>          > c:/program files (x86)/gnu tools arm embedded/4.7
>          > 2013q1/bin/../lib/gcc/arm-none
>          >
>          > -eabi/4.7.3/../../../../arm-none-eabi/bin/ld.exe: cannot find
>         -lcs3arm
>          >
>          > collect2.exe: error: ld returned 1 exit status
>          >
>          > Makefile:335: recipe for target `Os_Lcfg.timestamp' failed
>          >
>          > make: *** [Os_Lcfg.timestamp] Error 1
>          >
>          >
>          >
>          > C:\devel\TOPPERS\ATK2\atk2-sc1-1.0.1\atk2-sc1\OBJ>
>          >
>          > --------------------
>          >
>          > *今度はstart**が複数と叱られる*。crt0がリンクされている。
>         at91skyeye.ldの
>          > STARTUP(start.o)が効いていない? 何が起きているのかよくわか
>         りません。
>          >
>          >  Windows8 64bitではARM GCCは何を使うのがよいでしょうか。
>          >
>          >  よろしくお願いします。
>          >
>          >
>          > 以上
>          >
>          >
>          >
>          >
> 
> 
>