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

LOCATION OF NR51_ERRATAS.H

Hello again Nordic World,

We have been using a couple of the Nordic dev boards (PCA10028, PCA10040) as uart central devices in our test system for a while and have just recently run into a problem.  I inadvertently overwrote their programming with our custom board code and needed to recall the uart central project to reprogram them.  In doing so I noted that when trying to download the SD (via our IDE, Keil5) I get a non-descript download and/or erase failure code ending in the phrase "...Cortex-0" or "...Cortex4" depending, of course, on which board I am trying to program. 

As an Interim solution, I have found that this can be remedied by using nrfjprog to perform a --recover.  However, this only allows the SD to be downloaded once.  All subsequent attempts fail.  This leads to my first question: 

Is this normal behavior for these dev boards, or should I suspect that there is another problem with my projects for them?

In a effort to troubleshoot this, presuming corruption of my projects, I downloaded a virgin copy of the SDK we are stuck using (12.3.0) and tried compiling the virgin code under that SDK.  When I try to compile, I get the following error and a warnings:

RTE\Device\nRF51422_xxAC\system_nrf51.c(29): error: #5: cannot open source input file "nrf51_erratas.h": No such file or directory
#include "nrf51_erratas.h"

So, where is this header file located?  I cannot find it anywhere and have seen some writings indicating it may be a hidden file?

..\..\..\main.c(637): warning: #174-D: expression has no effect
NRF_LOG_INIT(NULL);

Is this warning related to the missing erratas?

Finally, is it possible to configure these projects so I can reliable rewrite the SD without resorting to the --recover patch?

Thank you kindly,

Robin @ TL 

  • Hello again Simonr,

    It seems that I have confused you more than clarify my questions.  So let me try again.

    1a.) This problem began when I was trying to reprogram 10028 and 10040 boards that I had inadvertently corrupted with the wrong code.  In the process of trying to correct, I was unable to download the SD to either board.  Non-descriptive error messages stating that either the erase or the download failed occurred.  Those messages ending in the phrases "... Cortex M0", or "... Cortex M4" depending, of course, on which board I was attempting to reprogram.  I found I can download SD's, but only after an nrfjprog --recover.  However, subsequent SD download attempt will fail if not proceeded by another nrfjprog --recover.  So the fundamental questions;. Is this normal, is the SD protected from erasure on these boards? Or is there something wrong with my projects for these boards that is causing these errors?

    1b.) ...protected from errant code generation when proceeding to newer Nordic devices and SDK's.

    2.) Both the working and non-working SDK folders sit at the same directory level.  The only difference is when they were downloaded and installed on my computer, and perhaps the version of Keil that was installed at those times. Why would one include the erratas, and one not?  Why would one exhibit the error/warning posted above, and one not? 

    2a) Thank you for this I will run it by Arm/Keil support.

    2b) ie what would be causing the above posted error and warning, missing files, or errant code in Arm provided files?

    Thanks

    Robin @ T L

  • Hi

    1

    a) You should also be able to flash the SoftDevice onto the board as long as you erase it between writes. Can you post what exactly the "download failed" error says?

    b) Yes, erratas.h files should be included.

    2. The erratas.h file won't be included in the SDK at all. It is part of the Device family pack in Keil, and not in the SDK.

    b) The No such file or directory is caused by the nrf51_erratas.h header not being found for example. Any other errors you need an explanation for?

    Best regards,

    Simon

Related