コード例 #1
0
void vApplicationStackOverflowHook(xTaskHandle pxTask, char *pcTaskName)
{
        /*
         * Run time stack overflow checking is performed if
         * configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2.
         * This hook function is called if a stack overflow is detected.
         */
        (void) pxTask;
        pr_error_str_msg("STACK OVERFLOW in ", pcTaskName);
        panic(PANIC_CAUSE_OVERFLOW);
}
コード例 #2
0
static int processRxBuffer(Serial *serial, char *buffer, size_t *rxCount)
{
    size_t count = serial->get_line_wait(buffer + *rxCount, BUFFER_SIZE - *rxCount, 0);

    *rxCount += count;
    int processMsg = 0;

    if (*rxCount >= BUFFER_SIZE - 1) {
        buffer[BUFFER_SIZE - 1] = '\0';
        *rxCount = BUFFER_SIZE - 1;
        processMsg = 1;
        pr_error_str_msg("Rx Buffer overflow:", buffer);
    }
    if (*rxCount > 0) {
        char lastChar = buffer[*rxCount - 1];
        if ('\r' == lastChar || '\n' == lastChar) {
            *rxCount = trimBuffer(buffer, *rxCount);
            processMsg = 1;
        }
    }
    return processMsg;
}