What would be the most appropriate example or template for moving data from UPP to RAW ETHERNET with a signal processing step in the middle?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
What would be the most appropriate example or template for moving data from UPP to RAW ETHERNET with a signal processing step in the middle?
Mitch,
UPP == UPnP, right? Just making sure I understand your question ...
If so, I'm actually not too familiar with UPnP and don't know of an example for that. However, UPnP sits on top of IP, correct? If so, wouldn't this translation be handled by the layering of the stack?
For example, I would imagine that the UPnP layer has some sort of "send()" API, which internally would pass the data down to the IP layer, wrap the UPnP packet with an IP header, and in turn pass that down to the Ethernet layer.
I guess the closest thing I could point you to would be our NDK benchmark applications, which were shipped with an older version of the NDK. These apps use raw Ethernet sockets to send data, and so would at least give you an example of raw sockets usage.
I've attached the benchmark examples in a zip file to this post. See the "nonCopyTCP" example ("nonCopyTCP/tester/common/nonCopyTCPtester.c" and "nonCopyTCP/testee/common/nonCopyTCPtestee.c")
You can also find more info about raw Ethernet sockets in the NDK programmer's guide (spru524_pg.pdf) in the section:
3.4 Raw Ethernet Sockets Programming Interface
Steve
UPP is one of the peripherals, universal parallel port. I need to use the GPIO also. My plan is to use the PSP for the peripherals.
The raw ethernet sockets benchmarks sounds ideal. Thank you. Did you forget to attach them?
Will i be able to use it with the current api's and development environment?
Mitch, my bad, I did forget to attach them ... here you go!
Steve
P.S. Just a heads up, there are only CCSv3 project files included. This is because these benchmarks were not supported in the latest CCSv4.x only NDK 2.20.x releases.
Not bad. Its good that you are there to send them at this hour. thank you.
What do i need to compile and run them?
Will they be okay in CCS4 ? Can i use either BIOS 5 PSP 1, or Bios 6 with PSP 2, and current NDK, NSP?
Now that i looked thru it, i see there is not actually any 6748 project, and indeed it looks like its back a few versions. But i did find the raw ethernet routines. That's very good, It looks like it might save a lot of time. Are the calls still consistent with current NDK and NSP API's? Is there anything in the raw ethernet routines that would prevent me from using it with either bios 5 or bios 6?
thank you very much for the example codes.
Mitch,
Those apps were originally meant for BIOS 5.x. I don't believe the APIs used have changed, so you should just be able to use them.
Since the apps were intended for BIOS 5, I'd recommend updating the BIOS 5 client example to work to use those. I'm guessing that you'd just want to remove the client.c file and replace it with the benchmark app C file.
Steve
it seems that in the current ndk and nsp there is a new api for raw ethernet. it seems worthwhile to try to use that for a new app. the appropriate starting point seems to be the helloworld project from bios 5, since the upp driver that i want to use is only in bio5.
It is a little inconvenient to have to figure out how to strip out the part of the setup in helloword that is irrelevant to raw ethernet. Perhaps some help will come from your earlier example, but apart from studying the code i would have no sufficient idea how these things interact with each other.
And now on a more general theme:
When there is a new api, whatever it is, there should be some examples that demonstrate it use. Also, the UPP driver is actually very important for the 6748 chip, its one of two reasons it would most often be selected for a product. The upp driver really should be carried forward in bios 6. Its a little klugey that i have to go back one version to have a driver for a key peripheral.