How to add the dfu function to a ble_uart example?

I've developed my project based on ble_uart example in sdk 12.3.0, the hardware is a customed pcba using NRF51822 QFAC chip, now I want to add the OTA function through DFU, but when I added the files and changed according to buttonless example, my app can not advertising upon poweron.

1. Change sdk_config.h, open the fds, app_scheduler, peer_manager, crc32

2. Added the missing files according buttonless example, 

3. Added the missing event handler

4. Change vs_uuid_count from 1 to 2.

5. Change the iram start from 0x20001FE8 to 0x20001FF8 and the size to 0x6008

6. Add NRF_DFU_SETTINGS_VERSION=1 in keil preprocessor

7. Add peer_manager_init in main

8. Add ble_dfu init in services_init

Now compile ok, but when I download and run, I can not found my peripheral on LightBlue. Do I need to change the IROM setting? If yes, how to change? or Should I need to rework using the ble_dfu_buttonless example as the base project?

Related