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はまだ信用ならないなあ。。。