XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
中断 的协作图:

函数

static xwer_t xwos_irq_enable (xwirq_t irqn)
 XWOS API:开启中断
 
static xwer_t xwos_irq_disable (xwirq_t irqn)
 XWOS API:关闭中断
 
static xwer_t xwos_irq_save (xwirq_t irqn, xwreg_t *flag)
 XWOS API:保存中断的开关,然后将其关闭
 
static xwer_t xwos_irq_restore (xwirq_t irqn, xwreg_t flag)
 XWOS API:恢复中断的开关
 
static xwer_t xwos_irq_get_id (xwirq_t *irqnbuf)
 XWOS API:判断当前的上下文是否为中断上下文,并取得当前中断的中断号
 
static void xwos_cpuirq_enable_lc (void)
 XWOS API:开启本地CPU的中断
 
static void xwos_cpuirq_disable_lc (void)
 XWOS API:关闭本地CPU的中断
 
static void xwos_cpuirq_resume_lc (void)
 XWOS API:恢复本地CPU的中断
 
static void xwos_cpuirq_suspend_lc (void)
 XWOS API:暂停本地CPU的中断
 
static void xwos_cpuirq_restore_lc (xwreg_t cpuirq)
 XWOS API:恢复本地CPU的中断开关
 
static void xwos_cpuirq_save_lc (xwreg_t *cpuirq)
 XWOS API:保存然后关闭本地CPU的中断开关
 
static bool xwos_cpuirq_test_lc (void)
 XWOS API:测试本地CPU的中断开关状态 return 本地CPU的中断状态 retval true: 开启中断 retval false: 关闭中断
 

详细描述

技术参考手册: 中断管理

CPU中断开关

外设中断

获取当前代码的中断号

外设中断的其他CAPI

C++

C++头文件: xwos/osal/irq.hxx

函数说明

◆ xwos_cpuirq_disable_lc()

static void xwos_cpuirq_disable_lc ( void  )
inlinestatic

XWOS API:关闭本地CPU的中断

注解
  • 上下文:任意
  • 此CAPI只能在 xwos_cpuirq_enable_lc() 之前,与之成对使用,不可嵌套。
  • 此CAPI运行在哪个CPU上,关闭的就是哪个CPU的中断。此CAPI不影响其他CPU的中断开关。

在文件 irq.h162 行定义.

163{
164 xwosdl_cpuirq_disable_lc();
165}
这是这个函数的调用关系图:

◆ xwos_cpuirq_enable_lc()

static void xwos_cpuirq_enable_lc ( void  )
inlinestatic

XWOS API:开启本地CPU的中断

注解
  • 上下文:任意
  • 此CAPI只能在 xwos_cpuirq_disable_lc() 之后,与之成对使用,不可嵌套。
  • 此CAPI运行在哪个CPU上,开启的就是哪个CPU的中断。此CAPI不影响其他CPU的中断开关。

在文件 irq.h148 行定义.

149{
150 xwosdl_cpuirq_enable_lc();
151}
这是这个函数的调用关系图:

◆ xwos_cpuirq_restore_lc()

static void xwos_cpuirq_restore_lc ( xwreg_t  cpuirq)
inlinestatic

XWOS API:恢复本地CPU的中断开关

参数
[in]cpuirq本地CPU的中断开关
注解
  • 上下文:任意
  • 此CAPI运行在哪个CPU上,恢复的就是哪个CPU的中断开关。

在文件 irq.h206 行定义.

207{
208 xwosdl_cpuirq_restore_lc(cpuirq);
209}
这是这个函数的调用关系图:

◆ xwos_cpuirq_resume_lc()

static void xwos_cpuirq_resume_lc ( void  )
inlinestatic

XWOS API:恢复本地CPU的中断

注解
  • 上下文:任意
  • 此CAPI只能在 xwos_cpuirq_suspend_lc() 之后,与之成对使用。
  • xwos_cpuirq_suspend_lc() 调用了多少次,就要调用有与之对应次数此CAPI。
  • 此CAPI运行在哪个CPU上,开启的就是哪个CPU的中断。此CAPI不影响其他CPU的中断开关。

在文件 irq.h177 行定义.

178{
179 xwosdl_cpuirq_resume_lc();
180}
这是这个函数的调用关系图:

◆ xwos_cpuirq_save_lc()

static void xwos_cpuirq_save_lc ( xwreg_t cpuirq)
inlinestatic

XWOS API:保存然后关闭本地CPU的中断开关

参数
[out]cpuirq指向缓冲区的指针,此缓冲区用于返回本地CPU的中断开关
注解
  • 上下文:任意
  • 此CAPI运行在哪个CPU上,保存然后关闭的就是哪个CPU的中断开关。

在文件 irq.h220 行定义.

221{
222 xwosdl_cpuirq_save_lc(cpuirq);
223}
这是这个函数的调用关系图:

◆ xwos_cpuirq_suspend_lc()

static void xwos_cpuirq_suspend_lc ( void  )
inlinestatic

XWOS API:暂停本地CPU的中断

注解
  • 上下文:任意
  • 此CAPI只能在 xwos_cpuirq_resmue_lc() 之前,与之成对使用。
  • 此CAPI可嵌套使用,但需要在之后调用相同次数的 xwos_cpuirq_resmue_lc()
  • 此CAPI运行在哪个CPU上,关闭的就是哪个CPU的中断。此CAPI不影响其他CPU的中断开关。

在文件 irq.h192 行定义.

193{
194 xwosdl_cpuirq_suspend_lc();
195}
这是这个函数的调用关系图:

◆ xwos_cpuirq_test_lc()

static bool xwos_cpuirq_test_lc ( void  )
inlinestatic

XWOS API:测试本地CPU的中断开关状态 return 本地CPU的中断状态 retval true: 开启中断 retval false: 关闭中断

注解
  • 上下文:任意

在文件 irq.h234 行定义.

235{
236 return xwosdl_cpuirq_test_lc();
237}
这是这个函数的调用关系图:

◆ xwos_irq_disable()

static xwer_t xwos_irq_disable ( xwirq_t  irqn)
inlinestatic

XWOS API:关闭中断

参数
[in]irqn中断号
返回
错误码
返回值
XWOK没有错误
-ERANGE中断号超出范围
-ENOSYS没有实现此功能
注解
  • 上下文:任意

在文件 irq.h82 行定义.

83{
84 return xwosdl_irq_disable(irqn);
85}
这是这个函数的调用关系图:

◆ xwos_irq_enable()

static xwer_t xwos_irq_enable ( xwirq_t  irqn)
inlinestatic

XWOS API:开启中断

参数
[in]irqn中断号
返回
错误码
返回值
XWOK没有错误
-ERANGE中断号超出范围
-ENOSYS没有实现此功能
注解
  • 上下文:任意

在文件 irq.h66 行定义.

67{
68 return xwosdl_irq_enable(irqn);
69}
这是这个函数的调用关系图:

◆ xwos_irq_get_id()

static xwer_t xwos_irq_get_id ( xwirq_t irqnbuf)
inlinestatic

XWOS API:判断当前的上下文是否为中断上下文,并取得当前中断的中断号

参数
[out]irqnbuf指向缓冲区的指针,通过此缓冲区返回当前中断号:
  • 返回结果仅当返回值为OK时有效
  • 可为NULL,表示不需要返回中断号
返回
错误码
返回值
XWOK当前上下文为中断
-ENOTISRCTX当前上下文不为中断
注解
  • 上下文:任意

在文件 irq.h134 行定义.

135{
136 return xwosdl_irq_get_id(irqnbuf);
137}

◆ xwos_irq_restore()

static xwer_t xwos_irq_restore ( xwirq_t  irqn,
xwreg_t  flag 
)
inlinestatic

XWOS API:恢复中断的开关

参数
[in]irqn中断号
[in]flag中断开关
返回
错误码
返回值
XWOK没有错误
-ERANGE中断号超出范围
-ENOSYS没有实现此功能
注解
  • 上下文:任意

在文件 irq.h117 行定义.

118{
119 return xwosdl_irq_restore(irqn, flag);
120}
这是这个函数的调用关系图:

◆ xwos_irq_save()

static xwer_t xwos_irq_save ( xwirq_t  irqn,
xwreg_t flag 
)
inlinestatic

XWOS API:保存中断的开关,然后将其关闭

参数
[in]irqn中断号
[out]flag指向缓冲区的指针,此缓冲区用于返回中断开关
返回
错误码
返回值
XWOK没有错误
-ERANGE中断号超出范围
-ENOSYS没有实现此功能
-EFAULT空指针
注解
  • 上下文:任意

在文件 irq.h100 行定义.

101{
102 return xwosdl_irq_save(irqn, flag);
103}
这是这个函数的调用关系图: