Standalone loading of HiFi4 core design does not run

6 posts / 0 new
Last post
glenne_4557
Offline
Last seen: 2 months 1 day ago
Joined: 07/22/2019 - 5:43pm
Standalone loading of HiFi4 core design does not run

Hi, I'm able to start AWE designs on my main ARM core as well as the HiFi4 on the NXP RT685 by using the AW Designer.  When I try to load the designs standalone however it seems the HiFi4 design does not run.  I'm using code like:

awe_loadAWBfromArray(&g_AWEInstance, Core16_InitCommands, Core16_InitCommands_Len, &pPos);

awe_loadAWBfromArray(&g_AWEInstance, Core0_InitCommands, Core0_InitCommands_Len, &pPos);

Both report no error but the Core16 configuration does not seem to be running.  Both of the InitCommands were generated by using the Generate Target Files (.c) option.  The Core0 design runs as expected.

Is there something special needed to load and run the DSP core?

Andrew
Offline
Last seen: 2 days 9 hours ago
Joined: 04/12/2018 - 9:25am

Hello! Are these functions both being called on the M33 core? If so, then what is most likely happening is that both layouts are being loaded on the M33, and whichever one is called second is overwriting the first. Each function should be called on each core with the corresponding AWEInstance as the first argument. 

Let me know if this is not the case, and we can continue to work to solve your issue. Thanks,

-Andrew P

glenne_4557
Offline
Last seen: 2 months 1 day ago
Joined: 07/22/2019 - 5:43pm

Yes, these are both being called from the M33 core so your description makes sense.  I guess I assumed that the function would see that one was loading for '16' and the other for '0' and communicate with the DSP to 'make it so'.  Do I need to emulate what the USB/IPC driver is doing and inject ipc calls?  I assume this is what the AWD GUI is doing behind the scenes but was hoping the framework would take care of this for me with the function call.

Andrew
Offline
Last seen: 2 days 9 hours ago
Joined: 04/12/2018 - 9:25am

Okay, then there is the issue! You should not need to emulate what the USB/IPC driver is doing. Simply call the same function on both cores and you should be all set. 

If you do want to emulate the USB/IPC driver and load both arrays from the M33, we can provide a helper function to parse the array command by command and pass it through the packet router to the HiFi core (the same way that Designer/Server works), however this is more complicated. 

glenne_4557
Offline
Last seen: 2 months 1 day ago
Joined: 07/22/2019 - 5:43pm

Thanks for the quick response.  I'm trying to avoid rebuilding the HiFi core when I want a different design loaded in standalone mode.  For example, we may have 4 different 'scenarios' to load into the DSP for different situations and I'd like the raw data to come from the M33 side.  If you could provide the helper function you mentioned that would be most helpful!  Thanks.

Andrew
Offline
Last seen: 2 days 9 hours ago
Joined: 04/12/2018 - 9:25am

Yes I definitely can! I will email you an update of the AWECoreUtils files that contain the helper function, "awe_getNextAWBCmd". You can use this to load each command and then pass them through the packet router.