您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ HAL_READ_UINT16函数代码示例

51自学网 2021-06-01 21:21:40
  C++
这篇教程C++ HAL_READ_UINT16函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中HAL_READ_UINT16函数的典型用法代码示例。如果您正苦于以下问题:C++ HAL_READ_UINT16函数的具体用法?C++ HAL_READ_UINT16怎么用?C++ HAL_READ_UINT16使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了HAL_READ_UINT16函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: cyg_hal_plf_serial_isr

static intcyg_hal_plf_serial_isr(void *__ch_data, int* __ctrlc,                        CYG_ADDRWORD __vector, CYG_ADDRWORD __data){    int res = 0;        cyg_uint16 status;    cyg_uint16 control;    cyg_uint16 * base = ((channel_data_t *)__ch_data)->base;        CYGARC_HAL_SAVE_GP();    *__ctrlc = 0;    HAL_READ_UINT16(base+CYG_DEV_SERIAL_RS232_SCSR, status);    HAL_READ_UINT16(base+CYG_DEV_SERIAL_RS232_SCCR1, control);    if((status & SCSR_RDRF) && (control & SCCR1_RIE))    {   // Only if the interrupt was caused by the channel        cyg_uint8 c;        c = cyg_hal_plf_serial_getc(__ch_data);	        if(cyg_hal_is_break(&c, 1))	    *__ctrlc = 1;		HAL_INTERRUPT_ACKNOWLEDGE(((channel_data_t *)__ch_data)->imb3_vector);	res = CYG_ISR_HANDLED;    }    CYGARC_HAL_RESTORE_GP();    return res;}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:33,


示例2: cyg_hal_plf_scif_getc_nonblock

//static cyg_boolcyg_hal_plf_scif_getc_nonblock(void* __ch_data, cyg_uint8* ch){    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;    cyg_uint16 fdr, sr;    cyg_bool res = false;    HAL_READ_UINT16(base+_REG_SCSSR, sr);    if (sr & CYGARC_REG_SCIF_SCSSR_ER) {        cyg_uint8 ssr2;        HAL_WRITE_UINT16(base+_REG_SCFER, 0);        HAL_READ_UINT8(base+_REG_SC2SSR, ssr2);        ssr2 &= ~CYGARC_REG_SCIF_SC2SSR_ORER;        HAL_WRITE_UINT8(base+_REG_SC2SSR, ssr2);        HAL_WRITE_UINT16(base+_REG_SCSSR,                         CYGARC_REG_SCIF_SCSSR_CLEARMASK & ~(CYGARC_REG_SCIF_SCSSR_BRK | CYGARC_REG_SCIF_SCSSR_FER | CYGARC_REG_SCIF_SCSSR_PER));    }    HAL_READ_UINT16(base+_REG_SCFDR, fdr);    if (0 != (fdr & CYGARC_REG_SCIF_SCFDR_RCOUNT_MASK)) {        HAL_READ_UINT8(base+_REG_SCFRDR, *ch);        // Clear DR/RDF flags        HAL_READ_UINT16(base+_REG_SCSSR, sr);        HAL_WRITE_UINT16(base+_REG_SCSSR,                         CYGARC_REG_SCIF_SCSSR_CLEARMASK & ~(CYGARC_REG_SCIF_SCSSR_RDF | CYGARC_REG_SCIF_SCSSR_DR));        res = true;    }    return res;}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:35,


示例3: _mb93091_pci_cfg_read_uint16

externC cyg_uint16 _mb93091_pci_cfg_read_uint16(int bus, int devfn, int offset){    cyg_uint32 cfg_addr, addr, status;    cyg_uint16 cfg_val = (cyg_uint16)0xFFFF;    if (!_mb93091_has_vdk)	    return cfg_val;#ifdef CYGPKG_IO_PCI_DEBUG    diag_printf("%s(bus=%x, devfn=%x, offset=%x) = ", __FUNCTION__, bus, devfn, offset);#endif // CYGPKG_IO_PCI_DEBUG    if ((bus == 0) && (CYG_PCI_DEV_GET_DEV(devfn) == 0)) {        // PCI bridge        addr = _MB93091_PCI_CONFIG + ((offset << 1) ^ 0x02);    } else {        cfg_addr = _cfg_addr(bus, devfn, offset ^ 0x02);        HAL_WRITE_UINT32(_MB93091_PCI_CONFIG_ADDR, cfg_addr);        addr = _MB93091_PCI_CONFIG_DATA + ((offset & 0x03) ^ 0x02);    }    HAL_READ_UINT16(addr, cfg_val);    HAL_READ_UINT16(_MB93091_PCI_STAT_CMD, status);    if (status & _MB93091_PCI_STAT_ERROR_MASK) {        // Cycle failed - clean up and get out        cfg_val = (cyg_uint16)0xFFFF;        HAL_WRITE_UINT16(_MB93091_PCI_STAT_CMD, status & _MB93091_PCI_STAT_ERROR_MASK);    }#ifdef CYGPKG_IO_PCI_DEBUG    diag_printf("%x/n", cfg_val);#endif // CYGPKG_IO_PCI_DEBUG    HAL_WRITE_UINT32(_MB93091_PCI_CONFIG_ADDR, 0);    return cfg_val;}
开发者ID:0xCA5A,项目名称:dd-wrt,代码行数:32,


示例4: hal_arbitration_isr_sci

// Default arbitration ISR for serial interrupts. Although such arbitration// belongs in the serial device driver, we require this default implementation// for CTRL-C interrupts to be delivered correctly to any running ROM monitor.// A device driver that uses more than just receive interrupts may of course// provide its own arbiter.externC cyg_uint32hal_arbitration_isr_sci(CYG_ADDRWORD vector, CYG_ADDRWORD data){    cyg_uint32 isr_ret;	cyg_uint16 scc_sr;	cyg_uint16 scc_cr;	// Try SCI0	HAL_READ_UINT16(CYGARC_REG_IMM_SC1SR, scc_sr);	HAL_READ_UINT16(CYGARC_REG_IMM_SCC1R1, scc_cr);	if ((scc_sr & CYGARC_REG_IMM_SCxSR_RDRF) && (scc_cr & CYGARC_REG_IMM_SCCxR1_RIE)) {	    isr_ret = hal_call_isr(CYGNUM_HAL_INTERRUPT_IMB3_SCI0_RX);#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN        if (isr_ret & CYG_ISR_HANDLED)#endif		   return isr_ret;	}	HAL_READ_UINT16(CYGARC_REG_IMM_SC2SR, scc_sr);	HAL_READ_UINT16(CYGARC_REG_IMM_SCC2R1, scc_cr);	if ((scc_sr & CYGARC_REG_IMM_SCxSR_RDRF) && (scc_cr & CYGARC_REG_IMM_SCCxR1_RIE)) {	    isr_ret = hal_call_isr(CYGNUM_HAL_INTERRUPT_IMB3_SCI1_RX);#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN        if (isr_ret & CYG_ISR_HANDLED)#endif			return isr_ret;	}	return 0;}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:35,


示例5: cyg_hal_plf_scif_putc

voidcyg_hal_plf_scif_putc(void* __ch_data, cyg_uint8 c){    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;    cyg_uint16 fdr, sr;    CYGARC_HAL_SAVE_GP();    do {        HAL_READ_UINT16(base+_REG_SCFDR, fdr);    } while (((fdr & CYGARC_REG_SCIF_SCFDR_TCOUNT_MASK) >> CYGARC_REG_SCIF_SCFDR_TCOUNT_shift) == 16);    HAL_WRITE_UINT8(base+_REG_SCFTDR, c);    // Clear FIFO-empty/transmit end flags (read back SR first)    HAL_READ_UINT16(base+_REG_SCFSR, sr);    HAL_WRITE_UINT16(base+_REG_SCFSR, CYGARC_REG_SCIF_SCSSR_CLEARMASK                        & ~(CYGARC_REG_SCIF_SCSSR_TDFE | CYGARC_REG_SCIF_SCSSR_TEND ));    // Hang around until the character has been safely sent.    do {        HAL_READ_UINT16(base+_REG_SCFDR, fdr);    } while ((fdr & CYGARC_REG_SCIF_SCFDR_TCOUNT_MASK) != 0);    CYGARC_HAL_RESTORE_GP();}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:25,


示例6: cyg_hal_plf_scif_putc

voidcyg_hal_plf_scif_putc(void* __ch_data, cyg_uint8 c){    channel_data_t* chan = (channel_data_t*)__ch_data;    cyg_uint8* base = chan->base;    cyg_uint16 fdr, sr;    cyg_uint8 scscr = 0;    CYGARC_HAL_SAVE_GP();    HAL_READ_UINT8(base+_REG_SCSCR, scscr);    if (chan->irda_mode) {        HAL_WRITE_UINT8(base+_REG_SCSCR, scscr|CYGARC_REG_SCIF_SCSCR_TE);    }#ifdef CYGHWR_HAL_SH_SH2_SCIF_ASYNC_RXTX    if (chan->async_rxtx_mode) {        HAL_WRITE_UINT8(base+_REG_SCSCR, (scscr|CYGARC_REG_SCIF_SCSCR_TE)&~CYGARC_REG_SCIF_SCSCR_RE);    }#endif    do {        HAL_READ_UINT16(base+_REG_SCFDR, fdr);    } while (((fdr & CYGARC_REG_SCIF_SCFDR_TCOUNT_MASK) >> CYGARC_REG_SCIF_SCFDR_TCOUNT_shift) == 16);    HAL_WRITE_UINT8(base+_REG_SCFTDR, c);    // Clear FIFO-empty/transmit end flags (read back SR first)    HAL_READ_UINT16(base+_REG_SCSSR, sr);    HAL_WRITE_UINT16(base+_REG_SCSSR, CYGARC_REG_SCIF_SCSSR_CLEARMASK                        & ~(CYGARC_REG_SCIF_SCSSR_TDFE | CYGARC_REG_SCIF_SCSSR_TEND ));    // Hang around until all characters have been safely sent.    do {        HAL_READ_UINT16(base+_REG_SCSSR, sr);    } while ((sr & CYGARC_REG_SCIF_SCSSR_TEND) == 0);    if (chan->irda_mode) {#ifdef CYGHWR_HAL_SH_SH2_SCIF_IRDA_TXRX_COMPENSATION        // In IrDA mode there will be generated spurious RX events when        // the TX unit is switched on. Eat that character.        cyg_uint8 _junk;        HAL_READ_UINT8(base+_REG_SCFRDR, _junk);        // Clear buffer full flag (read back first)        HAL_READ_UINT16(base+_REG_SCSSR, sr);        HAL_WRITE_UINT16(base+_REG_SCSSR,                          CYGARC_REG_SCIF_SCSSR_CLEARMASK & ~(CYGARC_REG_SCIF_SCSSR_RDF|CYGARC_REG_SCIF_SCSSR_DR));#endif // CYGHWR_HAL_SH_SH2_SCIF_IRDA_TXRX_COMPENSATION        // Disable transmitter again        HAL_WRITE_UINT8(base+_REG_SCSCR, scscr);    }#ifdef CYGHWR_HAL_SH_SH2_SCIF_ASYNC_RXTX    if (chan->async_rxtx_mode) {        // Disable transmitter, enable receiver        HAL_WRITE_UINT8(base+_REG_SCSCR, scscr);    }#endif // CYGHWR_HAL_SH_SH2_SCIF_ASYNC_RXTX    CYGARC_HAL_RESTORE_GP();}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:60,


示例7: cyg_hal_plf_scif_isr

static intcyg_hal_plf_scif_isr(void *__ch_data, int* __ctrlc,                      CYG_ADDRWORD __vector, CYG_ADDRWORD __data){    cyg_uint8 c;    cyg_uint16 fdr, sr;    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;    int res = 0;    CYGARC_HAL_SAVE_GP();    *__ctrlc = 0;    HAL_READ_UINT16(base+_REG_SCFDR, fdr);    if ((fdr & CYGARC_REG_SCIF_SCFDR_RCOUNT_MASK) != 0) {        HAL_READ_UINT8(base+_REG_SCFRDR, c);        // Clear buffer full flag (read back first).        HAL_READ_UINT16(base+_REG_SCSSR, sr);        HAL_WRITE_UINT16(base+_REG_SCSSR,                          CYGARC_REG_SCIF_SCSSR_CLEARMASK & ~CYGARC_REG_SCIF_SCSSR_RDF);        if( cyg_hal_is_break( &c , 1 ) )            *__ctrlc = 1;        res = CYG_ISR_HANDLED;    }    CYGARC_HAL_RESTORE_GP();    return res;}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:29,


示例8: cyg_hal_plf_serial_control

static intcyg_hal_plf_serial_control(void *__ch_data, __comm_control_cmd_t __func, ...){    static int irq_state = 0;    channel_data_t* chan = (channel_data_t*)__ch_data;    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;    cyg_uint16 ser_port_reg;    int ret = 0;    va_list ap;    CYGARC_HAL_SAVE_GP();    va_start(ap, __func);    switch (__func) {    case __COMMCTL_GETBAUD:        ret = chan->baud_rate;        break;    case __COMMCTL_SETBAUD:        chan->baud_rate = va_arg(ap, cyg_int32);        // Should we verify this value here?        cyg_hal_plf_serial_init_channel(chan);        ret = 0;        break;    case __COMMCTL_IRQ_ENABLE:        irq_state = 1;        HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);        HAL_INTERRUPT_UNMASK(chan->isr_vector);        HAL_READ_UINT16(FREESCALE_ESCI_CR12(base), ser_port_reg);        ser_port_reg |= FREESCALE_ESCI_CR12_RIE;        HAL_WRITE_UINT16(FREESCALE_ESCI_CR12(base), ser_port_reg);        break;    case __COMMCTL_IRQ_DISABLE:        ret = irq_state;        irq_state = 0;        HAL_INTERRUPT_MASK(chan->isr_vector);        HAL_READ_UINT16(FREESCALE_ESCI_CR12(base), ser_port_reg);        ser_port_reg &= ~(cyg_uint16)FREESCALE_ESCI_CR12_RIE;        HAL_WRITE_UINT16(FREESCALE_ESCI_CR12(base), ser_port_reg);        break;    case __COMMCTL_DBG_ISR_VECTOR:        ret = chan->isr_vector;        break;    case __COMMCTL_SET_TIMEOUT:        ret = chan->msec_timeout;        chan->msec_timeout = va_arg(ap, cyg_uint32);    default:        break;    }    va_end(ap);    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:houzhenggang,项目名称:ecos-1,代码行数:56,


示例9: _mb93091_pci_cfg_write_uint32

externC void_mb93091_pci_cfg_write_uint32(int bus, int devfn, int offset, cyg_uint32 cfg_val){    cyg_uint32 cfg_addr, addr, status;    if (!_mb93091_has_vdk)	    return;#ifdef CYGPKG_IO_PCI_DEBUG    diag_printf("%s(bus=%x, devfn=%x, offset=%x, val=%x)/n", __FUNCTION__, bus, devfn, offset, cfg_val);#endif // CYGPKG_IO_PCI_DEBUG    if ((bus == 0) && (CYG_PCI_DEV_GET_DEV(devfn) == 0)) {        // PCI bridge        addr = _MB93091_PCI_CONFIG + (offset << 1);    } else {        cfg_addr = _cfg_addr(bus, devfn, offset);        HAL_WRITE_UINT32(_MB93091_PCI_CONFIG_ADDR, cfg_addr);        addr = _MB93091_PCI_CONFIG_DATA;    }    HAL_WRITE_UINT32(addr, cfg_val);    HAL_READ_UINT16(_MB93091_PCI_STAT_CMD, status);    if (status & _MB93091_PCI_STAT_ERROR_MASK) {        // Cycle failed - clean up and get out        HAL_WRITE_UINT16(_MB93091_PCI_STAT_CMD, status & _MB93091_PCI_STAT_ERROR_MASK);    }    HAL_WRITE_UINT32(_MB93091_PCI_CONFIG_ADDR, 0);}
开发者ID:0xCA5A,项目名称:dd-wrt,代码行数:26,


示例10: hal_arbitration_isr_tb

// Timebase interrupt can be caused by match on either reference A// or B.  // Note: If only one interrupt source is assigned per vector, and only// reference interrupt A or B is used, this ISR is not// necessary. Attach the timerbase reference A or B ISR directly to// the LVLx vector instead.externC cyg_uint32hal_arbitration_isr_tb (CYG_ADDRWORD vector, CYG_ADDRWORD data){    cyg_uint32 isr_ret;    cyg_uint16 tbscr;    HAL_READ_UINT16 (CYGARC_REG_IMM_TBSCR, tbscr);    if (tbscr & CYGARC_REG_IMM_TBSCR_REFA) {        isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_SIU_TB_A);#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN        if (isr_ret & CYG_ISR_HANDLED)#endif            return isr_ret;    }    if (tbscr & CYGARC_REG_IMM_TBSCR_REFB) {        isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_SIU_TB_B);#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN        if (isr_ret & CYG_ISR_HANDLED)#endif            return isr_ret;    }    return 0;}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:31,


示例11: cyg_hal_plf_scif_init_channel

voidcyg_hal_plf_scif_init_channel(channel_data_t* chan){    cyg_uint8* base = chan->base;    cyg_uint16 sr;    // Disable everything.    HAL_WRITE_UINT16(base+_REG_SCSCR, 0);    // Reset FIFO.    HAL_WRITE_UINT16(base+_REG_SCFCR,                     CYGARC_REG_SCIF_SCFCR_TFRST|CYGARC_REG_SCIF_SCFCR_RFRST);    // 8-1-no parity.    HAL_WRITE_UINT16(base+_REG_SCSMR, 0);    chan->baud_rate = CYGNUM_HAL_SH_SH4_SCIF_BAUD_RATE;    cyg_hal_plf_scif_set_baud(base, CYGNUM_HAL_SH_SH4_SCIF_BAUD_RATE);    // Clear status register (read back first).    HAL_READ_UINT16(base+_REG_SCFSR, sr);    HAL_WRITE_UINT16(base+_REG_SCFSR, 0);    // Bring FIFO out of reset and set to trigger on every char in    // FIFO (or C-c input would not be processed).    HAL_WRITE_UINT16(base+_REG_SCFCR,                     CYGARC_REG_SCIF_SCFCR_RTRG_1|CYGARC_REG_SCIF_SCFCR_TTRG_1);    // Leave Tx/Rx interrupts disabled, but enable Tx/Rx    HAL_WRITE_UINT16(base+_REG_SCSCR,                     CYGARC_REG_SCIF_SCSCR_TE|CYGARC_REG_SCIF_SCSCR_RE);}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:32,


示例12: hal_enable_profile_timer

inthal_enable_profile_timer(int resolution){    // Run periodic timer interrupt for profile     cyg_uint16 piscr;    int period = resolution / 100;    // Attach pit arbiter.    HAL_INTERRUPT_ATTACH (PIT_IRQ,                          &hal_arbitration_isr_pit, ID_PIT, 0);    HAL_INTERRUPT_UNMASK (PIT_IRQ);    // Attach pit isr.    HAL_INTERRUPT_ATTACH (CYGNUM_HAL_INTERRUPT_SIU_PIT, &isr_pit,                          ID_PIT, 0);    HAL_INTERRUPT_SET_LEVEL (CYGNUM_HAL_INTERRUPT_SIU_PIT, PIT_IRQ_LEVEL);    HAL_INTERRUPT_UNMASK (CYGNUM_HAL_INTERRUPT_SIU_PIT);    // Set period.    HAL_WRITE_UINT32 (CYGARC_REG_IMM_PITC,                       (2*period) << CYGARC_REG_IMM_PITC_COUNT_SHIFT);    // Enable.    HAL_READ_UINT16 (CYGARC_REG_IMM_PISCR, piscr);    piscr |= CYGARC_REG_IMM_PISCR_PTE;    HAL_WRITE_UINT16 (CYGARC_REG_IMM_PISCR, piscr);    return resolution;}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:30,


示例13: cyg_hal_plf_serial_isr

static intcyg_hal_plf_serial_isr(void *__ch_data, int* __ctrlc,                       CYG_ADDRWORD __vector, CYG_ADDRWORD __data){    channel_data_t* chan = (channel_data_t*)__ch_data;    CYG_ADDRESS esci_base = (CYG_ADDRESS) chan->base;    cyg_uint16 esci_sr;    int res = 0;    cyg_uint8 ch_in;    CYGARC_HAL_SAVE_GP();    *__ctrlc = 0;    HAL_READ_UINT16(FREESCALE_ESCI_SR(esci_base), esci_sr);    if (esci_sr & FREESCALE_ESCI_SR_RDRF) {        HAL_READ_UINT8(FREESCALE_ESCI_DRL(esci_base), ch_in);        if( cyg_hal_is_break( (char *) &ch_in , 1 ) )            *__ctrlc = 1;        res = CYG_ISR_HANDLED;        HAL_WRITE_UINT16(FREESCALE_ESCI_SR(esci_base), FREESCALE_ESCI_SR_RDRF);    }    HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);    CYGARC_HAL_RESTORE_GP();    return res;}
开发者ID:houzhenggang,项目名称:ecos-1,代码行数:29,


示例14: hal_arbitration_isr_rtc

// Real time clock interrupts can be caused by the alarm or// once-per-second.// Note: If only one interrupt source is assigned per vector, and only// the alarm or once-per-second interrupt is used, this ISR is not// necessary. Attach the alarm or once-per-second ISR directly to the// LVLx vector instead.externC cyg_uint32hal_arbitration_isr_rtc (CYG_ADDRWORD vector, CYG_ADDRWORD data){    cyg_uint32 isr_ret;    cyg_uint16 rtcsc;    HAL_READ_UINT16 (CYGARC_REG_IMM_RTCSC, rtcsc);    if (rtcsc & CYGARC_REG_IMM_RTCSC_SEC) {        isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_SIU_RTC_SEC);#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN        if (isr_ret & CYG_ISR_HANDLED)#endif            return isr_ret;    }    if (rtcsc & CYGARC_REG_IMM_RTCSC_ALR) {        isr_ret = hal_call_isr (CYGNUM_HAL_INTERRUPT_SIU_RTC_ALR);#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN        if (isr_ret & CYG_ISR_HANDLED)#endif            return isr_ret;    }    return 0;}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:31,


示例15: _csb281_pci_cfg_read_uint32

externC cyg_uint32 _csb281_pci_cfg_read_uint32(int bus, int devfn, int offset){    cyg_uint32 addr;    cyg_uint32 cfg_val = (cyg_uint32)0xFFFFFFFF;#ifdef CYGPKG_IO_PCI_DEBUG    diag_printf("%s(bus=%x, devfn=%x, offset=%x) = ", __FUNCTION__, bus, devfn, offset);#endif // CYGPKG_IO_PCI_DEBUG    addr = _cfg_sel(bus, devfn, offset);    HAL_READ_UINT32LE(addr, cfg_val);#if 0    HAL_READ_UINT16(_CSB281_PCI_STAT_CMD, status);    if (status & _CSB281_PCI_STAT_ERROR_MASK) {        // Cycle failed - clean up and get out        cfg_val = (cyg_uint32)0xFFFFFFFF;        HAL_WRITE_UINT16(_CSB281_PCI_STAT_CMD, status & _CSB281_PCI_STAT_ERROR_MASK);    }#endif#ifdef CYGPKG_IO_PCI_DEBUG    diag_printf("%x/n", cfg_val);#endif // CYGPKG_IO_PCI_DEBUG    HAL_WRITE_UINT32(_CSB281_PCI_CONFIG_ADDR, 0);    return cfg_val;}
开发者ID:perryhg,项目名称:terkos,代码行数:25,


示例16: mn10300_serial_stop_xmit

static void mn10300_serial_stop_xmit(serial_channel *chan){#ifndef CYGPKG_IO_SERIAL_MN10300_POLLED_MODE        mn10300_serial_info *mn10300_chan = (mn10300_serial_info *)chan->dev_priv;    cyg_uint16 cr;    cyg_uint16 sr;    // Wait until the transmitter has actually stopped before turning it off.        do    {        sr = mn10300_read_sr( mn10300_chan );            } while( sr & SR_TXF );        HAL_READ_UINT16( mn10300_chan->base+SERIAL_CTR, cr );    DISABLE_TRANSMIT_INTERRUPT(mn10300_chan);        HAL_WRITE_UINT16( mn10300_chan->base+SERIAL_CTR, cr );    cyg_drv_interrupt_mask(mn10300_chan->tx_int);    #endif    }
开发者ID:LucidOne,项目名称:Rovio,代码行数:26,


示例17: cyg_hal_plf_serial_getc_nonblock

static cyg_boolcyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch){    cyg_uint16 status;    cyg_uint16 result;    cyg_uint16 * base = ((channel_data_t *)__ch_data)->base;    HAL_READ_UINT16(base+CYG_DEV_SERIAL_RS232_SCSR, status);    if((status & SCSR_RDRF) == 0)        return false;    HAL_READ_UINT16(base+CYG_DEV_SERIAL_RS232_SCDR, result);    *ch = (cyg_uint8)(result & 0x00ff);    return true;}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:16,


示例18: cyg_hal_plf_scif_init_channel

voidcyg_hal_plf_scif_init_channel(channel_data_t* chan){    cyg_uint8* base = chan->base;    cyg_uint8 tmp;    cyg_uint16 sr;    int baud_rate = CYGNUM_HAL_SH_SH2_SCIF_BAUD_RATE;    // Disable everything.    HAL_WRITE_UINT8(base+_REG_SCSCR, 0);    // Reset FIFO.    HAL_WRITE_UINT8(base+_REG_SCFCR,                     CYGARC_REG_SCIF_SCFCR_TFRST|CYGARC_REG_SCIF_SCFCR_RFRST);    HAL_WRITE_UINT16(base+_REG_SCFER, 0);    // 8-1-no parity. This is also fine for IrDA mode    HAL_WRITE_UINT8(base+_REG_SCSMR, 0);    if (chan->irda_mode)        HAL_WRITE_UINT8(base+_REG_SCIMR, CYGARC_REG_SCIF_SCIMR_IRMOD);    else {        HAL_WRITE_UINT8(base+_REG_SCIMR, 0);    }    // Set speed to CYGNUM_HAL_SH_SH2_SCIF_DEFAULT_BAUD_RATE    HAL_READ_UINT8(base+_REG_SCSMR, tmp);    tmp &= ~CYGARC_REG_SCIF_SCSMR_CKSx_MASK;    tmp |= CYGARC_SCBRR_CKSx(baud_rate);    HAL_WRITE_UINT8(base+_REG_SCSMR, tmp);    HAL_WRITE_UINT8(base+_REG_SCBRR, CYGARC_SCBRR_N(baud_rate));    // Let things settle: Here we should should wait the equivalent of    // one bit interval,    // i.e. 1/CYGNUM_HAL_SH_SH2_SCIF_DEFAULT_BAUD_RATE second, but    // until we have something like the Linux delay loop, it's hard to    // do reliably. So just move on and hope for the best (this is    // unlikely to cause problems since the CPU has just come out of    // reset anyway).    // Clear status register (read back first).    HAL_READ_UINT16(base+_REG_SCSSR, sr);    HAL_WRITE_UINT16(base+_REG_SCSSR, 0);    HAL_WRITE_UINT8(base+_REG_SC2SSR, CYGARC_REG_SCIF_SC2SSR_BITRATE_16|CYGARC_REG_SCIF_SC2SSR_EI);    // Bring FIFO out of reset and set to trigger on every char in    // FIFO (or C-c input would not be processed).    HAL_WRITE_UINT8(base+_REG_SCFCR,                     CYGARC_REG_SCIF_SCFCR_RTRG_1|CYGARC_REG_SCIF_SCFCR_TTRG_1);    // Leave Tx/Rx interrupts disabled, but enable Rx/Tx (only Rx for IrDA)    if (chan->irda_mode)        HAL_WRITE_UINT8(base+_REG_SCSCR, CYGARC_REG_SCIF_SCSCR_RE);#ifdef CYGHWR_HAL_SH_SH2_SCIF_ASYNC_RXTX    else if (chan->async_rxtx_mode)        HAL_WRITE_UINT8(base+_REG_SCSCR, CYGARC_REG_SCIF_SCSCR_RE);#endif     else        HAL_WRITE_UINT8(base+_REG_SCSCR, CYGARC_REG_SCIF_SCSCR_TE|CYGARC_REG_SCIF_SCSCR_RE);}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:60,


示例19: plf_init_sdramc

// Initialize SDRAM controllervoid plf_init_sdramc(void){    cyg_uint16 sdcr;        HAL_READ_UINT16(&MCF5272_DEVS->sdramc.sdcr, sdcr);        // Do not initialize SDRAM if it is already active    if (!(sdcr & MCF5272_SDRAMC_SDCCR_ACT))    {#if (CYGHWR_HAL_SYSTEM_CLOCK_MHZ == 66)        HAL_WRITE_UINT16(&MCF5272_DEVS->sdramc.sdtr, (0            | MCF5272_SDRAMC_SDCTR_RTP_66MHz            | MCF5272_SDRAMC_SDCTR_RC(0)            | MCF5272_SDRAMC_SDCTR_RP(1)            | MCF5272_SDRAMC_SDCTR_RCD(1)            | MCF5272_SDRAMC_SDCTR_CLT_2));#else        // Clock frequency must be 48 Mhz        HAL_WRITE_UINT16(&MCF5272_DEVS->sdramc.sdtr, (0            | MCF5272_SDRAMC_SDCTR_RTP_48MHz            | MCF5272_SDRAMC_SDCTR_RC(0)            | MCF5272_SDRAMC_SDCTR_RP(1)            | MCF5272_SDRAMC_SDCTR_RCD(0)            | MCF5272_SDRAMC_SDCTR_CLT_2));#endif        HAL_WRITE_UINT16(&MCF5272_DEVS->sdramc.sdcr, (0            | MCF5272_SDRAMC_SDCCR_MCAS_A9#if (CYGHWR_INSTALLED_SDRAM_SIZE == 4)            | MCF5272_SDRAMC_SDCCR_BALOC_A21#else            | MCF5272_SDRAMC_SDCCR_BALOC_A22#endif            | MCF5272_SDRAMC_SDCCR_REG            | MCF5272_SDRAMC_SDCCR_INIT));        // Start SDRAM controller with a memory write        *((volatile char *) CYGMEM_REGION_sdram) = 0;        // Wait until controller is ready        do        {            HAL_READ_UINT16(&MCF5272_DEVS->sdramc.sdcr, sdcr);        } while(!(sdcr & MCF5272_SDRAMC_SDCCR_ACT));    }}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:48,


示例20: read_data_16

// Read one datum from 16-bit bus static int read_data_16(struct dm9000 *p, cyg_uint8 *dest){    cyg_uint16 val;    HAL_READ_UINT16(p->io_data, val);    memcpy(dest, &val, 2);    return 2;}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:9,


示例21: hal_mace1_get_leds

inthal_mace1_get_leds(void){    cyg_uint16 leds = 0;    // read old LED state    HAL_READ_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_A_OFFSET), leds);     return (leds>>8)&0xFF;}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:9,


示例22: cyg_hal_plf_scif_getc_nonblock

static cyg_boolcyg_hal_plf_scif_getc_nonblock(void* __ch_data, cyg_uint8* ch){    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;    cyg_uint16 fdr, sr;    HAL_READ_UINT16(base+_REG_SCFDR, fdr);    if ((fdr & CYGARC_REG_SCIF_SCFDR_RCOUNT_MASK) == 0)        return false;    HAL_READ_UINT8(base+_REG_SCFRDR, *ch);    // Clear FIFO full flag (read before clearing)    HAL_READ_UINT16(base+_REG_SCFSR, sr);    HAL_WRITE_UINT16(base+_REG_SCFSR,                    CYGARC_REG_SCIF_SCSSR_CLEARMASK & ~CYGARC_REG_SCIF_SCSSR_RDF);    return true;}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:19,


示例23: cyg_hal_plf_pci_cfg_read_word

cyg_uint16 cyg_hal_plf_pci_cfg_read_word  (cyg_uint32 bus,                                           cyg_uint32 devfn,                                           cyg_uint32 offset){        cyg_uint16 val;        if (!gapspci_initialized || !BBA_SELECTED(bus, devfn))                return 0xffff;        HAL_READ_UINT16(GAPSPCI_BBA_CONFIG+offset, val);        return val;}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:10,


示例24: cyg_hal_sh_pcic_pci_io_read_word

cyg_uint16cyg_hal_sh_pcic_pci_io_read_word (cyg_uint32 addr){    cyg_uint16 data;    HAL_WRITE_UINT32(CYGARC_REG_PCIC_IOBR, addr & CYGARC_REG_PCIC_IOBR_MASK);    HAL_READ_UINT16(CYGARC_REG_PCIC_IO_BASE + (addr & CYGARC_REG_PCIC_IO_BASE_MASK),                    data);    return data;}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:10,


示例25: cyg_hal_plf_scif_getc_nonblock

//static cyg_boolcyg_hal_plf_scif_getc_nonblock(void* __ch_data, cyg_uint8* ch){    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;    cyg_uint16 fdr, sr;    HAL_READ_UINT16(base+_REG_SCFDR, fdr);    if (0 == (fdr & CYGARC_REG_SCIF_SCFDR_RCOUNT_MASK))        return false;    HAL_READ_UINT8(base+_REG_SCFRDR, *ch);    // Clear DR/RDF flags    HAL_READ_UINT16(base+_REG_SCSSR, sr);    HAL_WRITE_UINT16(base+_REG_SCSSR,                     CYGARC_REG_SCIF_SCSSR_CLEARMASK & ~(CYGARC_REG_SCIF_SCSSR_RDF | CYGARC_REG_SCIF_SCSSR_DR));    return true;}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:20,


示例26: mpc555_serial_getc

//---------------------------------------------------------------------// Fetch a character from the device input buffer, waiting if necessary//---------------------------------------------------------------------static unsigned char mpc555_serial_getc(serial_channel * chan){  unsigned char c;  mpc555_serial_info * mpc555_chan = (mpc555_serial_info *)chan->dev_priv;  cyg_addrword_t port = mpc555_chan->base;  cyg_uint16 scsr;  cyg_uint16 scdr;  do {    HAL_READ_UINT16(port + MPC555_SERIAL_SCxSR, scsr);  } while(!(scsr & MPC555_SERIAL_SCxSR_RDRF));  // Ok, data is received, read it out and return  HAL_READ_UINT16(port + MPC555_SERIAL_SCxDR, scdr);  c = (unsigned char)scdr;  return c;}
开发者ID:LucidOne,项目名称:Rovio,代码行数:22,


示例27: hal_interrupt_configure

// Note: The PINTs can be masked and configured individually, even// though there are only two vectors. Maybe add some fake vectors just// for masking/configuring?void hal_interrupt_configure(int vector, int level, int up){#if (CYGARC_SH_MOD_INTC >= 2)    if ( (vector) >= CYGNUM_HAL_INTERRUPT_IRQ_IRQ0                              && (vector) <= CYGNUM_HAL_INTERRUPT_IRQ_IRQ5) {                                                                                                cyg_uint16 icr1, ss, mask;                                               ss = 0;                                                                  mask = CYGARC_REG_ICR1_SENSE_UP|CYGARC_REG_ICR1_SENSE_LEVEL;             if (up) ss |= CYGARC_REG_ICR1_SENSE_UP;                                if (level) ss |= CYGARC_REG_ICR1_SENSE_LEVEL;                          CYG_ASSERT(!(up && level), "Cannot trigger on high level!");                                                                                  switch( (vector) ) {                                                   case CYGNUM_HAL_INTERRUPT_IRQ_IRQ5:                                          ss <<= CYGARC_REG_ICR1_SENSE_IRQ5_shift;                                 mask <<= CYGARC_REG_ICR1_SENSE_IRQ5_shift;                               break;                                                               case CYGNUM_HAL_INTERRUPT_IRQ_IRQ4:                                          ss <<= CYGARC_REG_ICR1_SENSE_IRQ4_shift;                                 mask <<= CYGARC_REG_ICR1_SENSE_IRQ4_shift;                               break;                                                       #ifndef CYGHWR_HAL_SH_IRQ_USE_IRQLVL        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ3:                                          ss <<= CYGARC_REG_ICR1_SENSE_IRQ3_shift;                                 mask <<= CYGARC_REG_ICR1_SENSE_IRQ3_shift;                               break;                                                               case CYGNUM_HAL_INTERRUPT_IRQ_IRQ2:                                          ss <<= CYGARC_REG_ICR1_SENSE_IRQ2_shift;                                 mask <<= CYGARC_REG_ICR1_SENSE_IRQ2_shift;                               break;                                                               case CYGNUM_HAL_INTERRUPT_IRQ_IRQ1:                                          ss <<= CYGARC_REG_ICR1_SENSE_IRQ1_shift;                                 mask <<= CYGARC_REG_ICR1_SENSE_IRQ1_shift;                               break;                                                               case CYGNUM_HAL_INTERRUPT_IRQ_IRQ0:                                          ss <<= CYGARC_REG_ICR1_SENSE_IRQ0_shift;                                 mask <<= CYGARC_REG_ICR1_SENSE_IRQ0_shift;                               break;                                                       #endif        default:            CYG_FAIL("Unhandled interrupt vector");        }                                                                                 HAL_READ_UINT16(CYGARC_REG_ICR1, icr1);                                  icr1 &= ~mask;                                                           icr1 |= ss;                                                              HAL_WRITE_UINT16(CYGARC_REG_ICR1, icr1);                             }                                                                    #endif    CYGPRI_HAL_INTERRUPT_CONFIGURE_PLF(vector, level, up);}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:57,


示例28: hal_mace1_led_off

voidhal_mace1_led_off(int val){    cyg_uint16 leds;    // read old LED state    HAL_READ_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_A_OFFSET), leds);     leds&=~(1<<(8+val));    // Write new state    HAL_WRITE_UINT16(MAC7100_PIM_PORTDATA(MAC7100_PORT_A_OFFSET), leds); }
开发者ID:KarenHung,项目名称:ecosgit,代码行数:11,


示例29: cyg_hal_plf_serial_putc

voidcyg_hal_plf_serial_putc(void* __ch_data, cyg_uint8 c){    cyg_uint16 status;    cyg_uint16 * base = ((channel_data_t *)__ch_data)->base;    CYGARC_HAL_SAVE_GP();        do {       HAL_READ_UINT16(base+CYG_DEV_SERIAL_RS232_SCSR, status);    } while((status & SCSR_TDRE) == 0);    HAL_WRITE_UINT16(base+CYG_DEV_SERIAL_RS232_SCDR, (short)c);    // Hang around until the character is safely sent    do {       HAL_READ_UINT16(base+CYG_DEV_SERIAL_RS232_SCSR, status);    } while((status & SCSR_TDRE) == 0);             CYGARC_HAL_RESTORE_GP();}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:21,


示例30: do_iopeek

voiddo_iopeek(int argc, char *argv[]){    struct option_info opts[4];    unsigned long base;    bool base_set;    bool set_32bit = false;    bool set_16bit = false;    bool set_8bit = false;    int size = 1, value;    init_opts(&opts[0], 'b', true, OPTION_ARG_TYPE_NUM,               &base, &base_set, "base address");    init_opts(&opts[1], '4', false, OPTION_ARG_TYPE_FLG,              &set_32bit, 0, "output 32 bit units");    init_opts(&opts[2], '2', false, OPTION_ARG_TYPE_FLG,              &set_16bit, 0, "output 16 bit units");    init_opts(&opts[3], '1', false, OPTION_ARG_TYPE_FLG,              &set_8bit, 0, "output 8 bit units");    if (!scan_opts(argc, argv, 1, opts, 4, 0, 0, "")) {        return;    }    if (!base_set) {        diag_printf("iopeek what <location>?/n");        return;    }    if (set_32bit) {      size = 4;    } else if (set_16bit) {        size = 2;    } else if (set_8bit) {        size = 1;    }    switch (size) {    case 4:        HAL_READ_UINT32 ( base, value );        diag_printf("0x%04lx = 0x%08x/n", base, value );        break;    case 2:        HAL_READ_UINT16 ( base, value );        diag_printf("0x%04lx = 0x%04x/n", base, value );        break;    case 1:         HAL_READ_UINT8 ( base, value );        diag_printf("0x%04lx = 0x%02x/n", base, value );        break;    }}
开发者ID:Palantir555,项目名称:ecos-mars-zx3,代码行数:49,



注:本文中的HAL_READ_UINT16函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ HAL_READ_UINT8函数代码示例
C++ HAL_RCC_OscConfig函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。