For example, see:
viewtopic.php?f=29&t=3621&p=14446&hilit=startup+delay#p14446
viewtopic.php?f=30&t=3227&p=12032&hilit=delay+startup#p12032
viewtopic.php?f=30&t=3227&p=12032&hilit=delay+startup#p12032
i don’t know if i agree entirely,
the latest firmware editions try to start you application 8 times and if it still crashes the 8th time, they give up on it.

the latest firmware editions
What editions, specifically?
try to start you application 8 times and if it still crashes the 8th time, they give up on it.
Is that actually documented?
But there are still people using firmware versions without this feature: viewtopic.php?f=19&t=4486

Madouc:
the latest firmware editions
What editions, specifically?
i’m fairly certain that this mechanism is functional since 7.x

try to start you application 8 times and if it still crashes the 8th time, they give up on it.
Is that actually documented?
yes, see ‘Description / Recovery Mechanism’ in the ADL user guide

But there are still people using firmware versions without this feature: viewtopic.php?f=19&t=4486
i know, and for these people it’s still helpful.
The requirement that an application has to be built for a firmware version that matches the firmware physically installed on the device.
(in general, “matches” means “the same as”).
It’s a bit like making an application for a PC: if you build the application to run on Vista, it won’t work on Win-95
The response to AT+WOPEN=2 shows both the firmware version physically installed on the device, and the version for which the currently-loaded application was built:
+WOPEN: 2,“AT v06.00”,“AT v06.31”
In general, the two numbers need to be the same.
Examples:
viewtopic.php?f=78&t=4501&p=18139#p18139
viewtopic.php?f=78&t=4390&p=17817#p17817
Although it is clearly documented that you cannot do this, people do frequently ask how to do it!
The ADL User guide clearly says,
Note:
Currently these API functions cannot be used to execute a custom AT command subscribed with adl_atCmdSubscribe to call its handler. Only standard AT commands may be used with these functions. Custom AT commands can be executed when received over an external port, such as a UART.
Some possible workarounds are suggested here: viewtopic.php?f=3&t=3936&start=0&hilit=execute+custom+at+command

Don’t use the following code construct:
while(1) { // do something }
The only time such a loop may be used is when it’s of the form:
while(1)
{
adl_eventWait(...);
// do something as a result of the Event...
}
Because, during the Event Wait, other tasks can run…

davidc:
Don’t use the following code construct:
while(1) { // do something }
The only time such a loop may be used is when it’s of the form:
while(1) { adl_eventWait(...); // do something as a result of the Event... }
Because, during the Event Wait, other tasks can run…
or use adl_ctxSleep(1);
this also introduces a moment for the processor to run other tasks

or use adl_ctxSleep(1);
Yes: that’s why I said, “of the form…” - because I was too lazy to try to come up with an exhaustive term…
“I downloaded my Application and nothing’s happening - what should I do?” is quite a frequently-asked question; eg: viewtopic.php?f=34&t=4585
I think it would be helpful - especially to newbies - to have a basic fault-finding guide for such circumstances; eg,
- What is the status LED doing?
- What do AT+WOPEN=2 and AT+WOPEN=7 tell you?
- How to get the debug Traces
- etc?
And links to other common issues - such as checking versions are correct, waiting for GSM registration, etc,…
Unfortunately, there is no guaranteed way to do this - you just cannot rely upon the network:
https://forum.sierrawireless.com/t/date-time-time-zone-information/3962/2
https://forum.sierrawireless.com/t/get-current-date-time-from-network/739/10
https://forum.sierrawireless.com/t/getting-network-date-and-time/2812/4
https://forum.sierrawireless.com/t/date-and-time-in-q2686/4701/1
Note that this is a network limitation - nothing specifically to do with SiWi
Well, that’s not really a question - but it is frequently suggested that reloading firmware might fix problems.
eg, https://forum.sierrawireless.com/t/how-to-restore-levels-filter-in-ds-1-1-2/4966/5
The point is that reloading firmware restores settings to their defaults - so this will obviously fix any problems that were due to mis-configuration!
See: https://forum.sierrawireless.com/t/network-registeration/4762/13
The way that FCM gathers received bytes and delivers them to the Data Handler in “blocks” is a very common cause of questions:
https://forum.sierrawireless.com/t/whats-a-block/399/6
https://forum.sierrawireless.com/t/rs-232-performance/5077/2
https://forum.sierrawireless.com/t/q2686-uart-receive-buffer-size-is-limit-only-56/4436/10
https://forum.sierrawireless.com/t/fcm-and-wip/4407/10
https://forum.sierrawireless.com/t/q2686-uart-buffer-size/5031/2

The way that FCM gathers received bytes and delivers them to the Data Handler in “blocks” is a very common cause of questions
For an excellent example of how to cope with this - using a State Machine approach - see:
https://forum.sierrawireless.com/t/good-paper-on-event-driven-programming/3848/6
NB: “State Machine” is also known as “Finite State Machine” - or “FSM”, for short.