技术参考手册: 中断管理
CPU中断开关
外设中断
获取当前代码的中断号
外设中断的其他CAPI
C++
C++头文件: xwos/osal/irq.hxx
◆ xwos_cpuirq_disable_lc()
static void xwos_cpuirq_disable_lc |
( |
void |
| ) |
|
|
inlinestatic |
XWOS API:关闭本地CPU的中断
- 注解
-
此函数运行在哪个CPU上,关闭的就是哪个CPU的中断。
在文件 irq.h 第 158 行定义.
159{
160 xwosdl_cpuirq_disable_lc();
161}
◆ xwos_cpuirq_enable_lc()
static void xwos_cpuirq_enable_lc |
( |
void |
| ) |
|
|
inlinestatic |
XWOS API:开启本地CPU的中断
- 注解
-
此函数运行在哪个CPU上,开启的就是哪个CPU的中断。
在文件 irq.h 第 145 行定义.
146{
147 xwosdl_cpuirq_enable_lc();
148}
◆ xwos_cpuirq_restore_lc()
static void xwos_cpuirq_restore_lc |
( |
xwreg_t |
cpuirq | ) |
|
|
inlinestatic |
XWOS API:恢复本地CPU的中断
- 参数
-
- 注解
-
此函数运行在哪个CPU上,恢复的就是哪个CPU的中断。
在文件 irq.h 第 172 行定义.
173{
174 xwosdl_cpuirq_restore_lc(cpuirq);
175}
◆ xwos_cpuirq_save_lc()
static void xwos_cpuirq_save_lc |
( |
xwreg_t * |
cpuirq | ) |
|
|
inlinestatic |
XWOS API:保存然后关闭本地CPU的中断
- 参数
-
[out] | cpuirq | 指向缓冲区的指针,此缓冲区用于返回本地CPU的中断开关 |
- 注解
-
此函数运行在哪个CPU上,保存然后关闭的就是哪个CPU的中断。
在文件 irq.h 第 186 行定义.
187{
188 xwosdl_cpuirq_save_lc(cpuirq);
189}
◆ xwos_irq_disable()
XWOS API:关闭中断
- 参数
-
- 返回
- 错误码
- 返回值
-
XWOK | 没有错误 |
-ERANGE | 中断号超出范围 |
-ENOSYS | 没有实现此功能 |
- 注解
-
在文件 irq.h 第 79 行定义.
80{
81 return xwosdl_irq_disable(irqn);
82}
◆ xwos_irq_enable()
XWOS API:开启中断
- 参数
-
- 返回
- 错误码
- 返回值
-
XWOK | 没有错误 |
-ERANGE | 中断号超出范围 |
-ENOSYS | 没有实现此功能 |
- 注解
-
在文件 irq.h 第 63 行定义.
64{
65 return xwosdl_irq_enable(irqn);
66}
◆ xwos_irq_get_id()
XWOS API:判断当前的上下文是否为中断上下文,并取得当前中断的中断号
- 参数
-
[out] | irqnbuf | 指向缓冲区的指针,通过此缓冲区返回当前中断号:
- 返回结果仅当返回值为OK时有效
- 可为NULL,表示不需要返回中断号
|
- 返回
- 错误码
- 返回值
-
XWOK | 当前上下文为中断 |
-ETHDCTX | 当前上下文为线程 |
-EBHCTX | 当前上下文为中断底半部 |
- 注解
-
在文件 irq.h 第 132 行定义.
133{
134 return xwosdl_irq_get_id(irqnbuf);
135}
◆ xwos_irq_restore()
XWOS API:恢复中断的开关
- 参数
-
- 返回
- 错误码
- 返回值
-
XWOK | 没有错误 |
-ERANGE | 中断号超出范围 |
-ENOSYS | 没有实现此功能 |
- 注解
-
在文件 irq.h 第 114 行定义.
115{
116 return xwosdl_irq_restore(irqn, flag);
117}
◆ xwos_irq_save()
XWOS API:保存中断的开关,然后将其关闭
- 参数
-
[in] | irqn | 中断号 |
[out] | flag | 指向缓冲区的指针,此缓冲区用于返回中断开关 |
- 返回
- 错误码
- 返回值
-
XWOK | 没有错误 |
-ERANGE | 中断号超出范围 |
-ENOSYS | 没有实现此功能 |
-EFAULT | 空指针 |
- 注解
-
在文件 irq.h 第 97 行定义.
98{
99 return xwosdl_irq_save(irqn, flag);
100}