📄 bport.h
字号:
/*********************************************************************//* bport.h v0.00 *//* Copyright (c) 1997 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 + -