FCM Services just running in task 0?


#1

Hi,

on UART2 we’ve connected an GPS device. Now, we tried to switch this job from task 0 to a lower priorized task (task 2) - without success.

Calling the initialization functions (related AT commands and adl_fcmSubscribe()) within task 2 doesn’t help - the callback functions do always run in task 0. One workaround: Putting the data pointer recevied by FCM data handler into a message in order to sent it to the wanted task context.

Is there an easier way?

Thanks,
Oliver.


#2

I don’t think that’ll work - the pointer may not be valid by the time the other task receives it…

Either I’ve totally missed it, or Open-AT’s multitasking is a bit lame: https://forum.sierrawireless.com/t/cant-receive-message-in-other-task-then-task-0/4952/8


#3

I hope this works. The API says:

So I’ll return FALSE and send the data pointer to the other task.

The other task uses adl_fcmReleaseCredits(handle, 1) to release it. 1, because I just want to release one credit (the oldest credit).

I’ll give it a try.
Oliver.


#4

Yes, it works. :slight_smile:


#5

Important note from ADL user guide regarding multitasking limitations: