It looks like my calibration flash for the D/A has been trashed. Is there any way to recover?
I also get -EPERM: “internal error writing to userID block” when calling subfs_create
Everything was working for months before we ran into this issue.
Board: BL4S200 SBC
More importantly though I need to figure out what caused the issue in the first place. My initial thought is that subfs_create overwrote some stuff it should not have. Not sure how to prove this. Any thoughts?
You could try using the APIs to read the userblock on the trashed board, and compare the contents to the userblock on a working board.
Seeing the contents of what overwrote the calibration data might help you to understand what may have been responsible. Is subfs_create() configured to protect the area of flash used for calibration constants?
Tom Thanks for the suggestion. I’ll look into it.
On a second board I ran into this while trying to program it:
line 19 : WARNING SYSCONFIG.LIB : DC_CLK_DBL should always be defined, but was not defined:
line 20 : WARNING SYSCONFIG.LIB : Defined DC_CLK_DBL to 0 (disabled clock doubler recommendation).
line 27 : ERROR BOARDTYPES.LIB : No ID Block found on the target board.
line 28 : ERROR BOARDTYPES.LIB : Please contact Rabbit Technical Support at http://www.digi.com/support for assistance.
As I dig deeper it looks like the flash is being written to excessively and I have crossed over the maximum number of writes …
Or
I have a threading issue where the write of one file is interrupted with a write of another.
Or both.
BTW: Any way to recover from the above “No ID Block found on the target board.” issue?
Hello Matt, By default the modules has the ID block information in the memory.It seems like somehow the module lost the ID block. You can set the proper ID block by using the write_idblock_blxs2xx.c sample application.You can download this sample from the below link http://www.digi.com/support/productdetail?pid=4978
Under “General Documentation” you can find the Rabbit-Write ID Block 10.70 download link.