技术参考手册: 中断管理
CPU中断开关
外设中断
获取当前代码的中断号
外设中断的其他CAPI
C++
C++头文件: xwos/osal/irq.hxx
◆ xwos_cpuirq_disable_lc()
static void xwos_cpuirq_disable_lc |
( |
void |
| ) |
|
|
inlinestatic |
XWOS API:关闭本地CPU的中断
- 注解
-
在文件 irq.h 第 162 行定义.
163{
164 xwosdl_cpuirq_disable_lc();
165}
◆ xwos_cpuirq_enable_lc()
static void xwos_cpuirq_enable_lc |
( |
void |
| ) |
|
|
inlinestatic |
XWOS API:开启本地CPU的中断
- 注解
-
在文件 irq.h 第 148 行定义.
149{
150 xwosdl_cpuirq_enable_lc();
151}
◆ xwos_cpuirq_restore_lc()
static void xwos_cpuirq_restore_lc |
( |
xwreg_t |
cpuirq | ) |
|
|
inlinestatic |
XWOS API:恢复本地CPU的中断开关
- 参数
-
- 注解
-
- 此CAPI运行在哪个CPU上,恢复的就是哪个CPU的中断开关。
在文件 irq.h 第 206 行定义.
207{
208 xwosdl_cpuirq_restore_lc(cpuirq);
209}
◆ xwos_cpuirq_resume_lc()
static void xwos_cpuirq_resume_lc |
( |
void |
| ) |
|
|
inlinestatic |
XWOS API:恢复本地CPU的中断
- 注解
-
在文件 irq.h 第 177 行定义.
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.h 第 220 行定义.
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.h 第 192 行定义.
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.h 第 234 行定义.
235{
236 return xwosdl_cpuirq_test_lc();
237}
◆ xwos_irq_disable()
XWOS API:关闭中断
- 参数
-
- 返回
- 错误码
- 返回值
-
XWOK | 没有错误 |
-ERANGE | 中断号超出范围 |
-ENOSYS | 没有实现此功能 |
- 注解
-
在文件 irq.h 第 82 行定义.
83{
84 return xwosdl_irq_disable(irqn);
85}
◆ xwos_irq_enable()
XWOS API:开启中断
- 参数
-
- 返回
- 错误码
- 返回值
-
XWOK | 没有错误 |
-ERANGE | 中断号超出范围 |
-ENOSYS | 没有实现此功能 |
- 注解
-
在文件 irq.h 第 66 行定义.
67{
68 return xwosdl_irq_enable(irqn);
69}
◆ xwos_irq_get_id()
XWOS API:判断当前的上下文是否为中断上下文,并取得当前中断的中断号
- 参数
-
[out] | irqnbuf | 指向缓冲区的指针,通过此缓冲区返回当前中断号:
- 返回结果仅当返回值为OK时有效
- 可为NULL,表示不需要返回中断号
|
- 返回
- 错误码
- 返回值
-
XWOK | 当前上下文为中断 |
-ENOTISRCTX | 当前上下文不为中断 |
- 注解
-
在文件 irq.h 第 134 行定义.
135{
136 return xwosdl_irq_get_id(irqnbuf);
137}
◆ xwos_irq_restore()
XWOS API:恢复中断的开关
- 参数
-
- 返回
- 错误码
- 返回值
-
XWOK | 没有错误 |
-ERANGE | 中断号超出范围 |
-ENOSYS | 没有实现此功能 |
- 注解
-
在文件 irq.h 第 117 行定义.
118{
119 return xwosdl_irq_restore(irqn, flag);
120}
◆ xwos_irq_save()
XWOS API:保存中断的开关,然后将其关闭
- 参数
-
[in] | irqn | 中断号 |
[out] | flag | 指向缓冲区的指针,此缓冲区用于返回中断开关 |
- 返回
- 错误码
- 返回值
-
XWOK | 没有错误 |
-ERANGE | 中断号超出范围 |
-ENOSYS | 没有实现此功能 |
-EFAULT | 空指针 |
- 注解
-
在文件 irq.h 第 100 行定义.
101{
102 return xwosdl_irq_save(irqn, flag);
103}