Files

252 lines
7.9 KiB
C

/******************************************************************************
TORNADO AMC modules Software Development Kit (SDK). Rev 4A.
General definitions and API functions.
(C) MicroLAB Systems, 2015-2017
http://www.mlabsys.com
ftp://ftp.mlabsys.com
email: techsupport@mlabsys.com
Description:
------------
This file contains general definitions and API functions for TORNADO AMC
modules SDK and must be included in the user C-application for
TORNADO AMC modules.
Revision history:
-----------------
rev.2A - 2015, initial release for TORNADO-A6678 board rev.1B;
rev.3A - 2016:
- added support for TORNADO-A6678/FMC board rev.1A;
rev.3B - 2017:
- added support for TORNADO-A6678/FMC board rev.1B;
rev.4A - 2017:
- added support for TORNADO-AZ/FMC board rev.1A;
Notes:
------
1. This C-header file is an include file for TI C6xxx C/C++ Code
Generation Tools, which must be invoked to compile for C66xx DSP
platform.
2. This file is best viewed with the TAB setting set to '4'.
Copyright:
----------
This utility is supplied free of charge as it is without any obligation
from MicroLAB Systems. No responsibility is assumed for any use or misuse
of these utilities.
******************************************************************************/
/**
* @file TA66XX_DSP.h
*
* @brief Main include file
*
* This file contains general definitions and API functions for TORNADO
* AMC modules SDK
*
*/
#ifndef __TA66XX_DSP_H__ // check for this file has been already included
#define __TA66XX_DSP_H__ 1
// General defs
#define TA66XX_ON 1
#define TA66XX_OFF 0
// Include C66xx DSP defs, macros and aux functions
#include "C66XX.h"
// Include TORNADO AMC SDK functions errors
#include "TASDK_ERR.h"
//=============================================================================
/** TORNADO AMC SDK revision ID */
#define TA66XX_SDK_REVISION_ID "4A"
//=============================================================================
//=============================================================================
//============ TORNADO AMC SDK API functions ID defs ==========================
//=============================================================================
/** @addtogroup TA66XX_FUNCTIONS_ID SDK API functions ID defs
* @{
*/
/**< Function name max size */
#define TA66XX_FUNCTION_NAME_LEN_MAX 64
enum
{
TA66XX_GET_ERROR_MESSAGE_FUNCTION_ID = 0,
TA66XX_GET_FUNCTION_NAME_FUNCTION_ID,
TA66XX_BC_SET_I2C_INTERRUPT_NUMBER_FUNCTION_ID,
TA66XX_BC_SET_UART_INTERRUPT_NUMBER_FUNCTION_ID,
TA66XX_BC_INIT_FUNCTION_ID,
TA66XX_BC_MAP_DSP_GPIO_INTERRUPT_FUNCTION_ID,
TA66XX_BC_UNMAP_DSP_GPIO_INTERRUPT_FUNCTION_ID,
TA66XX_BC_INIT_UART_FUNCTION_ID,
TA66XX_BC_WRITE_EEPROM_FUNCTION_ID,
TA66XX_BC_READ_EEPROM_FUNCTION_ID,
TA66XX_BC_ERASE_EEPROM_FUNCTION_ID,
TA66XX_BC_GET_DEVICE_INFO_FUNCTION_ID,
TA66XX_BC_GET_HW_CFG_INFO_FUNCTION_ID,
TA66XX_BC_GET_FMC_INFO_FUNCTION_ID,
TA66XX_BC_GET_TEMP_STATE_FUNCTION_ID,
TA66XX_BC_GET_POWER_STATE_FUNCTION_ID,
TA66XX_BC_GET_FMC_POWER_STATE_FUNCTION_ID,
TA66XX_BC_GET_SFP_INFO_FUNCTION_ID,
TA66XX_BC_SET_FPGA_HIF_CONFIG_FUNCTION_ID,
TA66XX_BC_GET_FPGA_HIF_CONFIG_FUNCTION_ID,
TA66XX_BC_CLEAR_FPGA_CNF_FUNCTION_ID,
TA66XX_BC_LOAD_FPGA_CNF_FUNCTION_ID,
TA66XX_BC_GET_GBE_PORT_INFO_FUNCTION_ID,
TA66XX_BC_INIT_GBE_PORT_FUNCTION_ID,
TA66XX_BC_ERASE_FLASH_FUNCTION_ID,
TA66XX_BC_WRITE_FLASH_FUNCTION_ID,
TA66XX_BC_READ_FLASH_FUNCTION_ID,
TA66XX_SC_INIT_FLASH_RECORD_LIST_FUNCTION_ID,
TA66XX_SC_GET_NUMBER_OF_FLASH_RECORDS_FUNCTION_ID,
TA66XX_SC_GET_FLASH_RECORD_LIST_FUNCTION_ID,
TA66XX_SC_GET_FLASH_RECORD_INFO_FUNCTION_ID,
TA66XX_SC_READ_FLASH_RECORD_DATA_FUNCTION_ID,
TA66XX_SC_CREATE_FLASH_RECORD_FUNCTION_ID,
TA66XX_SC_WRITE_FLASH_RECORD_DATA_FUNCTION_ID,
TA66XX_SC_XCLOSE_FLASH_RECORD_FUNCTION_ID,
TA66XX_SC_UPDATE_FLASH_RECORD_FUNCTION_ID,
TA66XX_SC_DELETE_FLASH_RECORD_FUNCTION_ID,
TA66XX_SC_SQUEEZE_FLASH_RECORDS_FUNCTION_ID,
TA66XX_SC_GET_FLASH_FREE_SPACE_FUNCTION_ID,
TA66XX_SC_GET_BOOT_SEQ_FUNCTION_ID,
TA66XX_SC_DELETE_BOOT_SEQ_FUNCTION_ID,
TA66XX_SC_SET_BOOT_SEQ_FUNCTION_ID,
TA66XX_SC_LOAD_DSP_APPL_FROM_MEMORY_FUNCTION_ID,
TA66XX_SC_LOAD_DSP_APPL_FROM_FLASH_RECORD_FUNCTION_ID,
TA66XX_SC_LOAD_FPGA_CNF_FROM_FLASH_RECORD_FUNCTION_ID,
TA66XX_NUMBER_OF_FUNCTIONS
};
/** @}*/
//=============================================================================
#ifdef __cplusplus
extern "C" {
#endif
//=============================================================================
//============ General SDK API functions declarations =========================
//=============================================================================
/** @addtogroup TA66XX_GENERAL TORNADO AMC SDK general API functions
* @{
*/
/*------------ TA66XX_set_error() function -------------------------------*//**
* @brief Function should be used on exit from SDK API functions in
* order to set error code and function ID of SDK API functions
*
* @param[in] err - error code;
* @param[in] function_id - function ID of SDK API functions;
*
* @return Error code
*
-----------------------------------------------------------------------------*/
int32_t TA66XX_set_error(int32_t err, int32_t function_id);
/*------------ TA66XX_get_last_error() function --------------------------*//**
* @brief Function returns error code of last executed API function
*
* @return Error code of last executed API function
*
-----------------------------------------------------------------------------*/
int32_t TA66XX_get_last_error(void);
/*------------ TA66XX_get_error_flag() function --------------------------*//**
* @brief Function returns status of ERROR_FLAG for API functions
*
* ERROR_FLAG is set by each API function in case error has been detected.
* ERROR_FLAG can be reset by TA66XX_clear_error_flag() API function
*
* @param[out] error_code - pointer to a variable to receive the error code in
* case error has been detected. In case pointer is NULL, then
* no error code is returned;
* @param[out] error_function_id - pointer to a variable to receive ID of the
* first API function, which has returned with error. In case
* pointer is NULL, then no function ID is returned;
*
* @return Status of ERROR_FLAG: ON or OFF
*
-----------------------------------------------------------------------------*/
int32_t TA66XX_get_error_flag(int32_t *error_code, int32_t *error_function_id);
/*------------ TA66XX_clear_error_flag() function ------------------------*//**
* @brief Function clear ERROR_FLAG for API functions
*
* @return Always OK
*
-----------------------------------------------------------------------------*/
int32_t TA66XX_clear_error_flag(void);
/*------------ TA66XX_get_error_message() function -----------------------*//**
* @brief Function returns the text interpretation of the error code.
*
* @param[in] error - error code to be interpreted;
* @param[out] error_message - pointer to the returned string. In case pointer
* is NULL, then no text is filled in;
*
* @return Error code
*
-----------------------------------------------------------------------------*/
int32_t TA66XX_get_error_message(int32_t error, char *error_message);
/*------------ TA66XX_get_function_name() function -----------------------*//**
* @brief Function returns the text interpretation of API function.
*
* @param[in] function_id - ID of the API function to be interpreted;
* @param[out] function_name - pointer to the returned string. In case pointer
* is NULL, then no text is filled in;
*
* @return Error code
*
-----------------------------------------------------------------------------*/
int32_t TA66XX_get_function_name(int32_t function_id, char *function_name);
/** @}*/
//=============================================================================
#ifdef __cplusplus
}
#endif
//=============================================================================
#endif /* __TA66XX_DSP_H__ */