I'm still encountering the problem even if I tried to reset the definition of MQX_INCLUDE_FLOATING_POINT_IO to 0. It happens only after activating other interrupts. If I call this CGI with no other interrupts, it goes. So I really can't understand my problem yet.
This is my CGI.
static int cgi_gettime (HTTPD_SESSION_STRUCT *session) { char actual_time[8], *actual_time_ptr; uint_32 len = 0, hours, minutes, seconds; actual_time_ptr = &actual_time[0]; hours = (uint_32)rtc_time.hours; minutes = (uint_32)rtc_time.minutes; seconds = (uint_32)rtc_time.seconds; sprintf (actual_time_ptr, "%d.%d.%d\n", hours, minutes, seconds); httpd_sendstr (session->sock, actual_time); return session->request.content_len;}
This is what I get from serial:
*** UNHANDLED INTERRUPT ***Vector #: 255 0xffOffset : 1020 0x3fcTask Id: 0x10004 Td_ptr 0x200084d4 Stack Frame: 0xa009610Interrupt_nesting level: 1 PC: 0xffffffff SR: 0xffffBenvenuti su Archimede!
or
*** UNHANDLED INTERRUPT ***Vector #: 2 0x2Offset : 8 0x8Task Id: 0x10004 Td_ptr 0x200084d4 Stack Frame: 0x200095f0Interrupt_nesting level: 1 PC: 0x000078ba SR: 0x2004
seemingly in random occurrence. Anyway only one unhandled interrupt comes at a time at the execution of "sprintf" causing an overflow in interrupt stack and an unknown error from sprintf function (see capture attached). Other interrupts (RTC and GPT) seem to go on, shell task also keeps goin but obviously RAM is corrupted somewhere and the http_server no longer lets me load my web pages.
Regards,
Mark.