beagleboard to develop USB 2.0 Target Device?

I would like to create a USB 2.0 hi-speed Target device. I need to have all the control over the way the target talks to the USB Host (a linux computer).

in other words, I need a “quasi-development-kit” here. the target needs to store a couple of gigabytes and be reasonably powerful. beagleboards seem to be a possible ticket for the target. good idea? bad idea?

for example, I may want to create a device that is contacted by the USB host, receives a string, processes the string online, and then returns another string to the USB host. (the USB host will run linux; the USB target will be a beagle, and it needs to run a C program that I have written.). it is important that I have 100% control over the USB data protocol, so that the host cannot breach the target security.

of course, this is a development system. I need to be able to wipe it and start over, upload the next version of my C program, and try again.

is the beagleboard a good ticket. does anyone know of an example how to do this?