Keil uVision V5 Legacy Nordic Project Compile Errors

Hello,

I am trying to compile a legacy Nordic Project for evaluation purposes and I am getting some compile errors. The details are as follows:

Project: https://github.com/NordicPlayground/nrf52-ble-image-transfer-demo

Keil: uVision V5.38.0.0 MDK-Lite

ARM Compiler: V5.06 Update 6 (Build 750)

Nordic SDK: v16.0.0.

Nordic SoftDevice: S132 v7.0.1

Keil nRF_DeviceFamilyPack: 8.44.1

Other settings:

The compile errors I am getting as as follows:

linking...
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrf_drv_ppi_init (referred from main.o).
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrfx_ppi_channel_alloc (referred from main.o).
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrfx_ppi_channel_assign (referred from main.o).
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrfx_ppi_channel_enable (referred from main.o).
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrfx_saadc_buffer_convert (referred from main.o).
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrfx_saadc_channel_init (referred from main.o).
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrfx_saadc_init (referred from main.o).
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrfx_saadc_sample_task_get (referred from main.o).
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrfx_timer_enable (referred from main.o).
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrfx_timer_extended_compare (referred from main.o).
.\_build\nrf52832_xxaa.axf: Error: L6218E: Undefined symbol nrfx_timer_init (referred from main.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.

I removed the default ..\nRF5SDK160098a08e2\modules\nrfx\mdk folder from the C/C++ include table and replaced it with ..\Arm\Packs\NordicSemiconductor\nRF_DeviceFamilyPack\8.44.1\Device\Include folder

I noticed that in the apply_old_config.h file all of the drivers seem to be disabled even though in the sdk_config.h file, the necessary drivers are enabled.

I am sure I am doing something wrong in the file structures or some configurations.

Please advise.

Thanks,

Adnan

Parents
  • Hi Adnan

    So, this is apparently an issue with SEGGER Embedded Studio that I wasn't aware of. When flashing an application onto a board, the debugger won't perform a full reset, instead it will start the program from the application start address. So after pressing the reset button on the DK for example, the application will run as expected. An alternate fix is to run an nrfjprog --eraseall command before you program the application onto your board.

    After doing so, the application runs as expected (if you have a camera connected that is). Or else it will be stuck in the camera_init(). To make sure that it's advertising, you can comment out the camera_init() and you'll be able to see the device advertising.

    Best regards,

    Simon

  • Hello Simon,

    So a few things:

    I was aware of this issue with SEGGER and was indeed pressing the RESET. However this doesn't solve the issue.

    I am indeed able to see the device advertising once I comment out the camera_init() function.

    I have always suspected that the SPIM/TWIM segment is where the issue lies. I need support to debug that segment of the code base.

    Please advise.

    Thanks,

    Adnan

Reply
  • Hello Simon,

    So a few things:

    I was aware of this issue with SEGGER and was indeed pressing the RESET. However this doesn't solve the issue.

    I am indeed able to see the device advertising once I comment out the camera_init() function.

    I have always suspected that the SPIM/TWIM segment is where the issue lies. I need support to debug that segment of the code base.

    Please advise.

    Thanks,

    Adnan

Children
No Data
Related