Keil Logo

Error Function

Some system error conditions can be detected during runtime. If RTX kernel detects a runtime error, it calls the os_error() runtime error function.

void os_error (U32 err_code) {
  /* This function is called when a runtime error is detected. */
  OS_TID err_task;

  switch (err_code) {
    case OS_ERR_STK_OVF:
      /* Identify the task with stack overflow. */
      err_task = isr_tsk_get();
    case OS_ERR_FIFO_OVF:
    case OS_ERR_MBX_OVF:
  for (;;);

The error code is passed to this function as a parameter err_code:

Error Code Description
OS_ERR_STK_OVF The stack checking has detected a stack overflow for the currently running task.
OS_ERR_FIFO_OVF The ISR FIFO Queue buffer overflow is detected.
OS_ERR_MBX_OVF The mailbox overflow is detected for isr_mbx_send() function.

The runtime error function must contain an infinite loop to prevent further program execution. You can use an emulator to step over infinite loop and trace into the code introducing a runtime error. For the overflow errors this means you need to increase the size of the object causing an overflow.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

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.