Basic compling with Ubuntu and Vivado

Just about everything about Red Pitaya
thomasliuchang
Posts: 31
Joined: Mon Apr 18, 2016 12:30 pm

Basic compling with Ubuntu and Vivado

Post by thomasliuchang » Mon May 02, 2016 2:24 pm

Hello,

I am a beginner of RP. I want to further develop the fpga with Ubuntu and realize some specific function. I have install the latest Ubuntu system, Vivado WebPACK 2015.4 with Zynq®-7000 and SDK, and ARM toolchain, as noted in https://github.com/RedPitaya/RedPitaya/ ... plications. Also, I have install the gmake.

When trying the build process, the following problems occurred.

while executing
"generate_app -hw system_0 -os standalone -proc ps7_cortexa9_0 -app zynq_fsbl -compile -sw fsbl -dir $path_sdk/fsbl"
(file "red_pitaya_hsi_fsbl.tcl" line 11)
INFO: [Common 17-206] Exiting hsi at Mon May 2 14:42:52 2016...
Makefile:39: recipe for target 'sdk/fsbl/executable.elf' failed
make[1]: *** [sdk/fsbl/executable.elf] Error 1
make[1]: Leaving directory '/home/lic/RedPitaya/fpga'
Makefile:167: recipe for target 'fpga' failed
make: *** [fpga] Error 2

Could you please check above problems and give me some solutions? Furthermore, may I ask you to give me an example (LED blink etc.) about compiling with ubuntu and vivado 2015.4. I will really appreciate if the example is give step by step.

Heartfelt Thanks!

Best regards,
Chang

Nils Roos
Posts: 1441
Joined: Sat Jun 07, 2014 12:49 pm
Location: Königswinter

Re: Basic compling with Ubuntu and Vivado

Post by Nils Roos » Tue May 03, 2016 9:28 pm

Hi,

did you source the 'settings.sh' script before calling 'make' ?

Code: Select all

. settings.sh
All in a day's work for Bicycle Repair Man

thomasliuchang
Posts: 31
Joined: Mon Apr 18, 2016 12:30 pm

Re: Basic compling with Ubuntu and Vivado

Post by thomasliuchang » Wed May 04, 2016 9:23 am

Hi Nils,

Yes, I have done that.

Chang

Nils Roos
Posts: 1441
Joined: Sat Jun 07, 2014 12:49 pm
Location: Königswinter

Re: Basic compling with Ubuntu and Vivado

Post by Nils Roos » Fri May 06, 2016 11:27 pm

I suspect that the real error happened earlier during FPGA synthesis. Did you acquire and install a valid license for Vivado? If not, the synthesis will abort but the build will continue without the generated components, which leads to errors in the later steps that depend on this output.

Posting the entire console output of make would help to find the cause.
All in a day's work for Bicycle Repair Man

thomasliuchang
Posts: 31
Joined: Mon Apr 18, 2016 12:30 pm

Re: Basic compling with Ubuntu and Vivado

Post by thomasliuchang » Mon May 09, 2016 4:17 pm

Hi Nils,

Thanks for helping me. I checked the license for Vivado 2015.4 as shown in picture 1. It should be installed.
picture 1.png
Then, I inputted the following code in the Ubuntu terminal and recorded the entire console output of make in file1.txt and file2.txt as attached.
file1.txt
file2.txt
In addition, I really want to use the continuous data acquisition function of the RP. From the forum, I got two solutions
1. viewtopic.php?f=7&t=317
2. https://github.com/HrRossi/RedPitaya/bl ... /axi_adc.c

For the first solution (rp_remote_acquire), I should downgrade the ecosystem of my RP to 0.92-388 (as I have installed the image with 0.95 OS and ecosystem). Could you please tell me how to deal with that? I have downloaded the 0.92-388 ecosystem from the RP website but don’t know how to install it. I found my micro SD is write-protected after I install the 0.95 image.

For the second solution (axi_adc), I connected with the RP and input the following command. There is no error. A snapshot of the terminal is shown in the following picture. However, I don’t know how to obtain the sampled data. Should I use an UDP software or terminal to obtain the data. I like to save the sampled data in a text file.

I am sorry for so many well-worn questions. But I am really puzzled with these problems in these days and want to use the continuous data acquisition function of RP as soon as possible.

Looking forward to hearing from you. Thank you so much.

Best regards,
Chang
You do not have the required permissions to view the files attached to this post.

thomasliuchang
Posts: 31
Joined: Mon Apr 18, 2016 12:30 pm

Re: Basic compling with Ubuntu and Vivado

Post by thomasliuchang » Mon May 09, 2016 4:44 pm

Sorry, I forgot to attach the picture for running the axi_adc on my ubuntu system. Here it is.
Untitled.png
You do not have the required permissions to view the files attached to this post.

flob
Posts: 8
Joined: Wed Feb 17, 2016 10:18 am

Re: Basic compling with Ubuntu and Vivado

Post by flob » Tue May 10, 2016 8:28 am

Hi,
In file2.txt:
gmake[3]: arm-xilinx-eabi-ar: Command not found
may cause errors.
This tool is provided by Xilinx SDK. Setting.sh should add SDK tools to your PATH but it doesn't seem to be working. The weird thing is that Vivado is in your PATH.
So check your SDK installation:
locate arm-xilinx-eabi-ar
/opt/Xilinx/SDK/2015.4/gnu/arm/lin/bin/arm-xilinx-eabi-ar

thomasliuchang
Posts: 31
Joined: Mon Apr 18, 2016 12:30 pm

Re: Basic compling with Ubuntu and Vivado

Post by thomasliuchang » Tue May 10, 2016 1:44 pm

Hi,

I have checked the SDK installation in my Linux system as follows:

Code: Select all

lic@lic:~$ locate arm-xilinx-eabi-ar
/opt/Xilinx/SDK/2015.4/gnu/arm/lin/bin/arm-xilinx-eabi-ar
/opt/Xilinx/SDK/2015.4/gnu/arm/lin/share/doc/xilinx-arm-xilinx-eabi/man/man1/arm-xilinx-eabi-ar.1
It should be installed.
Chang

Nils Roos
Posts: 1441
Joined: Sat Jun 07, 2014 12:49 pm
Location: Königswinter

Re: Basic compling with Ubuntu and Vivado

Post by Nils Roos » Tue May 10, 2016 8:36 pm

For the first solution (rp_remote_acquire), I should downgrade the ecosystem of my RP to 0.92-388 (as I have installed the image with 0.95 OS and ecosystem). Could you please tell me how to deal with that? I have downloaded the 0.92-388 ecosystem from the RP website but don’t know how to install it. I found my micro SD is write-protected after I install the 0.95 image.
That is a misunderstanding. You mustn't downgrade to the original 0.92... ecosystem, you should download the ecosystem that is linked from the thread New feature: high speed continuous recording (which is actually closer to the 0.93 version). You can make the /opt/redpitaya directory - where the ecosystem should be unpacked into - writable by calling "rw" from the command line.
For the second solution (axi_adc), I connected with the RP and input the following command. There is no error. A snapshot of the terminal is shown in the following picture. However, I don’t know how to obtain the sampled data. Should I use an UDP software or terminal to obtain the data. I like to save the sampled data in a text file.
The example program streams the samples as udp datagrams to a fixed ip address / port (192.168.1.1:5001 channel A, 192.168.1.1:5002 channel B). The program is intended as a demonstration how to set up the AXI ADC recorder and can be modified to fit your needs. If you want output into a text file, you could replace the network routines with a file writer function.

I have no good idea what the cause of your arm-xilinx-eabi-ar problems might be. How much memory does your ubuntu system have ? Some people reported problems with the build on systems with 2GB RAM or less, if I recall correctly - though I'll admit it doesn't fit your symptoms very well.
All in a day's work for Bicycle Repair Man

thomasliuchang
Posts: 31
Joined: Mon Apr 18, 2016 12:30 pm

Re: Basic compling with Ubuntu and Vivado

Post by thomasliuchang » Wed May 11, 2016 2:12 pm

Hi Nils,

Thanks for your help. I have installed the ecosystem0.92 and the continuous data acquisition is working. I will further try to access more memory with the DMA. There should be something I can refer from https://github.com/HrRossi/RedPitaya/tree/dev_ddrdump.

For the strange problem with the "make", I have some progresses. After searching the problems on google, it seems that the SDK is with 32-bit, which is not compatible with the 64 bit ubuntu running on my computer. (But this is so strange, the SDK should be 64 bit with the Vivado). Anyway, by entering the following codes, it works.

Code: Select all

sudo opt-get install lib32z1 libc6:i386 libnurses5:i386 libstdc++6: i386
sudo opt-get install libncurses5-dev libc6-dev-i386
After sometime of making, it turned out to be a new problem, as follows

Code: Select all

lic@lic-Ubuntu:~/RedPitaya$ . settings.sh 
lic@lic-Ubuntu:~/RedPitaya$ make
make -C fpga
make[1]: Entering directory '/home/lic/RedPitaya/fpga'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/lic/RedPitaya/fpga'
bootgen -image boot_uboot.bif -w -o tmp/boot.bin
cp fpga/sdk/dts/system.dts tmp/devicetree.dts
patch tmp/devicetree.dts patches/devicetree.patch
patching file tmp/devicetree.dts
Hunk #2 succeeded at 86 with fuzz 1.
tmp/linux-xlnx-xilinx-v2015.4.01/scripts/dtc/dtc -I dts -O dtb -o tmp/devicetree.dtb -i fpga/sdk/dts/ tmp/devicetree.dts
make -C OS/buildroot
make[1]: Entering directory '/home/lic/RedPitaya/OS/buildroot'
make -C buildroot-2014.02 USER_HOOKS_EXTRA_ENV='VERSION=0.94-0-devbuild REVISION=devbuild'
make[2]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02'
>>> host-ncurses 5.9 Building
/usr/bin/make -j1 -C /home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9 sources
make[3]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9'
cd include && /usr/bin/make DESTDIR="" sources
make[4]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/include'
make[4]: Nothing to be done for 'sources'.
make[4]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/include'
cd ncurses && /usr/bin/make DESTDIR="" sources
make[4]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/ncurses'
make[4]: Nothing to be done for 'sources'.
make[4]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/ncurses'
cd progs && /usr/bin/make DESTDIR="" sources
make[4]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/progs'
make[4]: Nothing to be done for 'sources'.
make[4]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/progs'
cd panel && /usr/bin/make DESTDIR="" sources
make[4]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/panel'
make[4]: Nothing to be done for 'sources'.
make[4]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/panel'
cd menu && /usr/bin/make DESTDIR="" sources
make[4]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/menu'
make[4]: Nothing to be done for 'sources'.
make[4]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/menu'
cd form && /usr/bin/make DESTDIR="" sources
make[4]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/form'
make[4]: Nothing to be done for 'sources'.
make[4]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/form'
cd test && /usr/bin/make DESTDIR="" sources
make[4]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/test'
make[4]: Nothing to be done for 'sources'.
make[4]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/test'
cd misc && /usr/bin/make DESTDIR="" sources
make[4]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/misc'
make[4]: Nothing to be done for 'sources'.
make[4]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/misc'
make[3]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9'
/usr/bin/make -j3 -C /home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/progs tic
make[3]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/progs'
cd ../ncurses; /usr/bin/make 
make[4]: Entering directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/ncurses'
/usr/bin/gcc -DHAVE_CONFIG_H -I../ncurses -I. -I/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/host/usr/include -D_GNU_SOURCE -DNDEBUG -I. -I../include -I/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/host/usr/include/ncurses -O2 -I/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/host/usr/include  --param max-inline-insns-single=1200 -fPIC -c ../ncurses/lib_gen.c -o ../obj_s/lib_gen.o
/usr/bin/gcc -DHAVE_CONFIG_H -I../ncurses -I. -I/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/host/usr/include -D_GNU_SOURCE -DNDEBUG -I. -I../include -I/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/host/usr/include/ncurses -O2 -I/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/host/usr/include  --param max-inline-insns-single=1200 -fPIC -c ../ncurses/./base/lib_scroll.c -o ../obj_s/lib_scroll.o
/usr/bin/gcc -DHAVE_CONFIG_H -I../ncurses -I. -I/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/host/usr/include -D_GNU_SOURCE -DNDEBUG -I. -I../include -I/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/host/usr/include/ncurses -O2 -I/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/host/usr/include  --param max-inline-insns-single=1200 -fPIC -c ../ncurses/./base/lib_scrollok.c -o ../obj_s/lib_scrollok.o
In file included from ../ncurses/curses.priv.h:283:0,
                 from ../ncurses/lib_gen.c:19:
_32024.c:835:15: error: expected ‘)’ before ‘int’
../include/curses.h:1594:56: note: in definition of macro ‘mouse_trafo’
 #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
                                                        ^
Makefile:795: recipe for target '../obj_s/lib_gen.o' failed
make[4]: *** [../obj_s/lib_gen.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/ncurses'
Makefile:307: recipe for target '../lib/libncurses.so' failed
make[3]: *** [../lib/libncurses.so] Error 2
make[3]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/progs'
package/pkg-generic.mk:174: recipe for target '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/.stamp_built' failed
make[2]: *** [/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02/output/build/host-ncurses-5.9/.stamp_built] Error 2
make[2]: Leaving directory '/home/lic/RedPitaya/OS/buildroot/buildroot-2014.02'
Makefile:31: recipe for target 'buildroot-2014.02/output/images/rootfs.cpio.uboot' failed
make[1]: *** [buildroot-2014.02/output/images/rootfs.cpio.uboot] Error 2
make[1]: Leaving directory '/home/lic/RedPitaya/OS/buildroot'
Makefile:265: recipe for target 'buildroot' failed
make: *** [buildroot] Error 2
After searching the problem on google, it seems that it is the problem with gcc and curses. but I really don't know how to deal with that. For the related problem, please refer to https://github.com/c9/core/issues/162. By the way, I have install the tmux by

Code: Select all

 sudo apt-get install tmux 
but it doesn't work. The gcc version is 5.3.1

Code: Select all

gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) 
I am a little bit puzzled by the problems during make. Should I install a 32bit Ubuntu system to make it easier?

Looking forward to hearing from you.

Thank you very much.
Chang

Post Reply
jadalnie klasyczne ekskluzywne meble wypoczynkowe do salonu ekskluzywne meble tapicerowane ekskluzywne meble do sypialni ekskluzywne meble włoskie

Who is online

Users browsing this forum: No registered users and 1 guest