I was trying to get the BLE Uart working with the nrf52840.
Everything works fine, all files are compiling and running, but when i debug the code using segger embedded studio.
It reaches the function gap_params_init(); ,but it says unknown function at 0x00000978 .
And then it does nothing.
Do anyone here have any idea about why is it happening and what is the solution to this?
I am using the same code as given in sdk15.0 inside ble_app_uart.
When i run the example code, it works fine but not when i run my own code.
I'm betting that you are trying to step into a Softdevice function? Like e.g. sd_ble_gap_device_name_set()? The Softdevice functions are a part of Nordic's proprietary BLE stack and you will not be able to step through them with a debugger or even see the actual code. The Softdevice is delivered as a pre-compiled hex file and all you get to see is the header files with function and type declarations and the documentation.
Okay ,I understand this
But when I am running the code , the ble device is not getting detected. And same debugging technique is working fine for the inbuilt example given in the SDK.
And example code is working fine.
So the app_ble_uart example code works fine, but your own code doesn't?
Do you get any logging messages out of your device on a serial terminal?
Most likely one of the functions in your code returns an error and this sends your code into an error handler where it either stalls in an endless while(1) loop or resets your device over and over again.
If you can't figure it out, do you mind uploading your own project so I can debug it?
And Yes you are right, it does go to an SVC error handler and stops after that.
What can be the solution to this and what am i doing wrong here in my own project?
Is it related to Flash_placement.xml file or sdk_config.h file or some other reason?