Hello,
I need to develop two applications for nRF51822 using SES version 4.18 (macOS). One is a DFU bootloader. The other is an application based on the ble_app_uart (ble_peripheral) example of SDK 10.0. I will be using SoftDevice 110 and I understand that SDK 10.0 is that latest version compatible with S110.
I've been following this blog post to import a Keil project. Seems it is written for nRF52 development using an older version of SES (v3.10e) and is, therefore, inaccurate in some ways.
I would be grateful for some assistance in importing/building the ble_app_uart example from SDK 10.0 into SES.
The first step asks to install the CMSIS-CORE Support Package. In SES 4.18, it appears this package is already installed.
After importing the file nRF51SDK/examples/ble_peripheral/ble_app_uart/pca10028/s110/arm5_no_packs/ble_app_uart_s110_pca10028.uvprojx, I see a project configuration named nrf51422_xxac_s110. As I am developing for nRF51822, I wonder about additional project configuration changes needed? I understand that the nRF51422 is an nRF51822 with ANT support. I will be developing/testing with an nRF51 DK.
In the section Adding nRF5 MDK Files ...
I create embedded_studio folder inside nRF51SDK/components/toolchain.
I download ses_nrf51_startup.s and ses_nrf52_startup.s and save them into nRF51SDK/components/toolchain/embedded_studio/
When I download ses_nrf51_startup.s and ses_nrf52_startup.s, they download as 3324.ses_nrf51_startup.s and 5543.ses_nrf52_startup.s. I rename to ses_nrf51_startup.s and ses_nrf52_startup.s.
I remove Cortex_M_Startup.s from Internal Files in project explorer.
I notice that the remaining file in Internal Files is SEGGER_THUMB_Startup.s and I do not see thumb_crt0.s.
Next instructed to add NRF5_SDK/components/toolchain/system_nrf52.c to Internal Files. I assume that since I'm importing a project for nRF51, I should add system_nrf51.c instead, which I do. Same for NRF5_SDK/components/toolchain/embedded_studio/ses_nrf52_startup.s - I add ses_nrf51_startup.s instead.
As instructed, I add ../../../../../../components/device to the Preprocessor User Include Directories, which results in the following:
../../../../../../components/device ../../../config ../../../../../bsp ../../../../../../components/toolchain ../../../../../../components/ble/ble_advertising ../../../../../../components/ble/ble_services/ble_nus ../../../../../../components/ble/common ../../../../../../components/drivers_nrf/common ../../../../../../components/drivers_nrf/delay ../../../../../../components/drivers_nrf/gpiote ../../../../../../components/drivers_nrf/hal ../../../../../../components/drivers_nrf/pstorage ../../../../../../components/drivers_nrf/uart ../../../../../../components/drivers_nrf/config ../../../../../../components/libraries/button ../../../../../../components/libraries/fifo ../../../../../../components/libraries/timer ../../../../../../components/libraries/trace ../../../../../../components/libraries/uart ../../../../../../components/libraries/util ../../../../../../components/softdevice/common/softdevice_handler ../../../../../../components/softdevice/s110/headers
It appears that Peer Manager/Flash Data Storage applies if the application uses Peer Manager. It appears that ble_app_uart example of SDK 10.0 does not use Peer Manager, so I'm not sure if any of the instructions in Peer Manager/Flash Data Storage apply.
I see no flash_placement.xml file inside nRF51SDK/examples/ble_peripheral/ble_app_uart/pca10028/s110/arm5_no_packs. Do I still need to create this file?
I do see thumb_crt0.s inside SEGGER_app_folder/source, but not sure if the changes for fs_data should be added. I presume no.
I notice that there's no sdk_config.h file and appears this file was added to the SDK architecture after SDK 10.0?
So I do NOT do any of the steps in Peer Manager/Flash Data Storage and proceed to attempt to build the application. I got the compile error "nrf.h No such file or directory". I found that this file exists inside nRF51SDK/components/toolchain/gcc so I added that to the User Include Directories and build proceeds but then I get the compile error seen in attached compile log. I'm now lost.
Appreciate any assistance to getting ble_app_uart (ble_peripheral) of SDK 10.0 successfully imported/built for nRF51 DK (compatible with nRF51822).
I see that using S130 would mean I could use SDK 12.3 instead of 10.0. All my application needs is basic peripheral support plus access to the Timeslot API. I presume S130 would add unnecessary capabilities and size, so would prefer to stick with S110 and SDK 10.0.
Many thanks,
Tim