[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] Using impulse's C-to-FPGA tool with Petalinux ...



Hi Nicolas,

On Tue, Jul 21, 2009 at 7:31 AM, Nicolas Herve<nicolas.herve@xxxxxxxxx> wrote:

> I am evaluating the tool "C-to-FPGA' from the Impulse company
> http://www.impulseaccelerated.com/.
> This tool can generate HW accelerators with an FSL interface from a
> description in the C language.
> They have a tutorial for a prebuilt uClinux system.

There's any number of sources for problems here - I'll try to identify a few:

[snip]

> Following the steps of the Impulse tutorial, step 5 has to be replace
> with the configuration of the linux kernel.
> In my case, I have configured a system with kernel version 2.6, the
> glibc library and a MMU.

Does Impulse's costream implementation write directly to the FSL?  Or
do they use the FSL FIFO kernel driver?

If they write directly, that will be a problem, because the FSL ops
are privileged instructions when the MMU is enabled.  Try to execute
them from userspace and you'll segfault or similar.

> $ make -f Makefile_orig -n | tail -1
> /opt/Impulse/CoDeveloper3/uClinux/elf2flt/ld-elf2flt -Os -g -elf2flt
> -L/opt/Impulse/CoDeveloper3/uClinux/lib/uClibc/lib -o img img_sw.o
> tiff.o co_init.o libimpulsec.a
> /opt/Impulse/CoDeveloper3/uClinux/lib/uClibc/lib/crt0.o -lc
> /opt/Impulse/CoDeveloper3/uClinux/tools/lib/gcc-lib/microblaze/2.95.3-4/libgcc.a
> /opt/Impulse/CoDeveloper3/uClinux/tools/microblaze/lib/libc_hard_shift.a
> -lc
>
> that I have simply changed in
>
> $ make -f Makefile_petalinux -n | tail -1
> mb-linux-gcc -o img img_sw.o tiff.o co_init.o libimpulsec.a
>
> It compiles without claiming, but when I test the executable on the
> target with arguments, I have a segmentation fault.
> So the build should not be ok.
>
>
> # ./img
> usage: fpga_edge <input file> <output file>
> # ./img peppers.tiff output.tiff
> Edge Detect Demo
> ----------------
> Running...
> Segmentation fault
>
>
>
> Any idea of what should be missing ?

Could be just about anything.  Since they wrote that stuff targetting
uClinux (noMMU) with an older compiler, an old kernel and an old build
process, there will be a bit of hack and slash to get it up to date.

If you have the source to their costream library, try sprinkling
printf's around, or turn on any DEBUG type macros they have in there -
simillarly in the test app itself, at least try to localise the
failure point.

Regards,

John
-- 
John Williams, PhD, B.Eng, B.IT
PetaLogix - Linux Solutions for a Reconfigurable World
w: www.petalogix.com  p: +61-7-30090663  f: +61-7-30090663
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/