It seems dwt_getframelength() call corrupts stack memory, and results overwriting other local variables memories. We discussed it in the link.
I’ve been heard that new library shall be open source code that is used to be, and give more flexibilities to compilers have it optimised with whatever settings are enabled/disabled (-O1, -O2). Is this new library available already, or do you have a release/expected date? I’ve tested 6.0.14 (binary base) but this issue remains.
Can you get the dw instance and try dw->ioctl()?
Do you mean something like this?
uint16_t len = ((dwchip_s*)dw3000_probe_interf.dw)->ioctl();
I’m not able to access ->ioctl()
What do you mean by the dw instance? The below function probes the correct dw driver and makes .dw valid.
dwt_probe((struct dwt_probe_s *)&dw3000_probe_interf);
But I cannot access dw->ioctl() from an above structure.
2nd part of my question is about clarifying if decadriver library shall be open source or remain binary base.
Much appreciated for your help
dw->dwt_driver->dwt_ops->ioctl(dw, DWT_GETFRAMELENGTH, 0, (void *)&tmp);
I have no issues with lib, because I am using the ioctl() approach above. The “dwt_xxx()” are wrappers on top of ioctl() and looks like some have issues, as you have pointed out.