|
|||||||||||||||||||||||||
Technical Support On-Line Manuals RL-ARM User's Guide (MDK v4) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Error FunctionVarious errors can cause the system to crash when the system is running. For critical errors, the system calls the system error function sys_error(). This makes is possible to catch the exception and possibly recover from it. The system can, for example, run out of memory or fail to allocate the TCP socket. These are usually an indication that the system configuration is wrong and needs to be corrected. The error function alerts the developer as to what requires changing. The parameter code holds the error code of the exception. This can have the following values:
This is an example of the error function which can be customized. This function currently does nothing but stop the TCPnet system by running in an endless loop. void sys_error (ERROR_CODE code) { /* This function is called when a fatal error is encountered. The normal */ /* program execution is not possible anymore. Add your critical error */ /* handler code here. */ switch (code) { case ERR_MEM_ALLOC: /* Out of memory. */ break; case ERR_MEM_FREE: /* Trying to release non existing memory block. */ break; case ERR_MEM_CORRUPT: /* Memory Link pointer is Corrupted. */ /* More data written than the size of allocated mem block. */ break; case ERR_MEM_LOCK: /* Locked Memory management function (alloc/free) re-entered. */ /* RTX multithread protection malfunctioning, not implemented */ /* or interrupt disable is not functioning correctly. */ break; case ERR_UDP_ALLOC_SOCKET: /* Out of UDP Sockets. */ break; case ERR_TCP_ALLOC_SOCKET: /* Out of TCP Sockets. */ break; case ERR_TCP_STATE_UNDEFINED: /* TCP State machine in undefined state. */ break; } /* End-less loop */ while (1); }
| ||||||||||||||||||||||||
|
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.