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!