📄 board.h
字号:
/*****************************************************************************/
/*****************************************************************************/
/* BOARD.H - Header file for board.c */
/* */
/* */
/* FUNCTIONS: */
/* */
/* brd_init() */
/* brd_interrupt_host() */
/* brd_led_enable() */
/* brd_led_disable() */
/* brd_led_toggle() */
/* brd_sem_get() */
/* brd_sem_wait() */
/* brd_sem_release() */
/* brd_fifo_reset() */
/* brd_fifo_read() */
/* brd_fifo_write() */
/* brd_busy_delay() */
/* brd_set_cpu_freq() */
/* brd_get_cpu_freq() */
/* brd_emif_init() */
/* */
/* */
/* STATIC FUNCTIONS: */
/* None */
/* */
/* */
/* GLOBAL VARIABLES DEFINED */
/* */
/* */
/*****************************************************************************/
#ifndef _BOARD_H
#define _BOARD_H
#include "type.h"
#undef BRD_OK
#define BRD_OK 0
#undef BRD_ERROR
#define BRD_ERROR -1
#define BRD_CLOSED 0
#define BRD_OPEN 1
#define BRD_BUSY 2
#define BRD_FIFO_SIZE 32
#define BRD_ABORT -2
//Flash device timing in ns. used in configuring CE1 space where
//flash device is mapped
#define WRITE_SETUP_NS 0
#define WRITE_STROBE_NS 45
#define WRITE_HOLD_NS 45
#define READ_SETUP_NS 0
#define READ_STROBE_NS 45
#define READ_HOLD_NS 45
/*----------------------------------------------------------------------------*/
/* ERROR CODES */
/*----------------------------------------------------------------------------*/
#define ERR_BOARD_NOT_INITIALIZED -1
#define ERR_CODEC_NOT_OPENED -2
#define ERR_INVALID_CMD -5
typedef struct _FifoChannel{
u32 takePtr; //ptr to end of written data
u32 putPtr; //ptr to beginning of non-read data
u16 data[BRD_FIFO_SIZE]; //FIFO buffer
} FifoChannel, *PFifoChannel;
typedef struct _FIFO {
FifoChannel dsp_ch;
FifoChannel host_ch;
} FIFO, *PFIFO;
/*----------------------------------------------------------------------------*/
/* MACRO DEFINITIONS */
/*----------------------------------------------------------------------------*/
#define MIN_CPU_FREQ 20
#define MAX_CPU_FREQ 200
#define LED0_MASK 0x1
#define LED1_MASK 0x2
#define LED2_MASK 0x4
#define CPLD_BASE_ADDR 0x600000ul
#define CPLD_CTRL1_DEFAULT 0x10 //NMIEN=1
#define CPLD_DBIO_DEFAULT 0x30
#define CPLD_CTRL2_DEFAULT 0x00
#define CPLD_SEM0_DEFAULT 0x00
#define CPLD_SEM1_DEFAULT 0x00
#define CPLD_SLIC_DEFAULT 0x00
#define CPLD_CTRL1_ADDR (CPLD_BASE_ADDR)
#define CPLD_STAT_ADDR (CPLD_BASE_ADDR+1)
#define CPLD_DBIO_ADDR (CPLD_BASE_ADDR+3)
#define CPLD_CTRL2_ADDR (CPLD_BASE_ADDR+4)
#define CPLD_SEM0_ADDR (CPLD_BASE_ADDR+5)
#define CPLD_SEM1_ADDR (CPLD_BASE_ADDR+6)
#define CPLD_SLIC_ADDR (CPLD_BASE_ADDR+7)
#define CPLD_CTRL1_REG *(volatile u16 *)CPLD_CTRL1_ADDR
#define CPLD_STAT_REG *(volatile u16 *)CPLD_STAT_ADDR
#define CPLD_DBIO_REG *(volatile u16 *)CPLD_DBIO_ADDR
#define CPLD_CTRL2_REG *(volatile u16 *)CPLD_CTRL2_ADDR
#define CPLD_SEM0_REG *(volatile u16 *)CPLD_SEM0_ADDR
#define CPLD_SEM1_REG *(volatile u16 *)CPLD_SEM1_ADDR
#define CPLD_SLIC_REG *(volatile u16 *)CPLD_SLIC_ADDR
#ifdef OLD_BOARD
#define SBSRAM_BASE_ADDR 0x80000ul
#else
#define SBSRAM_BASE_ADDR 0x28000ul
#endif
#define SBSRAM_SIZE 0x80000ul
//EVM semaphores
typedef enum
{
BRD_SEM0,
BRD_SEM1
} BrdSem;
typedef enum
{
BRD_LED0,
BRD_LED1,
BRD_LED2
} BrdLed;
typedef void (*Fp)(void);
/*****************************************************************************/
/* FUNCTIONS */
/*****************************************************************************/
/******************************************************************************/
/* s16 brd_init(u16 freq) - Initialize EVM board for use */
/* */
/* Parameters: */
/* - freq: Desired board operating frequency. */
/* */
/* Return: */
/* - BRD_OK on success */
/* - BRD_ERROR on failure */
/* */
/* Notes: */
/* */
/* Board frequencies must be a multiple of 10 with the lowest being 20 MHz */
/* and the highest being 160 MHz. */
/* */
/******************************************************************************/
s16 brd_init(u16 cpuFreq);
/*****************************************************************************/
/* void brd_interrupt_host() */
/* */
/* This routine interrupts the host application . */
/* */
/* Parameters: */
/* - None */
/* Return: */
/* - None */
/* */
/* Notes: */
/* */
/*****************************************************************************/
void brd_interrupt_host();
/*****************************************************************************/
/* s16 brd_led_enable(BrdLed led) */
/* */
/* This routine enables the specified user-defined LED. */
/* */
/* Parameters: */
/* - led - specific led */
/* */
/* Return: */
/* - BRD_OK on success */
/* - BRD_ERROR on failure */
/* */
/* Notes: */
/* */
/*****************************************************************************/
s16 brd_led_enable(BrdLed led);
/*****************************************************************************/
/* s16 brd_led_disable(BrdLed led) */
/* */
/* This routine disables the specified user-defined LED. */
/* */
/* Parameters: */
/* - led - specific led */
/* */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -