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

Dependency on nrfx causing tests to fail in sdk 15.2

Hi all,

I just migrated from sdk 14.0 to sdk 1.52, and now I'm running into a problem while testing my codebase with ceedling. When testing my delay module, which uses nrf_delay, I get a slew of "unknown type name" errors. In sdk 14.0, nrf_delay included only nrf.h, which is more or less a defines file. No problems there. In sdk 15.2, nrf_delay includes nrfx.h instead of nrf.h. nrfx.h includes the same nrf.h defines file, but also includes nrfx_common.h, which needs a lot of the defines that are in nrf.h in order to define some of the function macros inside. The problem is that the defines (or the includes that have the defines) in the nrf.h file are inside an #if statement that checks if you're using a win32, unix, or apple machine, and blocks access if so. I'm using an apple computer, so I am unable to access the defines, meaning that the macros in nrfx_common.h are using undefined types, which causes an error.

These are all issues that occur within the dependency tree in the source code, so I cannot include anything to fix the problem without editing that source code. Is there any way other than disabling the __APPLE__ flag on my compiler to prevent this issue? I feel like I must be missing something very basic here. This is all on an nrf52840 dk, running s140 v6.1.0. My computer is a Mac mini running High Sierra.

Thanks.

Parents Reply Children
  • Even if you patch out the compiler checks somehow - much stuff in the nRF SDK is written only with 32-bit ARM architecture in mind.

    E.g. NRF_LOG_XXX macros cast pointers to uint32_t - works fine on ARM MCUs, but will cause severe headache on 64-bit MacOS (or any other non-32 bit platforms).

    I'd rather try to run the testing code on the actual device, maybe running code from RAM.

Related