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 

Parents
  • Hi Robin

    The nrfxx_erratas.h files should be located in C:\Users\_USERNAME_\AppData\Local\Arm\Packs\NordicSemiconductor\nRF_DeviceFamilyPack\8.xx.x\Device\Include\. In the past, this error has been caused by a bug of MDK-ARM. The MDK always copies 'system_nrf5x.c' from the latest software pack, so even though you select the supported version it might try to use the newer one. One solution is to replace RTE\Device\nRF52832_xxAA\system_nrf52.c using the system_nrf52.c file from the Software pack (Devicefamily pack) that the SDK you're using supports.

    Best regards,

    Simon

Reply
  • Hi Robin

    The nrfxx_erratas.h files should be located in C:\Users\_USERNAME_\AppData\Local\Arm\Packs\NordicSemiconductor\nRF_DeviceFamilyPack\8.xx.x\Device\Include\. In the past, this error has been caused by a bug of MDK-ARM. The MDK always copies 'system_nrf5x.c' from the latest software pack, so even though you select the supported version it might try to use the newer one. One solution is to replace RTE\Device\nRF52832_xxAA\system_nrf52.c using the system_nrf52.c file from the Software pack (Devicefamily pack) that the SDK you're using supports.

    Best regards,

    Simon

Children
  • Hello Simon,

    The device is an NRF51.  Does the solution using the NRF52 pack still apply?

    Interesting fact though, the my original project does not call for the erratas include file at all.  

    Can this be explained?  Same SDK (12.3.0), bit no callout of that file in any project file, and it builds, loads and runs perfectly, with the exception of the failing subsequent load of the SD, which is another question I need answered.  Is this normal operations Nordic Development Boards?  

    What about the above warning? 

    And finally, why all this only with a recently downloaded virgin SDK?

  • Hi

    Yes, this should apply for the nRF51 as well, but you need to find the system_nrf51.c file instead of nrf52 for the device family pack you're using.

    It is not an issue that we at Nordic can resolve I'm afraid, as it is a bug in the MDK, specific to newer MDKs in the Keil IDE. 

    What error/warning are you seeing with the SoftDevice? In Keil, you will need to flash the SoftDevice onto the board separately, and then the application onto the board afterwards.

    Best regards,

    Simon

  • Hello again Simonr,

    First of all, I recognize where the blame lies here, but need Nordic info to help resolve the issue correctly.  So, thank you again for your continued support.  I have Keil support work things from there end as well.  That said, let me rephrase, and reprioritize these questions a bit:

    1.) I have an SDK that seem to be working fine, but for the issue of subsequent downloads of the SD.  It does not call out the erratas.h file. So:

    a.) Is the issue of failed subsequent SD downloads normal due to some such feature as erasure protection?

    b.) Would my project be better protected if I were to update it to include the erratas? 

    2.) The error and warning are posted above in my original post.  I believe the system_nrf51.c file in my "working" SDK path come from within that path, not the path you suggested.

    a.) What can I suggest to Arm/Keil support to correct this bug in their MDK install?  

    b.) Is this just a pathing issue, or is there errant content in one or more of their provided source files?

    I hope this helps clarify what I need to insure my project is best configured for our next upgrade to a later Nordic device and SDK.

    Thanks again,

    Robin @ TL

Related