📄 dsp_gpio.h
字号:
/*
===============================================================================
TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION
Property of Texas Instruments
For Unrestricted Internal Use Only
Unauthorized reproduction and/or distribution is strictly prohibited.
This product is protected under copyright law and trade secret law
as an unpublished work.
Created 1999, (C) Copyright 1999 Texas Instruments. All rights reserved.
Filename : dsp_gpio_a9.h
Description : Header file for the MPU DSP_GPIO functions
Project : OMAP
Author : Achuta Thippana
MACROS PROVIDED :
dsp_gpio_set_all_dor
dsp_gpio_set_all_dcr
dsp_gpio_set_all_icr
dsp_gpio_set_all_imr
dsp_gpio_reset_all_isr
FUNCTIONS PROVIDED :
GPIO_LeadReadAllDir
GPIO_LeadReadAllDor
GPIO_LeadReadAllDcr
GPIO_LeadReadAllIcr
GPIO_LeadReadAllImr
GPIO_LeadReadAllIsr
===============================================================================
*/
#ifndef _DSP_GPIO__HH
#define _DSP_GPIO__HH
#include "global_types.h"
#include "mem.h"
#define DSP_DIR_REG_OFFSET 0x000
#define DSP_DOR_REG_OFFSET 0x004
#define DSP_DCR_REG_OFFSET 0x008
#define DSP_ICR_REG_OFFSET 0x00C
#define DSP_IMR_REG_OFFSET 0x010
#define DSP_ISR_REG_OFFSET 0x014
#define DSP_DIR_REG_ADDR (MEM_DSP_GPIO_ADDR + DSP_DIR_REG_OFFSET)
#define DSP_DOR_REG_ADDR (MEM_DSP_GPIO_ADDR + DSP_DOR_REG_OFFSET)
#define DSP_DCR_REG_ADDR (MEM_DSP_GPIO_ADDR + DSP_DCR_REG_OFFSET)
#define DSP_ICR_REG_ADDR (MEM_DSP_GPIO_ADDR + DSP_ICR_REG_OFFSET)
#define DSP_IMR_REG_ADDR (MEM_DSP_GPIO_ADDR + DSP_IMR_REG_OFFSET)
#define DSP_ISR_REG_ADDR (MEM_DSP_GPIO_ADDR + DSP_ISR_REG_OFFSET)
#define DSP_DIR_RESET_VAL 0x0000
#define DSP_DOR_RESET_VAL 0x0000
#define DSP_DCR_RESET_VAL 0xFFFF
#define DSP_ICR_RESET_VAL 0xFFFF
#define DSP_IMR_RESET_VAL 0xFFFF
#define DSP_ISR_RESET_VAL 0x0000
enum { DSP_IT_UNMASK, DSP_IT_MASK };
enum { DSP_FALLING_EDGE, DSP_RISING_EDGE };
enum { DSP_NO_IT_REQUEST, DSP_IT_REQUEST };
enum { DSP_OUTPUT_IO, DSP_INPUT_IO };
/*############################################################################
NAME : DSP_GPIO_SET_BIT
DESCRIPTION : Modifies a bit in a 16 bits register
PARAMETERS : BitNumber : BIT(0..15) (Bit to modify)
Value : 0 / 1
RETURN VALUE: The value of the interrupt INT_Number
LIMITATIONS : None
############################################################################*/
#define DSP_GPIO_SET_BIT(Adress, BitNumber, Value) \
REG16(Adress)= (Value)==0x0 ? \
REG16(Adress)&(~(0x1<<(BitNumber))) : \
REG16(Adress)|(0x1<<(BitNumber))
/*
-----------------------------------------------------------------------------
NAME : dsp_gpio_set_all_dor -
DESCRIPTION : Set the data output register -
SYNOPSYS : void dsp_gpio_set_all_dor(UWORD16 data_out) -
PARAMETERS : Output register pins -
RETURN VALUE: None. -
LIMITATIONS : None -
-----------------------------------------------------------------------------
*/
#define dsp_gpio_set_all_dor(data_reg) \
{ \
*(REGISTER_UWORD16 *)DSP_DOR_REG_ADDR = data_reg;\
}
/*
-----------------------------------------------------------------------------
NAME : dsp_gpio_set_all_dcr -
DESCRIPTION : Set the direction control register -
SYNOPSYS : void dsp_gpio_set_all_dcr(UWORD16 data_out) -
PARAMETERS : Output register pins -
RETURN VALUE: None. -
LIMITATIONS : None -
-----------------------------------------------------------------------------
*/
#define dsp_gpio_set_all_dcr(data_reg) \
{ \
*(REGISTER_UWORD16 *)DSP_DCR_REG_ADDR = data_reg;\
}
/*
-----------------------------------------------------------------------------
NAME : dsp_gpio_set_all_icr -
DESCRIPTION : Set the interrupt control register -
SYNOPSYS : void dsp_gpio_set_all_icr(UWORD16 data_out) -
PARAMETERS : Output register pins -
RETURN VALUE: None. -
LIMITATIONS : None -
-----------------------------------------------------------------------------
*/
#define dsp_gpio_set_all_icr(data_reg) \
{ \
*(REGISTER_UWORD16 *)DSP_ICR_REG_ADDR = data_reg;\
}
/*
-----------------------------------------------------------------------------
NAME : dsp_gpio_set_all_imr -
DESCRIPTION : Set the interrupt mask register -
SYNOPSYS : void dsp_gpio_set_all_imr (UWORD16 data_out) -
PARAMETERS : Output register pins -
RETURN VALUE: None. -
LIMITATIONS : None -
-----------------------------------------------------------------------------
*/
#define dsp_gpio_set_all_imr(data_reg) \
{ \
*(REGISTER_UWORD16 *)DSP_IMR_REG_ADDR = data_reg;\
}
/*############################################################################
NAME : GPIO_SET_MASK_IT_BIT
DESCRIPTION : Mask / Unmask an interrupt bit
PARAMETERS : BIT(0..15) : Bit to modify
IT_MASKED/IT_UNMASKED
RETURN VALUE: None
LIMITATIONS : None
############################################################################*/
#define dsp_gpio_set_mask_it_bit(BitNumber, Mask) \
DSP_GPIO_SET_BIT(DSP_IMR_REG_ADDR,BitNumber,Mask)
/*
-----------------------------------------------------------------------------
NAME : dsp_gpio_set_all_isr -
DESCRIPTION : Set the interrupt status register -
SYNOPSYS : void dsp_gpio_set_all_isr (UWORD16 data_out) -
PARAMETERS : Output register pins -
RETURN VALUE: None. -
LIMITATIONS : None -
-----------------------------------------------------------------------------
*/
#define dsp_gpio_set_all_isr(data_reg) \
{ \
*(REGISTER_UWORD16 *)DSP_ISR_REG_ADDR = data_reg;\
}
/*
-------------------------------------------------------------------------
NAME : GPIO_LeadReadAllDir
DESCRIPTION : read DSP_GPIO inputs
PARAMETERS : None.
RETURN VALUE: input values
LIMITATIONS : None
-------------------------------------------------------------------------
*/
UWORD16 GPIO_LeadReadAllDir (void);
/*
-------------------------------------------------------------------------
NAME : dsp_gpio_read_all_oir
DESCRIPTION : read DSP_GPIO outputs
PARAMETERS : None.
RETURN VALUE: output values
LIMITATIONS : None
-------------------------------------------------------------------------
*/
UWORD16 GPIO_LeadReadAllDor (void);
/*
-------------------------------------------------------------------------
NAME : GPIO_LeadReadAllDcr
DESCRIPTION : read DSP_GPIO inputs
PARAMETERS : None.
RETURN VALUE: input value
LIMITATIONS : None
-------------------------------------------------------------------------
*/
UWORD16 GPIO_LeadReadAllDcr (void);
/*
-------------------------------------------------------------------------
NAME : GPIO_LeadReadAllIcr
DESCRIPTION : read interrupt control register
0 = high to low transition
1 = low to high transition
PARAMETERS : None.
RETURN VALUE: interrupt control register
LIMITATIONS : None
-------------------------------------------------------------------------
*/
UWORD16 GPIO_LeadReadAllIcr (void);
/*
-------------------------------------------------------------------------
NAME : GPIO_LeadReadAllDir
DESCRIPTION : read interrupt mask register
0 = unmasked
1 = masked
PARAMETERS : None.
RETURN VALUE: interrupt mask register value
LIMITATIONS : None
-------------------------------------------------------------------------
*/
UWORD16 GPIO_LeadReadAllImr (void);
/*
-------------------------------------------------------------------------
NAME : GPIO_LeadReadAllIsr
DESCRIPTION : read interrupt status register
0 = no interrupt request
1 = interrupt request PARAMETERS : None.
RETURN VALUE: interrupt status register value
LIMITATIONS : None
-------------------------------------------------------------------------
*/
UWORD16 GPIO_LeadReadAllIsr (void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -