If I as an example subscribe to all commands starting with AT$ and AT+, using the same handler function for both subscription calls, the module crashes upon receiving a AT$ command.
(Tested on multiple versions on Q2687 and SL6087, using ARM ADS compiler)
If I instead have the subscriptions as:
adl_atCmdSubscribe(“AT$”,handler1,ADL_CMD_TYPE_ROOT);
adl_atCmdSubscribe(“AT+”,handler2,ADL_CMD_TYPE_ROOT);
handler1 is properly called on reception of AT$ command.
handler1 and handler2 are in this case identical to handler but implemented as two functions instead of one.
It’s somewhat embarrasing really.
In the “error” case, output to an external application caused the external application to reset the module.
The output to the external application was slightly different in the “ok” case.
I realized this after I failed to make a standalone repro case, and took time to investigate further in the project where I had the “issue”…