How to collaborate a private protocol with BLE.

Hi, 

My device is working with BLE most of the time, but it also needs to activate a private protocol,

1. to send messages to other devices in case of an emergency, 

2. to keep the possibility to receive the messages sent by other devices.

I know NCS supports multiple protocols at the same time,

But how to get the private protocol to work together with BLE?

Thank you in advance!

Parents Reply
  • I got a problem:

    [00:00:19.786,926] <err> mpsl_init: MPSL ASSERT: 112, 2183
    [00:00:19.786,987] <err> os: ***** HARD FAULT *****
    [00:00:19.786,987] <err> os:   Fault escalation (see below)
    [00:00:19.787,017] <err> os: ARCH_EXCEPT with reason 3
    
    [00:00:19.787,017] <err> os: r0/a1:  0x00000003  r1/a2:  0x20002828  r2/a3:  0x20002828
    [00:00:19.787,048] <err> os: r3/a4:  0x00000000 r12/ip:  0x00000000 r14/lr:  0x000260fb
    [00:00:19.787,048] <err> os:  xpsr:  0x61000011
    [00:00:19.787,078] <err> os: Faulting instruction address (r15/pc): 0x0002263c
    [00:00:19.787,078] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
    [00:00:19.787,109] <err> os: Fault during interrupt handling
    
    [00:00:19.787,139] <err> os: Current thread: 0x20002828 (idle)
    [00:00:20.463,897] <err> os: Halting system

    board: PCA10056

    SDK: NCS v2.1.0

    What does " mpsl_init: MPSL ASSERT: 112, 2183" mean?

    Could you help me to find out what the problem is?

Children
  • Hi,

     

    jhc said:

    What does " mpsl_init: MPSL ASSERT: 112, 2183" mean?

    This is an assertion that occurs when a timing error has happened, for instance that the timeslot is exceeding the allocated radio timeslot.

    After what call do you get this assertion?

     

    Kind regards,

    Håkon

  • Thank you!

    The assertion occurred when I stopped the timeslot, it has now been resolved.

  • Hi,

     

    I'm glad to hear that you solved the issue. Hope you have a wonderful day!

     

    Kind regards,

    Håkon

  • Hi,

    When I request a next (or end) timeslot in case of receiving MPSL_TIMESLOT_SIGNAL_CANCELLED in mpsl_cb, like below:

    static mpsl_timeslot_signal_return_param_t* mpsl_cb(mpsl_timeslot_session_id_t session_id, uint32_t signal)
    {
        ...
        
        
        case MPSL_TIMESLOT_SIGNAL_BLOCKED:
        case MPSL_TIMESLOT_SIGNAL_CANCELLED:
            ts_session->request_normal.params.normal.distance_us += ts_session->ts_interval_us;
            return &ts_session->action_next; /*&ts_session->action_end*/
    
        ...
    }

    I got an MPSL_ASSERT error shown below.

    What does "mpsl_init: MPSL ASSERT: 106, 477" mean?

    [00:00:14.527,099] <inf> interconn: mpsl_cb, session 1 signal 6
    [00:00:14.527,130] <err> mpsl_init: MPSL ASSERT: 106, 477
    [00:00:14.527,160] <err> os: ***** HARD FAULT *****
    [00:00:14.527,191] <err> os:   Fault escalation (see below)
    [00:00:14.527,191] <err> os: ARCH_EXCEPT with reason 3
    
    [00:00:14.527,221] <err> os: r0/a1:  0x00000003  r1/a2:  0x200025f8  r2/a3:  0x200025f8
    [00:00:14.527,252] <err> os: r3/a4:  0x00000000 r12/ip:  0x00000000 r14/lr:  0x00025127
    [00:00:14.527,252] <err> os:  xpsr:  0x61000000
    [00:00:14.527,282] <err> os: Faulting instruction address (r15/pc): 0x00021668
    [00:00:14.527,282] <err> os: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
    [00:00:14.527,313] <err> os: Current thread: 0x200025f8 (MPSL Work)
    [00:00:15.044,433] <err> os: Halting system

Related