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

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

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

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

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

示例1: 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;        int ret = 0;    CYGARC_HAL_SAVE_GP();    switch (__func) {    case __COMMCTL_GETBAUD:        ret = chan->baud_rate;        break;    case __COMMCTL_SETBAUD:	{	va_list ap;	va_start(ap, __func);		ret = chan->baud_rate;	chan->baud_rate = va_arg(ap, cyg_int32);	init_serial_channel(chan);		va_end(ap);	}	break;    case __COMMCTL_IRQ_ENABLE:        HAL_INTERRUPT_SET_LEVEL(chan->imb3_vector, chan->level);	HAL_INTERRUPT_UNMASK(chan->imb3_vector);        HAL_INTERRUPT_UNMASK(chan->siu_vector);        irq_state = 1;        break;    case __COMMCTL_IRQ_DISABLE:        ret = irq_state;        irq_state = 0;        HAL_INTERRUPT_MASK(chan->imb3_vector);	HAL_INTERRUPT_MASK(chan->siu_vector);        break;    case __COMMCTL_DBG_ISR_VECTOR:        ret = chan->siu_vector;        break;    case __COMMCTL_SET_TIMEOUT:        {        va_list ap;        va_start(ap, __func);        ret = chan->msec_timeout;        chan->msec_timeout = va_arg(ap, cyg_uint32);        va_end(ap);        }        	break;    default:        break;    }    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:57,


示例2: cyg_hal_plf_serial_init

static voidcyg_hal_plf_serial_init(void){    hal_virtual_comm_table_t* comm;    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);    // Disable interrupts.    HAL_INTERRUPT_MASK(channels[0].isr_vector);#if (CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1)    HAL_INTERRUPT_MASK(channels[1].isr_vector);#endif    // Init channels    init_serial_channel(&channels[0]);#if (CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1)    init_serial_channel(&channels[1]);#endif    // Setup procs in the vector table    // Set channel 0    CYGACC_CALL_IF_SET_CONSOLE_COMM(0);    comm = CYGACC_CALL_IF_CONSOLE_PROCS();    CYGACC_COMM_IF_CH_DATA_SET(*comm, &channels[0]);    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);#if (CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1)    // Set channel 1    CYGACC_CALL_IF_SET_CONSOLE_COMM(1);    comm = CYGACC_CALL_IF_CONSOLE_PROCS();    CYGACC_COMM_IF_CH_DATA_SET(*comm, &channels[1]);    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);#endif        // Restore original console    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:49,


示例3: init_ser

voidinit_ser(void){    cyg_uint8* base = (cyg_uint8*)E7T_UART1_BASE;    // 8-1-no parity.    HAL_WRITE_UINT32(base+E7T_UART_LCON,                     E7T_UART_LCON_8_DBITS|E7T_UART_LCON_1_SBITS|E7T_UART_LCON_NO_PARITY);    // Mask interrupts.    HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_UART0_RX);    HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_UART0_TX);    HAL_WRITE_UINT32(base+E7T_UART_BRDIV, SIO_BRDDIV);}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:15,


示例4: cyg_hal_plf_serial_init

static voidcyg_hal_plf_serial_init(void){    hal_virtual_comm_table_t* comm;    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);	// CYGACC_CALL_VV1(__call_if_set_console_comm_t*, CYGNUM_CALL_IF_SET_CONSOLE_COMM, -1)	//__call_VV1(CYGNUM_CALL_IF_SET_CONSOLE_COMM, __call_if_set_console_comm_t, int, int)    // Disable interrupts.    HAL_INTERRUPT_MASK(smdk_ser_channels[0].isr_vector);    HAL_INTERRUPT_MASK(smdk_ser_channels[1].isr_vector);    //Unmask UART0/1 RX interrupt    HAL_WRITE_UINT32(INTSUBMSK, __READ_UINT32(INTSUBMSK) & ~(BIT_SUB_RXD0|BIT_SUB_RXD1));    // Init channels    cyg_hal_plf_serial_init_channel(&smdk_ser_channels[0]);    cyg_hal_plf_serial_init_channel(&smdk_ser_channels[1]);    // Setup procs in the vector table    // Set channel 0    CYGACC_CALL_IF_SET_CONSOLE_COMM(0);    comm = CYGACC_CALL_IF_CONSOLE_PROCS();    CYGACC_COMM_IF_CH_DATA_SET(*comm, &smdk_ser_channels[0]);    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);    // Set channel 1    CYGACC_CALL_IF_SET_CONSOLE_COMM(1);    comm = CYGACC_CALL_IF_CONSOLE_PROCS();    CYGACC_COMM_IF_CH_DATA_SET(*comm, &smdk_ser_channels[1]);    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);    // Restore original console    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);}
开发者ID:jamsan-n,项目名称:ecos-hmi2416,代码行数:48,


示例5: hal_mpc5xx_remove_arbitration_isr

externC hal_mpc5xx_arbitration_data *hal_mpc5xx_remove_arbitration_isr(cyg_uint32 apriority){  hal_mpc5xx_arbitration_data * result = 0;    // Find the SIU vector from the priority  CYG_ADDRWORD vector = 2*(1 + apriority);  if(vector < CYGNUM_HAL_INTERRUPT_SIU_LVL7)  {    result = (hal_mpc5xx_arbitration_data *)(hal_interrupt_objects[vector]);	HAL_INTERRUPT_DETACH(vector, hal_interrupt_handlers[vector]);  }  else  {#ifdef CYGSEM_HAL_POWERPC_MPC5XX_IMB3_ARBITER      // Prevent anything from coming through while manipulating the list    HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_LVL7);	result = mpc5xx_remove(imb3_data_head, apriority);		// If something was removed, update the list.	if(result) imb3_data_head = result->reserved;    HAL_INTERRUPT_UNMASK(CYGNUM_HAL_INTERRUPT_SIU_LVL7);#else    result = (hal_mpc5xx_arbitration_data *)(hal_interrupt_objects[CYGNUM_HAL_INTERRUPT_SIU_LVL7]);	HAL_INTERRUPT_DETACH(CYGNUM_HAL_INTERRUPT_SIU_LVL7, hal_interrupt_handlers[CYGNUM_HAL_INTERRUPT_SIU_LVL7]); #endif  }  return result;}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:30,


示例6: cyg_hal_plf_serial_init

static voidcyg_hal_plf_serial_init(void){    hal_virtual_comm_table_t* comm;    int i, cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);#define NUM_CHANNELS CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS    for (i = 0; i < NUM_CHANNELS; i++) {	// Disable interrupts.	HAL_INTERRUPT_MASK(channels[i].isr_vector);	// Init channels	cyg_hal_plf_serial_init_channel((void*)&channels[i]);	// Setup procs in the vector table	// Set COMM callbacks for channel	CYGACC_CALL_IF_SET_CONSOLE_COMM(i);	comm = CYGACC_CALL_IF_CONSOLE_PROCS();	CYGACC_COMM_IF_CH_DATA_SET(*comm, &channels[i]);	CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);	CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);	CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);	CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);	CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);	CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);	CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);    }    // Restore original console    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:31,


示例7: cyg_hal_am33_serial_init

voidcyg_hal_am33_serial_init(int first_chan){    hal_virtual_comm_table_t* comm;    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);    int i;    for (i = 0; i < AM33_NUM_UARTS; i++) {	// Disable interrupts.	HAL_INTERRUPT_MASK(channels[0].isr_vector);	// Init channel	cyg_hal_plf_serial_init_channel((void*)&channels[i]);	cyg_hal_plf_serial_set_baud(channels[i].base, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD);	// Setup procs in the vector table	CYGACC_CALL_IF_SET_CONSOLE_COMM(i + first_chan);	comm = CYGACC_CALL_IF_CONSOLE_PROCS();	CYGACC_COMM_IF_CH_DATA_SET(*comm, &channels[i]);	CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);	CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);	CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);	CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);	CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);	CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);	CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);    }    // Restore original console    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:32,


示例8: cyg_hal_plf_duart_init

static void cyg_hal_plf_duart_init(void){    hal_virtual_comm_table_t* comm;    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);    int i;    // Init channels#define NUMOF(x) (sizeof(x)/sizeof(x[0]))    for (i = 0;  i < NUMOF(channels);  i++) {        HAL_INTERRUPT_MASK(channels[i].isr_vector);        init_duart_channel(&channels[i]);        CYGACC_CALL_IF_SET_CONSOLE_COMM(i);        comm = CYGACC_CALL_IF_CONSOLE_PROCS();        CYGACC_COMM_IF_CH_DATA_SET(*comm, &channels[i]);        CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_duart_write);        CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_duart_read);        CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_duart_putc);        CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_duart_getc);        CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_duart_control);        CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_duart_isr);        CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_duart_getc_timeout);    }    // Restore original console    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:26,


示例9: cyg_hal_plf_serial_init

static void cyg_hal_plf_serial_init(void){  hal_virtual_comm_table_t* comm;  int                       cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);  int                       iChannels = sizeof(s_atSerialChannels) / sizeof(s_atSerialChannels[0]);  int                       iIdx;  for(iIdx = 0; iIdx < iChannels; iIdx++)  {    // Disable interrupts.    HAL_INTERRUPT_MASK(s_atSerialChannels[iIdx].isr_vector);    // Init channels    cyg_hal_plf_serial_init_channel(&s_atSerialChannels[iIdx]);    // Setup procs in the vector table    CYGACC_CALL_IF_SET_CONSOLE_COMM(iIdx);    comm = CYGACC_CALL_IF_CONSOLE_PROCS();    CYGACC_COMM_IF_CH_DATA_SET(*comm, &s_atSerialChannels[iIdx]);    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);  }  // Restore original console  CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);}
开发者ID:eartes,项目名称:netx_ecos_port,代码行数:31,


示例10: cyg_hal_plf_screen_init

void cyg_hal_plf_screen_init(void){    hal_virtual_comm_table_t* comm;    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);    // Disable interrupts.    HAL_INTERRUPT_MASK(pc_ser_channels[PCMB_PORT_INDEX].isr_vector);    // Init channels    cyg_hal_plf_screen_init_channel(&pc_ser_channels[PCMB_PORT_INDEX]);    // Setup procs in the vector table    // Set channel 2    CYGACC_CALL_IF_SET_CONSOLE_COMM(PCMB_PORT_INDEX);    comm = CYGACC_CALL_IF_CONSOLE_PROCS();    CYGACC_COMM_IF_CH_DATA_SET(*comm, &pc_ser_channels[PCMB_PORT_INDEX]);    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_screen_write);    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_screen_read);    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_screen_putc);    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_screen_getc);    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_screen_control);    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_screen_isr);    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_screen_getc_timeout);    // Restore original console    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:28,


示例11: cyg_hal_plf_serial_control

static intcyg_hal_plf_serial_control(void *__ch_data, __comm_control_cmd_t __func, ...){    int ret = 0;    struct port_info *info = (struct port_info *)__ch_data;    switch (__func) {    case __COMMCTL_IRQ_ENABLE:        HAL_INTERRUPT_UNMASK(info->intnum);        info->irq_state = 1;        break;    case __COMMCTL_IRQ_DISABLE:        ret = info->irq_state;        info->irq_state = 0;        HAL_INTERRUPT_MASK(info->intnum);        break;    case __COMMCTL_DBG_ISR_VECTOR:        ret = info->intnum;        break;    case __COMMCTL_SET_TIMEOUT:    {        va_list ap;        va_start(ap, __func);        ret = msec_timeout;        msec_timeout = va_arg(ap, cyg_uint32);        va_end(ap);    }            default:        break;    }    return ret;}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:34,


示例12: cyg_hal_ixp425_serial_init

voidcyg_hal_ixp425_serial_init(void){    hal_virtual_comm_table_t* comm;    int i, cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);    for (i = 0; i < IXP425_NUM_UARTS; i++) {	// Disable interrupts.	HAL_INTERRUPT_MASK(plf_ser_channels[i].isr_vector);	// Init channels	cyg_hal_plf_serial_init_channel(&plf_ser_channels[i]);	// Setup procs in the vector table	CYGACC_CALL_IF_SET_CONSOLE_COMM(i);	comm = CYGACC_CALL_IF_CONSOLE_PROCS();	CYGACC_COMM_IF_CH_DATA_SET(*comm, &plf_ser_channels[i]);	CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);	CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);	CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);	CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);	CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);	CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);	CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);    }    // Restore original console    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);}
开发者ID:0xCA5A,项目名称:dd-wrt,代码行数:29,


示例13: cyg_hal_plf_serial_init_channel

static voidcyg_hal_plf_serial_init_channel(void* __ch_data){    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;    // 8-1-no parity.    HAL_WRITE_UINT32(base+E7T_UART_LCON,                      E7T_UART_LCON_8_DBITS|E7T_UART_LCON_1_SBITS|E7T_UART_LCON_NO_PARITY);    HAL_WRITE_UINT32(base+E7T_UART_BRDIV, SIO_BRDDIV);    // Mask interrupts    HAL_INTERRUPT_MASK(((channel_data_t*)__ch_data)->isr_vector_rx);    HAL_INTERRUPT_MASK(((channel_data_t*)__ch_data)->isr_vector_tx);    // Enable RX and TX    HAL_WRITE_UINT32(base+E7T_UART_CON, E7T_UART_CON_RXM_INT|E7T_UART_CON_TXM_INT);}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:18,


示例14: 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;        int ret = 0;    CYGARC_HAL_SAVE_GP();    switch (__func) {    case __COMMCTL_GETBAUD:        ret = chan->baud_rate;        break;    case __COMMCTL_SETBAUD:        {        va_list ap;        va_start(ap, __func);	        ret = chan->baud_rate;        chan->baud_rate = va_arg(ap, cyg_int32);        init_serial_channel(chan);	        va_end(ap);        }        break;    case __COMMCTL_IRQ_ENABLE:	    // Just enable the interrupt on the IMB3. The debugged application is        // must make sure that the interrupt is properly decoded        HAL_INTERRUPT_UNMASK(chan->imb3_vector);        irq_state = 1;        break;    case __COMMCTL_IRQ_DISABLE:		// Same remark as above        ret = irq_state;        irq_state = 0;        HAL_INTERRUPT_MASK(chan->imb3_vector);        break;    case __COMMCTL_DBG_ISR_VECTOR:        ret = chan->imb3_vector;        break;    case __COMMCTL_SET_TIMEOUT:        {        va_list ap;        va_start(ap, __func);        ret = chan->msec_timeout;        chan->msec_timeout = va_arg(ap, cyg_uint32);        va_end(ap);        }                break;    default:        break;    }    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:57,


示例15: cyg_hal_plf_serial_control

static int cyg_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;  volatile cyg_uint32*  pulBase       = chan->pulBase;  int                   ret           = 0;  cyg_uint8             status;  CYGARC_HAL_SAVE_GP();  switch (__func)   {  case __COMMCTL_IRQ_ENABLE:    irq_state = 1;    // Ensure that only Receive ints are generated.    status = pulBase[REL_Adr_uartcr / sizeof(cyg_uint8)];    status |= (MSK_uartcr_RTIE | MSK_uartcr_RIE);    pulBase[REL_Adr_uartcr / sizeof(cyg_uint8)] = status;    HAL_INTERRUPT_UNMASK(chan->isr_vector);    break;  case __COMMCTL_IRQ_DISABLE:    ret = irq_state;    irq_state = 0;    status = pulBase[REL_Adr_uartcr / sizeof(cyg_uint8)];    status &= ~(MSK_uartcr_RTIE | MSK_uartcr_TIE | MSK_uartcr_RIE | MSK_uartcr_MSIE);    pulBase[REL_Adr_uartcr / sizeof(cyg_uint8)] = status;    HAL_INTERRUPT_MASK(chan->isr_vector);    break;  case __COMMCTL_DBG_ISR_VECTOR:    ret = chan->isr_vector;    break;  case __COMMCTL_SET_TIMEOUT:  {    va_list ap;    va_start(ap, __func);    ret = chan->msec_timeout;    chan->msec_timeout = va_arg(ap, cyg_uint32);    va_end(ap);  }  default:      break;  }  CYGARC_HAL_RESTORE_GP();  return ret;}
开发者ID:eartes,项目名称:netx_ecos_port,代码行数:56,


示例16: 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,


示例17: hal_mpc5xx_remove_arbitration_isr

externC voidhal_mpc5xx_remove_arbitration_isr(hal_mpc5xx_arbitration_data * adata){#ifdef CYGSEM_HAL_POWERPC_MPC5XX_IMB3_ARBITER    // Prevent anything from coming through while manipulating the list  HAL_INTERRUPT_MASK(CYGNUM_HAL_INTERRUPT_SIU_LVL7);  imb3_data_head = mpc5xx_remove(imb3_data_head, adata);  HAL_INTERRUPT_UNMASK(CYGNUM_HAL_INTERRUPT_SIU_LVL7);#endif}
开发者ID:perryhg,项目名称:terkos,代码行数:10,


示例18: net_io_control

static intnet_io_control(void *__ch_data, __comm_control_cmd_t __func, ...){    static int vector = 0;    int ret = 0;    static int irq_state = 0;    CYGARC_HAL_SAVE_GP();    switch (__func) {    case __COMMCTL_IRQ_ENABLE:        irq_state = 1;        if (vector == 0) {            vector = eth_drv_int_vector();        }        HAL_INTERRUPT_UNMASK(vector);         break;    case __COMMCTL_IRQ_DISABLE:        ret = irq_state;        irq_state = 0;        if (vector == 0) {            vector = eth_drv_int_vector();        }        HAL_INTERRUPT_MASK(vector);        break;    case __COMMCTL_DBG_ISR_VECTOR:        ret = vector;        break;    case __COMMCTL_SET_TIMEOUT:    {        va_list ap;        va_start(ap, __func);        ret = _timeout;        _timeout = va_arg(ap, cyg_uint32);        va_end(ap);        break;    }    case __COMMCTL_FLUSH_OUTPUT:        net_io_flush();        break;    case __COMMCTL_ENABLE_LINE_FLUSH:	flush_output_lines = true;	break;    case __COMMCTL_DISABLE_LINE_FLUSH:	flush_output_lines = false;	break;    default:        break;    }    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:perryhg,项目名称:terkos,代码行数:55,


示例19: cyg_hal_plf_serial_control

static int CYGOPT_HAL_KINETIS_DIAG_FLASH_SECTION_ATTRcyg_hal_plf_serial_control(void *__ch_data, __comm_control_cmd_t __func, ...){    channel_data_t* chan = (channel_data_t*)__ch_data;    CYG_ADDRESS uart_p = ((channel_data_t*)__ch_data)->base;    cyg_uint8 ser_port_reg;    int ret = 0;    va_list ap;    CYGARC_HAL_SAVE_GP();    va_start(ap, __func);    switch (__func) {    case __COMMCTL_IRQ_ENABLE:        chan->irq_state = 1;        HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);        HAL_INTERRUPT_UNMASK(chan->isr_vector);        HAL_READ_UINT8(uart_p + CYGHWR_DEV_FREESCALE_UART_C2, ser_port_reg);        ser_port_reg |= CYGHWR_DEV_FREESCALE_UART_C2_RIE;        HAL_WRITE_UINT8(uart_p + CYGHWR_DEV_FREESCALE_UART_C2, ser_port_reg);        break;    case __COMMCTL_IRQ_DISABLE:        ret = chan->irq_state;        chan->irq_state = 0;        HAL_INTERRUPT_MASK(chan->isr_vector);        HAL_READ_UINT8(uart_p + CYGHWR_DEV_FREESCALE_UART_C2, ser_port_reg);        ser_port_reg &= ~(cyg_uint8)CYGHWR_DEV_FREESCALE_UART_C2_RIE;        HAL_WRITE_UINT8(uart_p + CYGHWR_DEV_FREESCALE_UART_C2, 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);    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;    default:        break;    }    va_end(ap);    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:benchfox,项目名称:ecos,代码行数:55,


示例20: hal_variant_IRQ_init

externC voidhal_variant_IRQ_init(void){    HAL_INTERRUPT_MASK (CYGNUM_EXPANSION);    /* clear the mask register */    HAL_WRITE_UINT32(INTR_MASK_REG, 0); /* all expansion interrupts are masked */    HAL_INTERRUPT_ATTACH (CYGNUM_EXPANSION, &hal_extended_isr, 0, 0);    HAL_INTERRUPT_UNMASK (CYGNUM_EXPANSION);}
开发者ID:perryhg,项目名称:terkos,代码行数:11,


示例21: 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;    int ret = 0;    CYGARC_HAL_SAVE_GP();    switch (__func) {    case __COMMCTL_IRQ_ENABLE:        irq_state = 1;	HAL_WRITE_UINT8(chan->base+CYG_DEV_IER, SIO_IER_RCV);        HAL_INTERRUPT_UNMASK(chan->isr_vector);        break;    case __COMMCTL_IRQ_DISABLE:        ret = irq_state;        irq_state = 0;	HAL_WRITE_UINT8(chan->base+CYG_DEV_IER, 0);        HAL_INTERRUPT_MASK(chan->isr_vector);        break;    case __COMMCTL_DBG_ISR_VECTOR:        ret = chan->isr_vector;        break;    case __COMMCTL_SET_TIMEOUT:    {        va_list ap;        va_start(ap, __func);        ret = chan->msec_timeout;        chan->msec_timeout = va_arg(ap, cyg_uint32);        va_end(ap);    }            case __COMMCTL_GETBAUD:        ret = chan->baud_rate;        break;    case __COMMCTL_SETBAUD:    {        va_list ap;        va_start(ap, __func);        chan->baud_rate = va_arg(ap, cyg_int32);        va_end(ap);        ret = set_baud(chan);        break;    }    default:        break;    }    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:54,


示例22: hal_IRQ_init

externC voidhal_IRQ_init(void){    int i;    /* yes this is a quick fix; arch.inc should be changed, but this is     * good enough for now */    for (i=0; i <= CYGNUM_HAL_INTERRUPT_5;++i )		HAL_INTERRUPT_MASK (i);    hal_variant_IRQ_init();}
开发者ID:perryhg,项目名称:terkos,代码行数:12,


示例23: cyg_drv_interrupt_mask_intunsafe

externC void cyg_drv_interrupt_mask_intunsafe( cyg_vector_t vector ){    CYG_REPORT_FUNCTION();    CYG_REPORT_FUNCARG1("vector=%d", vector);    CYG_ASSERT( vector >= CYGNUM_HAL_ISR_MIN, "Invalid vector");        CYG_ASSERT( vector <= CYGNUM_HAL_ISR_MAX, "Invalid vector");    HAL_INTERRUPT_MASK( vector );    CYG_REPORT_RETURN();}
开发者ID:Joel397,项目名称:Ongoing_work_files,代码行数:12,


示例24: 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;    int ret = -1;    cyg_uint8 ier;	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?        init_channel(chan);        ret = 0;        break;    case __COMMCTL_IRQ_ENABLE:        HAL_INTERRUPT_UNMASK(chan->isr_vector);        HAL_INTERRUPT_SET_LEVEL(chan->isr_vector, 1);        HAL_READ_UINT8(chan->base+PXA2X0_UART_IER, ier);        ier |= PXA2X0_UART_IER_RAVIE;        HAL_WRITE_UINT8(chan->base+PXA2X0_UART_IER, ier);        irq_state = 1;        break;    case __COMMCTL_IRQ_DISABLE:        ret = irq_state;        irq_state = 0;        HAL_INTERRUPT_MASK(chan->isr_vector);        HAL_READ_UINT8(chan->base+PXA2X0_UART_IER, ier);        ier &= ~PXA2X0_UART_IER_RAVIE;        HAL_WRITE_UINT8(chan->base+PXA2X0_UART_IER, ier);        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);        break;    default:        break;    }    va_end(ap);    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:52,


示例25: 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;    int ret = 0;    cyg_uint8 status;    CYGARC_HAL_SAVE_GP();    switch (__func) {    case __COMMCTL_IRQ_ENABLE:        irq_state = 1;	// Ensure that only Receive ints are generated.	status = IO_READ(chan->base + AMBA_UARTCR);	status |= (AMBA_UARTCR_RTIE | AMBA_UARTCR_RIE);	HAL_WRITE_UINT32(chan->base + AMBA_UARTCR, status);        HAL_INTERRUPT_UNMASK(chan->isr_vector);        break;    case __COMMCTL_IRQ_DISABLE:        ret = irq_state;	irq_state = 0;	status = IO_READ(chan->base + AMBA_UARTCR);	status &= ~(AMBA_UARTCR_RTIE | AMBA_UARTCR_TIE | AMBA_UARTCR_RIE | AMBA_UARTCR_MSIE);	HAL_WRITE_UINT32(chan->base + AMBA_UARTCR, status);        HAL_INTERRUPT_MASK(chan->isr_vector);        break;    case __COMMCTL_DBG_ISR_VECTOR:        ret = chan->isr_vector;        break;    case __COMMCTL_SET_TIMEOUT:    {        va_list ap;        va_start(ap, __func);        ret = chan->msec_timeout;        chan->msec_timeout = va_arg(ap, cyg_uint32);        va_end(ap);    }            default:        break;    }    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:KarenHung,项目名称:ecosgit,代码行数:50,


示例26: 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 ier;    int ret = 0;    CYGARC_HAL_SAVE_GP();    switch (__func) {    case __COMMCTL_IRQ_ENABLE:        irq_state = 1;        HAL_READ_UINT8(chan->base+CYG_DEVICE_BK0_IER, ier);        ier |= CYG_DEVICE_BK0_IER_RXHDL_IE;        HAL_WRITE_UINT8(chan->base+CYG_DEVICE_BK0_IER, ier);        HAL_INTERRUPT_SET_LEVEL(chan->isr_vector, 1);        HAL_INTERRUPT_UNMASK(chan->isr_vector);        break;    case __COMMCTL_IRQ_DISABLE:        ret = irq_state;        irq_state = 0;        HAL_READ_UINT8(chan->base+CYG_DEVICE_BK0_IER, ier);        ier &= ~CYG_DEVICE_BK0_IER_RXHDL_IE;        HAL_WRITE_UINT8(chan->base+CYG_DEVICE_BK0_IER, ier);        HAL_INTERRUPT_MASK(chan->isr_vector);        break;    case __COMMCTL_DBG_ISR_VECTOR:        ret = chan->isr_vector;        break;    case __COMMCTL_SET_TIMEOUT:    {        va_list ap;        va_start(ap, __func);        ret = chan->msec_timeout;        chan->msec_timeout = va_arg(ap, cyg_uint32);        va_end(ap);    }            default:        break;    }    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:0xCA5A,项目名称:dd-wrt,代码行数:50,


示例27: cyg_drv_interrupt_mask

externC void cyg_drv_interrupt_mask( cyg_vector_t vector ){    CYG_INTERRUPT_STATE old_ints;    CYG_REPORT_FUNCTION();    CYG_REPORT_FUNCARG1("vector=%d", vector);    CYG_ASSERT( vector >= CYGNUM_HAL_ISR_MIN, "Invalid vector");        CYG_ASSERT( vector <= CYGNUM_HAL_ISR_MAX, "Invalid vector");    HAL_DISABLE_INTERRUPTS(old_ints);    HAL_INTERRUPT_MASK( vector );    HAL_RESTORE_INTERRUPTS(old_ints);    CYG_REPORT_RETURN();}
开发者ID:Joel397,项目名称:Ongoing_work_files,代码行数:16,


示例28: cyg_hal_plf_serial_control

static intcyg_hal_plf_serial_control(void *__ch_data, __comm_control_cmd_t __func, ...){    static int irq_state = 0;    cyg_uint32 intm;    channel_data_t* chan = (channel_data_t*)__ch_data;    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;    int ret = 0;    CYGARC_HAL_SAVE_GP();    switch (__func) {    case __COMMCTL_IRQ_ENABLE:        irq_state = 1;        HAL_READ_UINT32(base+AAEC_UART_INTM, intm);        intm |= AAEC_UART_INT_RIS|AAEC_UART_INT_RTIS;        HAL_WRITE_UINT32(base+AAEC_UART_INTM, intm);        HAL_INTERRUPT_UNMASK(chan->isr_vector);        break;    case __COMMCTL_IRQ_DISABLE:        ret = irq_state;        irq_state = 0;        HAL_READ_UINT32(base+AAEC_UART_INTM, intm);        intm &= ~(AAEC_UART_INT_RIS|AAEC_UART_INT_RTIS);        HAL_WRITE_UINT32(base+AAEC_UART_INTM, intm);        HAL_INTERRUPT_MASK(chan->isr_vector);        break;    case __COMMCTL_DBG_ISR_VECTOR:        ret = chan->isr_vector;        break;    case __COMMCTL_SET_TIMEOUT:    {        va_list ap;        va_start(ap, __func);        ret = chan->msec_timeout;        chan->msec_timeout = va_arg(ap, cyg_uint32);        va_end(ap);    }            default:        break;    }    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:lijinlei,项目名称:Kernel_BOOX60,代码行数:47,


示例29: cyg_hal_plf_serial_dbg_control

static intcyg_hal_plf_serial_dbg_control(void *__ch_data, __comm_control_cmd_t __func, ...){    static int irq_state = 0;    channel_data_t* chan = (channel_data_t*)__ch_data;    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_dbg_init_channel(chan);        ret = 0;        break;      case __COMMCTL_IRQ_ENABLE:        irq_state = 1;        HAL_INTERRUPT_UNMASK(chan->isr_vector);        HAL_WRITE_UINT32((chan->base+AT91_DBG_IER), AT91_DBG_CSR_RXRDY);        break;      case __COMMCTL_IRQ_DISABLE:        ret = irq_state;        irq_state = 0;        HAL_WRITE_UINT32((chan->base+AT91_DBG_IDR), AT91_DBG_CSR_RXRDY);        HAL_INTERRUPT_MASK(chan->isr_vector);        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;    }    CYGARC_HAL_RESTORE_GP();    return ret;}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:44,


示例30: cyg_hal_plf_serial_control

static intcyg_hal_plf_serial_control(channel_data_t *chan, __comm_control_cmd_t func, ...){    Xuint16 opt;    int ret = 0;    led(1);    if (!chan->dev_ok) return ret;    switch (func) {    case __COMMCTL_IRQ_ENABLE:        opt = XUartNs550_GetOptions(&chan->dev) | XUN_OPTION_DATA_INTR;        XUartNs550_SetOptions(&chan->dev, opt);        HAL_INTERRUPT_UNMASK(chan->isr_vector);        chan->int_state = 1;        break;    case __COMMCTL_IRQ_DISABLE:        ret = chan->int_state;        chan->int_state = 0;        opt = XUartNs550_GetOptions(&chan->dev) & ~XUN_OPTION_DATA_INTR;        XUartNs550_SetOptions(&chan->dev, opt);        HAL_INTERRUPT_MASK(chan->isr_vector);                break;    case __COMMCTL_DBG_ISR_VECTOR:        ret = chan->isr_vector;        break;    case __COMMCTL_SET_TIMEOUT:    {        va_list ap;        va_start(ap, func);        ret = chan->msec_timeout;        chan->msec_timeout = va_arg(ap, cyg_uint32);        va_end(ap);    }            default:        break;    }    return ret;}
开发者ID:EPiCS,项目名称:reconos_v2,代码行数:43,



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


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