Files
2022-08-22 13:55:16 +08:00

58 lines
1.3 KiB
C

/*
* Copyright 2021 MindMotion Microelectronics Co., Ltd.
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "board_init.h"
#include "tos_shell.h"
#include "hal_gpio.h"
#define APPLICATION_TASK_STK_SIZE 0x1000
k_task_t application_task;
uint8_t application_task_stk[APPLICATION_TASK_STK_SIZE];
static char gs_cmd_buffer[32];
__attribute__ ((__weak__)) void application_entry(void *arg)
{
NVIC_EnableIRQ(BOARD_DEBUG_UART_IRQ);
while (1) {
GPIO_WriteBit(GPIOI, GPIO_PIN_0, 0);
tos_task_delay(1000);
GPIO_WriteBit(GPIOI, GPIO_PIN_0, 1);
tos_task_delay(1000);
}
}
static void board_shell_output_t(const char ch)
{
if (ch == '\n')
{
while ( 0u == (UART_STATUS_TX_EMPTY & UART_GetStatus(BOARD_DEBUG_UART_PORT)) )
{}
UART_PutData(BOARD_DEBUG_UART_PORT, '\r');
}
while ( 0u == (UART_STATUS_TX_EMPTY & UART_GetStatus(BOARD_DEBUG_UART_PORT)) )
{}
UART_PutData(BOARD_DEBUG_UART_PORT, ch);
}
/*
* Functions.
*/
int main(void)
{
BOARD_Init();
tos_knl_init();
tos_task_create(&application_task, "main_task", application_entry, NULL, 1, application_task_stk, APPLICATION_TASK_STK_SIZE, 0);
tos_shell_init(gs_cmd_buffer, sizeof(gs_cmd_buffer), board_shell_output_t, NULL);
tos_knl_start();
return 0;
}
/* EOF. */