コード例 #1
0
ファイル: nrk_error.cpp プロジェクト: ESE519/EVM-2013
void nrk_kernel_error_add (uint8_t n, uint8_t task)
{
    error_num = n;
    error_task = task;

#ifdef NRK_LOG_ERRORS
    _nrk_log_error(error_num, error_task);
#endif

#ifdef NRK_REPORT_ERRORS
    nrk_error_print ();

#endif  /*  */

#ifdef NRK_SOFT_REBOOT_ON_ERROR
#ifdef NRK_WATCHDOG
    nrk_watchdog_disable();
#endif
    asm volatile("jmp 0x0000\n\t" ::);
#endif

#ifdef NRK_REBOOT_ON_ERROR
    // wait for watchdog to kick in
    if(n!=NRK_WATCHDOG_ERROR && n!=NRK_BOD_ERROR && n!=NRK_EXT_RST_ERROR)
    {
        nrk_watchdog_enable();
        nrk_int_disable();
        while(1);
    }
#endif

#ifdef NRK_HALT_ON_ERROR
    uint8_t t;
    uint8_t i;

    while (1)
    {
        for(i=0; i<20; i++ )
        {
            nrk_led_set (2);
            nrk_led_clr (3);
            for (t = 0; t < 100; t++)
                nrk_spin_wait_us (1000);
            nrk_led_set (3);
            nrk_led_clr (2);
            for (t = 0; t < 100; t++)
                nrk_spin_wait_us (1000);
        }
        nrk_led_clr (3);
        nrk_led_clr (2);
        blink_morse_code_error( task );
        blink_morse_code_error( n );
    }

#endif  /*  */




}
コード例 #2
0
ファイル: nrk_error.c プロジェクト: vishnudh/RTOS
void nrk_kernel_error_add (uint8_t n, uint8_t task)
{
    error_num = n;
    error_task = task;

#ifdef NRK_REPORT_ERRORS
    nrk_error_print ();

#endif  /*  */
}
コード例 #3
0
ファイル: nrk_error.c プロジェクト: vishnudh/RTOS
void nrk_error_add (uint8_t n)
{
    error_num = n;
    error_task = nrk_cur_task_TCB->task_ID;

#ifdef NRK_REPORT_ERRORS
    nrk_error_print ();

#endif  /*  */
}