Hi,I want to import the OpenCV library in NiosII. And I found a thread here: http://www.alteraforum.com/forum/showthread.php?t=22856&highlight=opencv In this thread, parrado said --- Quote Start --- You could start by compiling the cxcore and cv libraries, discard the highgui library. It's required a very careful modification of Makefiles. I guess it'll be easier if your system is uCLinux based, and maybe Makefiles modification is not required, check CV install guide. --- Quote End --- I want to ask why a uCLinux based system should make it easier? What can a operating system provide when doing this import thing?
Most libraries and application are written to be used on an operating system such as Linux, so porting is likely to be a lot easier if you are using one. The Nios II Linux distribution uses the same Linux kernel as your Linux desktop, but for the Nios II architecture, so porting many libraries is simple.
--- Quote Start --- Most libraries and application are written to be used on an operating system such as Linux, so porting is likely to be a lot easier if you are using one. The Nios II Linux distribution uses the same Linux kernel as your Linux desktop, but for the Nios II architecture, so porting many libraries is simple. --- Quote End --- Thanks for reply, ykozlov, After installing a uclinux system on the nios II processor, will using a C2H accelerator still be possible? I mean, the reason I use the FPGA to run my code is to get a higher speed compared to my computer. If using a system on nios II processor, will using the hardware accelerator still be possible? (If all implemeted by software, I think the computer cpu will do much better than the nios II processor. )
As C2H generates "just another processor instruction", same can be used with any OS. Of course you need to take care of a lot of side effects. E.g. any RAM access of custom hardware ignores the cache while any "non-DMA aware" memory access of the processor is handled via the cache.-Michael
IIRC C2H generates large blocks of logic that can be used anywhere - but for nios access would most likely be accessed through an avalon slave, rather than through a custom instruction.Whether you will do anything faster than your desktop rather depends on what you are thinking of. Things which are difficult in software, but simple in hardware may be faster, as can be things like integer FFT - where you can throw logic and multipliers at the problem to get parallelism. The other reason for using a nios cpu is to get guaranteed low latency - but in that case you probably wouldn't want to run any OS at all.
Accessing an Avalon Slave from user land software is best done via a device driver, so that might impose additional overhead. It's strictly depending on the task to be done what kind of interface between the custom software and the custom hardware is appropriate.-Michael