This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Timer_older_than return false in light switch example with UART communication

Hi,

I'm working on a project where i need first to send string data from terminal pc to client board which is nRF52832 using UART and then send this data over mesh to other servers

so i combined UART example with light switch demo from mesh sdk v1.0.1 

now i can send  characters over mesh using uart, but i want to send string data so i defined two functions for reading and writing string data with UART and this error occurs 

the error seems to be in bearer_handler.c file at line 245 as shown in the figure.

it is something related with TIMER_OLDER_THAN() function which return false in my case 

how to solve it ? someone help please, i'll appreciate it

here is the functions added 

Thank you

Parents
  • Could you double check in your map file (found inside the build folder of your example code) that the 0x0002EF8A refers to the TIMER_OLDER_THAN() or bearer_handler_action_end() function just to double check this is where the error is occuring? Just take a look at the .map file & try to find the 0x0002EF8A  location in memory & let us know what the comment is for that memory location. It might be that this exact location is not in memory, but then you can take a look at the next values that are in between this memory location.

    Did you refer to the coexistence with other nordic SDK's to merge the mesh sdk with uart? Which UART example code version are you using? SDK 14.2?

    My guess is that uart_putstring() & uart_getstring() are taking too much time to complete, which then leads to the MESH ASSERT message you mention. This line in the link above might be helpful too: "By design, the SoftDevice activity is prioritized over mesh activity. Therefore, you should keep the connection and advertisement intervals used by the SoftDevice as large as possible (i.e. infrequent) when using Bluetooth low energy connections."

     

Reply
  • Could you double check in your map file (found inside the build folder of your example code) that the 0x0002EF8A refers to the TIMER_OLDER_THAN() or bearer_handler_action_end() function just to double check this is where the error is occuring? Just take a look at the .map file & try to find the 0x0002EF8A  location in memory & let us know what the comment is for that memory location. It might be that this exact location is not in memory, but then you can take a look at the next values that are in between this memory location.

    Did you refer to the coexistence with other nordic SDK's to merge the mesh sdk with uart? Which UART example code version are you using? SDK 14.2?

    My guess is that uart_putstring() & uart_getstring() are taking too much time to complete, which then leads to the MESH ASSERT message you mention. This line in the link above might be helpful too: "By design, the SoftDevice activity is prioritized over mesh activity. Therefore, you should keep the connection and advertisement intervals used by the SoftDevice as large as possible (i.e. infrequent) when using Bluetooth low energy connections."

     

Children
Related