📄 bport.h
字号:
/*********************************************************************/
/* bport.h v0.00 */
/* Copyright (c) 2000 Texas Instruments Incorporated */
/*********************************************************************/
/*********************************************************************/
/* MACROS AND DATA STURCTURES FOR BUFFERED SERIAL PORTS */
/* */
/* The MACROS defined here are dependent on the symbol definitions */
/* contained in mmregs.h. */
/*********************************************************************/
/*********************************************************************/
/* INCLUDE MEMORY-MAPPED REGISTER DEFINITIONS */
/*********************************************************************/
#include "regs54xx.h"
/*********************************************************************/
/* BSP_MASK(rrst, xrst, txm, mcm, fsm, fo, dlb) - generates a mask */
/* for setting serial port control register. */
/* rrst - receive reset */
/* xrst - transmit reset */
/* txm - transmit mode (ext or int fram sync) */
/* mcm - clock mode (ext or int clock source) */
/* fsm - frame sync mode (continuous or burst) */
/* fo - format (data size 16 or 8) */
/* dlb - digital loop back mode (disable/enable) */
/*********************************************************************/
#define BSP_MASK( rrst, xrst, txm, mcm, fsm, fo, dlb)\
((rrst ? (MASK_BIT(RRST) | MASK_TARGET_WORD):\
~MASK_BIT(RRST)) &\
(xrst ? (MASK_BIT(XRST) | MASK_TARGET_WORD):\
~MASK_BIT(XRST)) &\
(txm ? (MASK_BIT(TXM) | MASK_TARGET_WORD):\
~MASK_BIT(TXM)) &\
(mcm ? (MASK_BIT(MCM) | MASK_TARGET_WORD):\
~MASK_MCM(MCM)) &\
(fsm ? (MASK_BUT(FSM) | MASK_TARGET_WORD):\
~MASK_BIT(FSM)) &\
(fo ? (MASK_BIT(FO) | MASK_TARGET_WORD):\
~MASK_BIT(FO)) &\
(dlb ? (MASK_BIT(DLB) | MASK_TARGET_WORD):\
~MASK_BIT(DLB)))
/********************************************************************/
/* BSP_RESET(port) - RESETS SERIAL PORT */
/********************************************************************/
#define BSP_RESET(port)\
*(unsigned int *)BSP_ADDR(port) &= ~(MASK_BIT(XRST) | MASK_BIT(RRST))
/********************************************************************/
/* BSP_TX_RESET(port) - RESETS SERIAL PORT TRANSMIT */
/********************************************************************/
#define BSP_TX_RESET(port)\
*(unsigned int *)BSP_ADDR(port) &= ~MASK_BIT(XRST)
/********************************************************************/
/* BSP_RX_RESET(port) - RESETS SERIAL PORT RECEIVE */
/********************************************************************/
#define BSP_RX_RESET(port)\
*(unsigned int *)BSP_ADDR(port) &= ~MASK_BIT(RRST)
/********************************************************************/
/* BSP_START(port, start) - starts buffered serial port receive/ */
/* transmit */
/* port - buffered serial port number (selects which port, 0,1) */
/* start - 1/2/3: starts rx/tx/both */
/********************************************************************/
#define BSP_START(port,start)\
*(unsigned int *)BSP_ADDR(port) |= ((unsigned int)start << RRST)
/********************************************************************/
/* BSPE_MASK(haltr,bre,haltx,bxe,pcm,fig,fe,clkp,fsp,clkdv) */
/* */
/* - set mask for buffered serial port extension register */
/* */
/* AUTOBUFFERING UNIT CONTROL BITS */
/* haltr - value to set autobuffering receive halt */
/* bre - value to set autobuffering receive enable */
/* haltx - value to set autobuffering transmit halt */
/* bxe - value to set autobuffering transmit enable */
/* */
/* EXTENDED SERIAL PORT CONTROL BITS */
/* pcm - value to set pulse code modulation bit */
/* fig - value to set frame sync ignore bit */
/* fe - value to set extended format bit (determines datawidth) */
/* clkp - value to set clock polarity control bit */
/* fsp - value to set frame sync polarity control bit */
/* clkdv - value to set internal clock division factor */
/********************************************************************/
#define BSPE_MASK(haltr,bre,haltx,bxe,pcm,fig,fe,clkp,fsp,clkdv)\
((haltr ? (MASK_BIT(HALTR) | MASK_TARGET_WORD): \
~MASK_BIT(HALTR)) &\
(bre ? (MASK_BIT(BRE) | MASK_TARGET_WORD): ~MASK_BIT(BRE)) &\
(haltx ? (MASK_BIT(HALTX) | MASK_TARGET_WORD): \
~MASK_BIT(HALTX)) &\
(bxe ? (MASK_BIT(BXE) | MASK_TARGET_WORD): ~MASK_BIT(BXE)) &\
(pcm ? (MASK_BIT(PCM) | MASK_TARGET_WORD): ~MASK_BIT(PCM)) &\
(fig ? (MASK_BIT(FIG) | MASK_TARGET_WORD): ~MASK_BIT(FIG)) &\
(fe ? (MASK_BIT(FE) | MASK_TARGET_WORD): ~MASK_BIT(FE)) &\
(clkp ? (MASK_BIT(CLKP) | MASK_TARGET_WORD): ~MASK_BIT(CLKP))&\
(fsp ? (MASK_BIT(FSP) | MASK_TARGET_WORD): ~MASK_BIT(FSP)) &\
(clkdv ? (MASK_BIT(CLKDV) | MASK_TARGET_WORD): ~MASK_BIT(CLKDV)))
/********************************************************************/
/* BSP_INIT(port, ctrl, ectrl, xbuf, xlen, rbuf, rlen, start) */
/* - initialize serial port ctrl */
/* addr - address of buffered serial port contorl register */
/* ctrl - mask to set buffered serial port control register */
/* ectrl - mask to set buffered serial port extended control reg */
/* xbuf - address of transmit buffer */
/* xlen - length of transmit buffer */
/* rbuf - starting address of receive buffer */
/* rlen - length of receive buffer */
/* start - 1/2/3: starts rx/tx/both */
/********************************************************************/
#define BSP_INIT(port, ctrl, ectrl, xbuf, xlen, rbuf, rlen, start)\
{BSP_RESET(port);\
*(unsigned int *)AXR_ADDR(port) = xbuf;\
*(unsigned int *)(AXR_ADDR(port) + 1) = xlen;\
*(unsigned int *)ARR_ADDR(port) = rbuf;\
*(unsigned int *)(ARR_ADDR(port) + 1) = rlen;\
*(unsigned int *)BSPCE_ADDR(port) = ectrl;\
*(unsigned int *)BSP_ADDR(port) = ctrl;\
BSP_START(port,start);}
/**********************************************************************/
/* BSP_READ(port, size) - reads data from buffered serial port when */
/* port is configured in standard mode */
/* port - serial port number (selects which port) */
/* size - data size of item to be read in bits */
/**********************************************************************/
#define BSP_READ(port, size)\
((*(unsigned int *)BDRR_ADDR(port)) & (~(MASK_TARGET_WORD << size)))
/**********************************************************************/
/* BSP_WRITE(port,value,size) - writes data to buffered serial port */
/* when port is in standard mode */
/* port - serial port # */
/* value - data to be written out to serial port */
/* size - data size in bits */
/**********************************************************************/
#define BSP_WRITE(port, value, size)\
*(unsigned int *)BDXR_ADDR(port) = value & (~(MASK_TARGET_WORD << size))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -