Hello all,
I am using XDC v3.23.2.47 with SYS/BIOS 6.33.5.46. IPC is version 1.24.3.32 and I also have PSP 3.0.1.00. All using CCSv5.1.
I am trying to get the IPC IOMAdapter to work with an old iom driver written for DSP/BIOS 5. Here is a snippet of the relevant code in the .cfg file (variable names have been changed):
var IomParams = new IomAdapter.Params(); IomParams.instance.name = "myIOM"; IomParams.iomFxns = "&IomFunctions"; IomParams.initFxn = "&IomInit"; IomParams.deviceId = 0; IomParams.deviceParams = null; Program.global.myIOM = IomAdapter.create(IomParams); DriverTable.addMeta("/myIOM", Program.global.myIOM);
And then the function definitions:
void IomInit(void) { //do initialization of EDMA/McBSP } const IOM_Fxns IomFunctions= { Bind, Unbind, Control, Create, Delete, Submit // IOM_TmdBindDev mdBindDev; // IOM_TmdUnBindDev mdUnBindDev; // IOM_TmdControlChan mdControlChan; // IOM_TmdCreateChan mdCreateChan; // IOM_TmdDeleteChan mdDeleteChan; // IOM_TmdSubmitChan mdSubmitChan; };
From what I understand, the IOMAdapter module should translate my driver to the IDriver interface for me (the commented out section of IomFunctions). Of course I have the IomFunctions defined as well.
So here's the issue. Before I load my program into the debugger/emulator I put a breakpoint in my IomInit function. I also have a breakpoint on BIOS_start();. I hit my IomInit function first when I load the program and this makes sense as it should execute until main. If I hit run, I hit my IomInit breakpoint again. I can continue doing this endlessly (hitting run and going back to my IomInit function). If I remove this breakpoint, the program runs into the weeds without ever hitting main.
Now I can remove this line:
//IomParams .iomFxns = "&IomFunctions";
And I run the program and hit my IomInit function as normal. But continuing execution runs into main and runs my program normally. There must be an error with how I create the IomFunctions.
Thanks in advance for any ideas!