FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Vivado 2015.2ではZedBoardのHello Worldがビルドできない

Vivado 2015.2 をダウンロードして、ZedBoardをちょっとやり直そうと思い、CTTのHello Worldを実行しようとすると、ビルドエラーが発生した。

http://forums.xilinx.com/xlnx/attachments/xlnx/ELINUX/8467/1/zedboard_CTT_v2013_2_130807.pdf

もともとVivado 2013をターゲットとした資料だが、Hello Worldが全然ビルドできないというのは頂けないなあ。

SDK 2015.2を立ち上げて、Hello_Worldをビルドしようとするとエラーが発生する。

環境はWindows 8.1 64bitだ。

02:20:23 **** Incremental Build of configuration Debug for project Hello_World ****
make all 
'Building file: ../src/helloworld.c'
'Invoking: ARM gcc compiler'
arm-xilinx-eabi-gcc -Wall -O0 -g3 -c -fmessage-length=0 -MT"src/helloworld.o" -I../../Hello_World_bsp/ps7_cortexa9_0/include -MMD -MP -MF"src/helloworld.d" -MT"src/helloworld.d" -o "src/helloworld.o" "../src/helloworld.c"
'Finished building: ../src/helloworld.c'
' '
'Building file: ../src/platform.c'
'Invoking: ARM gcc compiler'
arm-xilinx-eabi-gcc -Wall -O0 -g3 -c -fmessage-length=0 -MT"src/platform.o" -I../../Hello_World_bsp/ps7_cortexa9_0/include -MMD -MP -MF"src/platform.d" -MT"src/platform.d" -o "src/platform.o" "../src/platform.c"
'Finished building: ../src/platform.c'
' '
'Building target: Hello_World.elf'
'Invoking: ARM gcc linker'
arm-xilinx-eabi-gcc -Wl,-T -Wl,../src/lscript.ld -L../../Hello_World_bsp/ps7_cortexa9_0/lib -o "Hello_World.elf"  ./src/helloworld.o ./src/platform.o   -Wl,--start-group,-lxil,-lgcc,-lc,--end-group
c:/xilinx/sdk/2015.2/gnu/arm/nt/bin/../lib/gcc/arm-xilinx-eabi/4.9.1/../../../../arm-xilinx-eabi/bin/ld.exe: warning: cannot find entry symbol _vector_table; defaulting to 00000000
./src/helloworld.o: In function `main':
C:\usr\zynq\2015.2\project_1\project_1.sdk\Hello_World\Debug/../src/helloworld.c:57: undefined reference to `print'
./src/platform.o: In function `disable_caches':
C:\usr\zynq\2015.2\project_1\project_1.sdk\Hello_World\Debug/../src/platform.c:69: undefined reference to `Xil_DCacheDisable'
C:\usr\zynq\2015.2\project_1\project_1.sdk\Hello_World\Debug/../src/platform.c:70: undefined reference to `Xil_ICacheDisable'
collect2.exe: error: ld returned 1 exit status
make: *** [Hello_World.elf] エラー 1

02:20:27 Build Finished (took 3s.553ms)

XilinxのプリミティブのprintとXil_DcacheDisable, Xil_ICacheDisableを持っていないらしい。何故だ? Vivado 2014.4だと、同一設定でビルドできたので、違いを調査する。

なんか2つのHello_Worldプロジェクト内のディレクトリの違いを調査していると、 .metadata/.logに怪しげな違いが存在している。

...
!ENTRY org.eclipse.cdt.core 4 0 2015-07-18 18:19:37.051
!MESSAGE Error
!STACK 0
java.lang.NullPointerException
    at org.eclipse.cdt.internal.core.ConsoleOutputSniffer.processLine(ConsoleOutputSniffer.java:178)
    at org.eclipse.cdt.internal.core.ConsoleOutputSniffer.access$0(ConsoleOutputSniffer.java:174)
    at org.eclipse.cdt.internal.core.ConsoleOutputSniffer$ConsoleOutputStream.checkLine(ConsoleOutputSniffer.java:99)
    at org.eclipse.cdt.internal.core.ConsoleOutputSniffer$ConsoleOutputStream.write(ConsoleOutputSniffer.java:58)
    at java.io.OutputStream.write(Unknown Source)
    at org.eclipse.cdt.internal.core.ProcessClosure$ReaderThread.run(ProcessClosure.java:57)

!ENTRY org.eclipse.cdt.core 4 0 2015-07-18 18:19:37.065
!MESSAGE Error
!STACK 0
java.lang.NullPointerException
    at org.eclipse.cdt.internal.core.ConsoleOutputSniffer.processLine(ConsoleOutputSniffer.java:178)
    at org.eclipse.cdt.internal.core.ConsoleOutputSniffer.access$0(ConsoleOutputSniffer.java:174)
    at org.eclipse.cdt.internal.core.ConsoleOutputSniffer$ConsoleOutputStream.checkLine(ConsoleOutputSniffer.java:99)
    at org.eclipse.cdt.internal.core.ConsoleOutputSniffer$ConsoleOutputStream.write(ConsoleOutputSniffer.java:58)
    at java.io.OutputStream.write(Unknown Source)
    at org.eclipse.cdt.internal.core.ProcessClosure$ReaderThread.run(ProcessClosure.java:57)

!ENTRY org.eclipse.cdt.core 1 0 2015-07-18 18:19:37.787
!MESSAGE Indexed 'Hello_World_bsp' (81 sources, 54 headers) in 4.02 sec: 2,480 declarations; 12,593 references; 44 unresolved inclusions; 3 syntax errors; 50 unresolved names (0.33%)
...

JavaでNullPointerExceptionが発生している?Vivado 2015.2はまだ信用ならないなあ。。。