Combining AVB+USB Code Resulted In Constraints Check Errors

Technical questions regarding the xTIMEcomposer, xSOFTip Explorer and Programming with XMOS.
fabra
Member++
Posts: 19
Joined: Sat May 09, 2020 4:20 pm

Post by fabra »

Did someone test the proposed solution?


fabra
Member++
Posts: 19
Joined: Sat May 09, 2020 4:20 pm

Post by fabra »

I did the proposed changes and was able to run the USB endpoint and the ethernet mac with PTP. Unfortunately there is not enough cores available to run the full AVB stack in combination with USB audio. Is it possible to make a modified version of the ethernet mac that runs at 100 Mbit and uses less cores?
User avatar
akp
XCore Expert
Posts: 544
Joined: Thu Nov 26, 2015 11:47 pm

Post by akp »

fabra
Member++
Posts: 19
Joined: Sat May 09, 2020 4:20 pm

Post by fabra »

Thanks! This link was very helpful.

Next step is to figure out how to reduce the number of used chanends in order bring up the full AVB stack. Any ideas are welcome!
User avatar
akp
XCore Expert
Posts: 544
Joined: Thu Nov 26, 2015 11:47 pm

Post by akp »

Glad you got it working.

There are several ways to remove used chanends if you just need them for communication between tasks on the same tile.
For data streaming you can use ring buffers / fifos.
For other uses of chanends you can look at the ways to share memory here https://www.xcore.com/viewtopic.php?f=26&t=3061

And refer to module_xc_ptr on the xcore github https://github.com/xcore/sc_util/tree/m ... ule_xc_ptr and of course lib_locks if you need to handle synchronization in your software that would have normally been handled by the chanends themselves.