« Previous -
Version 10/44
(diff) -
Next » -
Current version
Anthony Rowe, 06/08/2007 10:52 pm
= Error Handling =
Nano-RK uses the convention that system calls return -1 upon error and 1 upon success.
NRK_OK 1
NRK_ERROR -1
'''_nrk_errno_set(NRK_ERRNO error_code)'''
This function should be used by user defined system calls to set an error number.
'''uint8_t nrk_errno_get()'''
Once a function returns failure (-1), this function can be used to get a more descriptive error code.
'''Kernel Errors'''
*NRK ERROR: ERROR_MESSAGE
''task_id'' is the ID of the task that caused the error. 0 means the kernel had an internal error.
- "Task Stack Overflow" * The canary value in the identified task was over written. Try making the task stack size larger.
- "Reserve Error in Scheduler"
- "Task Reserve Violated" * Increase the reservation for the task, or disable a task reserve by setting it to 0
- "Scheduler Missed Wakeup"
- "Duplicated Task ID" * There is a problem with the way the tasks are being configured
- "Unexpected Restart"
- "Idle or Kernel Stack Overflow"
- "Extra Task started, is nrk_cfg.h ok?" * Most likely NRK_MAX_TASKS in nrk_cfg.h needs to be larger
- "Low Voltage"
- "Unhandled Interrupt Vector"
- "Timer Overflow"
- "Device Driver Error"
- "Failed to create Signal"
- "Kernel function not implemented"
- "UNKOWN"