Exception handling

Hi to all,

currently am working on OPEN AT OS. when am enabling the gprs conneciotn its getting self ip provided by the network after that it is connecting to server and sending data…here Q24 module is resetting…

ADL_INIT_REBOOT_FROM_EXCEPTION

this case am getting every time…

please help me

Check if the modem is storing any backtraces to help determine the error. To see backtraces, open the Backtraces view in the Target Manager in Developer Studio and click the refresh button.

actually open AT os am using on microsoft visual studio vc++ compiler. not on developer studio environment. please clarify my dought.

Unless you can determine what exception is being thrown, it will be very difficult to determine the source. Possible causes include:

  • Stack Overflow - Make sure your stacks are declared big enough. Increase them one by one and check if the problem disappears
  • Watchdog reset - Check for any code that may take a long time to process, and pause the watchdog before
  • Invalid pointer/memory access issues - Make sure all pointers are valid, you aren’t declaring invalid memory etc.

I strongly suggest you install Developer Studio. It will make debugging issues such as this much easier!

only one task is running i.e adl_main and 4 handlers.
stack declaration is like this…

u32 wm_apmCustomStack [ 512 ];
const u16 wm_apmCustomStackSize = sizeof ( wm_apmCustomStack );

how to check memory map…any files like *.map…please tell me.

i tried with developer studio but after migrating code into developer studio am getting so much of errors.
at present am using visual studio environment. so please tell me how to check stack memory…total and allocated.

can i unsubscribe the handler in the same handler definition??

regards,
Mareedu

If you are using the depreciated single task function, the ADL user guide says to use the following stack declaration:

It looks like your stack is too small, try making it bigger.

You should be able to unsubscribe anywhere except for low level interrupts

I have never used Visual Studio for Sierra Products, and I am not even sure if it is still supported. Can’t help there.

am increased the stack size to 2048…still getting same problem-reset.

if my application wants to reset the watch dog timer value than what should i do…without stopping the watch dog timer…is it access able from application code.

u32 adl_wdPut2Sleep ( u32 i_u32_SleepDuration );

Because of Open AT IDE with VC++ compiler, WDT routines are not presented in the library provided by the Open AT source.

But am not using Developer studio.
:slight_smile:

increased the stack upto 3*1024…then also restarting

watch dog timer feature is not available…

can you please elaborate this point…

http://computer.howstuffworks.com/c25.htm