There are many folders and examples in the EZSDK directories, and what I am hoping to do is find something that shows some relatively "simple" steps. I have experience with TMS320C6416T connected by PCI bus to x86 CPUs. We created code to upload a binary from the PC Side to the DSP side (the DSP had its own memory in this case). We had shared memory areas where information and doorbells registers and interrupt generators that helped with synchronization.
I am aware of why memory has to be carved out and shared between the DSP and the primary OS because these kinds of buffers need to be contiguous, and the OS (LInux) works in virtual address and the DSP works in physical addresses.
I am not strong in the video drivers under Linux.
I am experimenting with saLoopBack and , from what I have seen it SEEMS that it should be easily converted from using frame buffer memory to using the CMEM driver. I would like to use these simple examples (V4L2) because of my ease in understanding how they operate.
From what I understand from many other posts I require the CMEM driver to obtain the virtual and physical addresses which I need to share between the ARM Linux and the DSP core.
I am hoping the following minor examples exist somewhere in the EZSDK 05.03.01.15 set of code:
- A simple linux program that loads the DSP with a compiled binary and allows it to execute
- A simple linux program that uses the CMEM driver
- A simple linux program that passes physical addresses to a DSP binary so that it can operated on buffers provided from CMEM
I am guessing that the examples that exist in this package are specific to the general concept and needs of the programmers . I am aware of the library that exists to do much of this in the form of the CODEC engine and perhaps my only choice is to just plow through all these files, but I would rather just look at specific source code that can do the above.
Obviously I am asking a lot here. I also understand that I am probably fighting the libraries that are there to make my life easier but given my low level experience , easier to me is getting a frame, passing the pointer of that frame to a DSP , have it chew on the data and then have the driver display that data (video frame).