SUCCESS!! I was able to get the OV7670 camera connected, get the PRU 
reading it, and get the results over to my PC for display (although because 
I'm pushing to the PC via serial port, I can only see stills and not video, 
and the stills take about 20 seconds to transfer (640 * 480 greyscale (I'll 
work on the color later) image going byte at a time across a 115200 serial 
connection)). I discovered some of my initial (and persistent) problems 
were with poor terminations in my wiring (makes me inclined to want to go 
back and try it again as main core code with the GPIOs). It appears the L3 
can consume writes from the PRU fast enough to move to memory (although 
since this is the ONLY thing running on the device right now, I don't know 
how it would degrade the operation of other code). This is really giving me 
the itch now to try to port this to run under Debian, so I can use the 
other facilities of the OS.

If anyone wants to look at (or laugh at) my code, you can see it here: 
http://sourceforge.net/p/bioloidfirmware/code/ci/master/tree/
in the 'Beaglebone Firmware' folder. Also, there is a WIndows program in 
the Utilities folder called 'UARTImageReceiver' that I am using on the PC 
side to fetch the image. It transmits a character to the BBB, and when the 
BBB receives it, it dumps back the contents of the array, which the PC 
program builds into an image and displays.

The setup is really sloppy right now (as is the code), I'll try to clean it 
up soon. Also, I'm using GCC and Eclipse. The way it is set up, you have to 
run the makefile with 'pru_bin' as the argument to build the PRU part, then 
run it without the argument to build the main program. I'm running 'the TI 
'bintoc' program to convert the PRU program to arrays that I include in the 
main program which I then load into PRU memory and start the PRU. I tweaked 
'bintoc' to take an extra argument to use as the name for the generated 
array. Because of this, and since I am directly writing to the address of 
my array in main memory from the PRU, there is some more compile time 
craziness that is necessary. I have to compile everything, check the map 
file to see where the array gets placed, put that address into the PRU 
code, then compile it again. That also only makes either the debug or 
release version usable, but not both (since I'm not using a debugger 
anyway, I might just ditch the debug build).

Finally, I included a huge chunk of the Starterware code directly in the 
project so I wouldn't pollute my Starterware install (because I want to 
keep working through the examples), and so I could move the project around 
without breaking stuff. TI, please don't sue me. If I need to remove 
something, let me know. I stole, er, borrowed liberally from a bunch of 
people, and will try to attribute properly as soon as possible. In case you 
don't notice, I'm a slob and miss a lot.

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to