I was messing around with saving to the user block on a Rabbit 6700, and I accidentally told it there were 10 items when there were actually only 9. As a result, I believe I corrupted the system flash - I’m no longer able to compile directly to the board, as it gives me “No ID Block found on the target board” error. I am able to compile to a .bin file and upload through RFU, but when I try to interact with the user block it gives me a -2, which is “No valid User block found”. Is there a way I can fix this or is the controller FUBAR? I am using DynamicC 10.72D.
You can use Utilities/Write_ID/write_idblock_rcm67xx.c to re-write the System ID Block to your module.
Be sure to enter the MAC address from the label on the module so it’s programmed with a valid MAC.
That sample includes plenty of instructions at the start with how to configure/run it from Dynamic C.
There are also programs in Samples/UserBlock/ that you can use to read the System ID Block (idblock_report.c) and read/write to the Userblock.
You can use the write_id block program to add the id block back into the unit. Dynamic C 10.72E already has the write id block program included in the /utilities folder or you can download the zip program from our site. I have added both of the links below;
Dynamic C 10.72E;
https://hub.digi.com/support/products/dynamic-c/?path=/support/asset/dynamic-c-1072e-new-release/
Write id block program.
https://hub.digi.com/support/products/dynamic-c/?path=/support/asset/rabbit-write-id-block-1070/
Solved by running the write_idblock_rcm67xx.c program from the DC Utilities. Thanks!