This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

RTC1_IRQHandler(); Error

Hi all,

I am debugging a program after compiling with no errors using the SDK 15.2.0 on a windows laptop and nRF52840 board. The program was designed to save 8 bytes of data to flash every 50ms for 3 days using fstorage. There should be enough storage on this particular board to allow for this, however I have not had a successful 3 day run yet. The latest bug in the code occurred at "void RTC1_IRQHandler();" in the call stack and about 90 minutes in with an error value of what looks to be 0x00026FC4, which doesn't make sense, at least not to me. I understand this has something to do with the timers, which I use to call the fstorage functions every 50ms. However, as a beginner programmer, I am unable to assess any issues at a lower level. Could someone give some suggestions as to what may be causing this issue?

Thanks,

Jack

  • jackiemoon98 said:
    A single 32 bit variable is being stored but is only about 8 bit when the program crashes.

     What does this mean? Are you writing 32 bit every 5 seconds, or is this something else?

    Are you able to see the data stored when the application crashes, to confirm that the data is what you are expecting? You could try running the fds_gc function to collect and delete any garbage data if you have any unexpected data in your flash storage.

    Best regards,

    Simon

  • Yes, I am writing 32 bit every 5 seconds. However, the value being stored is just a counter, which crashes when it hits 4ABA. 4ABA is only 19130 seconds which only takes 15 bit to store, not 32, even though 32 bits are allocated in the memory for every instance. I can see the data stored correctly in the memory 1 view and unfortunately I don't think the fds_gc function will work because I am using the fstorage library instead of FDS. 

    Thanks,

    Jack

  • Hi Jack

    Can you confirm that all the pages you are planning on writing to are erased prior to running the application. You won't be able to run flash write on flash pages that aren't empty. Please refer to the nRF52840 product specification on how to do this.

    Best regards,

    Simon

  • Hi Simon, 

    I am always sure to either erase the device or change the start address for the memory write to an empty location. I have also forgotten to do this in the past and seen this behavior and am fairly certain this is a different error. I would also check in the memory 1 view to ensure the values were cleared. However, I will look into the product specifications to ensure I have been erasing the board properly. Could there be another cause for the error?

    Thanks,

    Jack

  • Hi Jack

    Is the error always the same (Storage full on flash page 2)? Are you able to write anything at all on flash page 2, or is this when occuring when flash page 2 is full, and expected to go to page 3? Or is it just within page 2? There might be an issue when the application is going to the next flash page. Are you able to provide a log when this crash happens?

    Best regards,

    Simon

Related