📄 hal_state.c
字号:
/************************************************************************/
/* */
/* Copyright (C) 2006 Oki Electric Industry Co., LTD. */
/* */
/* System Name : uPLAT7D series */
/* Module Name : HAL state manage machine */
/* File Name : hal_state.c */
/* Date : 2006/01/01 initial version */
/* */
/************************************************************************/
#include "common.h"
#include "hal_common.h"
#include "hal_state.h"
/******************************/
/* Private defines */
/******************************/
/*--------- variable ---------*/
static uint8_t hal_status[400]; /* Array of HAL status. */
/*********************************************************************/
/* */
/* Function Name : manageStateMachine */
/* Parameter : cmd */
/* Input : cmd HAL-API number. */
/* Output : */
/* Return : int16_t */
/* Note : Manage state of HAL-API. */
/* Create : LXF 05/12/15 */
/* */
/*********************************************************************/
int16_t manageStateMachine(uint16_t cmd)
{
int16_t rtnVal = HAL_OK;
switch (cmd) {
/* interrupt */
case UPLAT7D_HAL_INTERRUPT_INIT_ALL:
if (hal_status[UPLAT7D_HAL_INTERRUPT_INIT_ALL] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT7D_HAL_INTERRUPT_INIT_ALL] = START;
}
break;
case UPLAT7D_HAL_INTERRUPT_SET_MASTER:
if (hal_status[UPLAT7D_HAL_INTERRUPT_SET_MASTER] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT7D_HAL_INTERRUPT_SET_MASTER] = START;
}
break;
case UPLAT7D_HAL_INTERRUPT_SET_PRIMARY:
if (hal_status[UPLAT7D_HAL_INTERRUPT_SET_PRIMARY] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT7D_HAL_INTERRUPT_SET_PRIMARY] = START;
}
break;
case UPLAT7D_HAL_INTERRUPT_READ_STATUS:
if (hal_status[UPLAT7D_HAL_INTERRUPT_READ_STATUS] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT7D_HAL_INTERRUPT_READ_STATUS] = START;
}
break;
case UPLAT7D_HAL_INTERRUPT_INIT_ALL_END:
hal_status[UPLAT7D_HAL_INTERRUPT_INIT_ALL] = END;
break;
case UPLAT7D_HAL_INTERRUPT_SET_MASTER_END:
hal_status[UPLAT7D_HAL_INTERRUPT_SET_MASTER] = END;
break;
case UPLAT7D_HAL_INTERRUPT_SET_PRIMARY_END:
hal_status[UPLAT7D_HAL_INTERRUPT_SET_PRIMARY] = END;
break;
case UPLAT7D_HAL_INTERRUPT_READ_STATUS_END:
hal_status[UPLAT7D_HAL_INTERRUPT_READ_STATUS] = END;
break;
/* timer */
case UPLAT7D_HAL_TIMER_INIT:
if (hal_status[UPLAT7D_HAL_TIMER_INIT] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT7D_HAL_TIMER_INIT] = START;
}
break;
case UPLAT7D_HAL_TIMER_SET_START:
if (hal_status[UPLAT7D_HAL_TIMER_SET_START] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT7D_HAL_TIMER_SET_START] = START;
}
break;
case UPLAT7D_HAL_TIMER_INIT_END:
hal_status[UPLAT7D_HAL_TIMER_INIT] = END;
break;
case UPLAT7D_HAL_TIMER_SET_START_END:
hal_status[UPLAT7D_HAL_TIMER_SET_START] = END;
break;
/* sio */
case UPLAT7D_HAL_SIO_INIT:
if (hal_status[UPLAT7D_HAL_SIO_INIT] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT7D_HAL_SIO_INIT] = START;
}
break;
case UPLAT7D_HAL_SIO_RX_DATA:
if (hal_status[UPLAT7D_HAL_SIO_RX_DATA] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT7D_HAL_SIO_RX_DATA] = START;
}
break;
case UPLAT_7D_HAL_SIO_TX_DATA:
if (hal_status[UPLAT_7D_HAL_SIO_TX_DATA] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_SIO_TX_DATA] = START;
}
break;
case UPLAT_7D_HAL_SIO_READ_STATUS:
if (hal_status[UPLAT_7D_HAL_SIO_READ_STATUS] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_SIO_READ_STATUS] = START;
}
break;
case UPLAT7D_HAL_SIO_INIT_END:
hal_status[UPLAT7D_HAL_SIO_INIT] = END;
break;
case UPLAT7D_HAL_SIO_RX_DATA_END:
hal_status[UPLAT7D_HAL_SIO_RX_DATA] = END;
break;
case UPLAT_7D_HAL_SIO_TX_DATA_END:
hal_status[UPLAT_7D_HAL_SIO_TX_DATA] = END;
break;
case UPLAT_7D_HAL_SIO_READ_STATUS_END:
hal_status[UPLAT_7D_HAL_SIO_READ_STATUS] = END;
break;
/* dmac */
case UPLAT_7D_HAL_DMAC_INIT:
if (hal_status[UPLAT_7D_HAL_DMAC_INIT] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_DMAC_INIT] = START;
}
break;
case UPLAT_7D_HAL_DMAC_FOWARD:
if (hal_status[UPLAT_7D_HAL_DMAC_FOWARD] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_DMAC_FOWARD] = START;
}
break;
case UPLAT_7D_HAL_DMAC_STATUS:
if (hal_status[UPLAT_7D_HAL_DMAC_STATUS] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_DMAC_STATUS] = START;
}
break;
case UPLAT_7D_HAL_DMAC_CHANGE_TIMES:
if (hal_status[UPLAT_7D_HAL_DMAC_CHANGE_TIMES] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_DMAC_CHANGE_TIMES] = START;
}
break;
case UPLAT_7D_HAL_DMAC_INIT_END:
hal_status[UPLAT_7D_HAL_DMAC_INIT] = END;
break;
case UPLAT_7D_HAL_DMAC_FOWARD_END:
hal_status[UPLAT_7D_HAL_DMAC_FOWARD] = END;
break;
case UPLAT_7D_HAL_DMAC_STATUS_END:
hal_status[UPLAT_7D_HAL_DMAC_STATUS] = END;
break;
case UPLAT_7D_HAL_DMAC_CHANGE_TIMES_END:
hal_status[UPLAT_7D_HAL_DMAC_CHANGE_TIMES] = END;
break;
/* pio */
case UPLAT_7D_HAL_PIO_SET_FUNCTION:
if (hal_status[UPLAT_7D_HAL_PIO_SET_FUNCTION] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_PIO_SET_FUNCTION] = START;
}
break;
case UPLAT_7D_HAL_PIO_GET_FUNCTION:
if (hal_status[UPLAT_7D_HAL_PIO_GET_FUNCTION] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_PIO_GET_FUNCTION] = START;
}
break;
case UPLAT_7D_HAL_PIO_SET_IO:
if (hal_status[UPLAT_7D_HAL_PIO_SET_IO] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_PIO_SET_IO] = START;
}
break;
case UPLAT_7D_HAL_PIO_READ_IO:
if (hal_status[UPLAT_7D_HAL_PIO_READ_IO] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_PIO_READ_IO] = START;
}
break;
case UPLAT_7D_HAL_PIO_OUT_DATA:
if (hal_status[UPLAT_7D_HAL_PIO_OUT_DATA] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_PIO_OUT_DATA] = START;
}
break;
case UPLAT_7D_HAL_PIO_OUT_BIT_DATA:
if (hal_status[UPLAT_7D_HAL_PIO_OUT_BIT_DATA] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_PIO_OUT_BIT_DATA] = START;
}
break;
case UPLAT_7D_HAL_PIO_IN_DATA:
if (hal_status[UPLAT_7D_HAL_PIO_IN_DATA] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_PIO_IN_DATA] = START;
}
break;
case UPLAT_7D_HAL_PIO_INI_BIT_DATA:
if (hal_status[UPLAT_7D_HAL_PIO_INI_BIT_DATA] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_PIO_INI_BIT_DATA] = START;
}
break;
case UPLAT_7D_HAL_PIO_SET_FUNCTION_END:
hal_status[UPLAT_7D_HAL_PIO_SET_FUNCTION] = END;
break;
case UPLAT_7D_HAL_PIO_GET_FUNCTION_END:
hal_status[UPLAT_7D_HAL_PIO_GET_FUNCTION] = END;
break;
case UPLAT_7D_HAL_PIO_SET_IO_END:
hal_status[UPLAT_7D_HAL_PIO_SET_IO] = END;
break;
case UPLAT_7D_HAL_PIO_READ_IO_END:
hal_status[UPLAT_7D_HAL_PIO_READ_IO] = END;
break;
case UPLAT_7D_HAL_PIO_OUT_DATA_END:
hal_status[UPLAT_7D_HAL_PIO_OUT_DATA] = END;
break;
case UPLAT_7D_HAL_PIO_OUT_BIT_DATA_END:
hal_status[UPLAT_7D_HAL_PIO_OUT_BIT_DATA] = END;
break;
case UPLAT_7D_HAL_PIO_IN_DATA_END:
hal_status[UPLAT_7D_HAL_PIO_IN_DATA] = END;
break;
case UPLAT_7D_HAL_PIO_INI_BIT_DATA_END:
hal_status[UPLAT_7D_HAL_PIO_INI_BIT_DATA] = END;
break;
/* uart */
case UPLAT7D_HAL_UART_INIT:
if (hal_status[UPLAT7D_HAL_UART_INIT] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT7D_HAL_UART_INIT] = START;
}
break;
case UPLAT7D_HAL_UART_RX_DATA:
if (hal_status[UPLAT7D_HAL_UART_RX_DATA] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT7D_HAL_UART_RX_DATA] = START;
}
break;
case UPLAT_7D_HAL_UART_TX_DATA:
if (hal_status[UPLAT_7D_HAL_UART_TX_DATA] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
else {
hal_status[UPLAT_7D_HAL_UART_TX_DATA] = START;
}
break;
case UPLAT_7D_HAL_UART_READ_STATUS:
if (hal_status[UPLAT_7D_HAL_UART_READ_STATUS] == START) {
rtnVal = HAL_DOUBLE_ERROR;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -