⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 board.h

📁 Real-Time Digital Signal Processing Implementations, Applications, and Experiments with the TMS320C
💻 H
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************/
/*****************************************************************************/
/*  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 + -