RT-Thread API参考手册
3.1.1
嵌入式实时操作系统
|
中断管理接口 更多...
函数 | |
void | rt_interrupt_enter (void) |
中断进入 更多... | |
void | rt_interrupt_leave (void) |
中断离开 更多... | |
rt_uint8_t | rt_interrupt_get_nest (void) |
中断嵌套层数获取 更多... | |
rt_base_t | rt_hw_interrupt_disable (void) |
禁用系统中断 更多... | |
void | rt_hw_interrupt_enable (rt_base_t level) |
打开系统中断 更多... | |
void | rt_hw_interrupt_init (void) |
初始化中断 更多... | |
void | rt_hw_interrupt_mask (int vector) |
禁用指定中断 更多... | |
void | rt_hw_interrupt_umask (int vector) |
打开指定中断 更多... | |
void | rt_hw_interrupt_install (int vector, rt_isr_handler_t new_handler, rt_isr_handler_t *old_handler) |
安装中断处理程序 更多... | |
中断管理接口
RT-Thread的中断管理功能主要是管理中断设备、中断服务例程、中断嵌套、中断栈的维护、 线程切换时的现场保护和恢复等。
当CPU正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个异步事件。 处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。实现这一功能的 系统称为中断系统,申请CPU中断的请求源称为中断源,当多个中断源同时向CPU请求中断时,就存在 一个中断优先权的问题。通常根据中断源的优先级别,优先处理最紧急事件的中断请求源,即最先 响应级别最高的中断请求。
当中断产生时,CPU将按如下的顺序执行:
中断使得CPU可以在事件发生时才进行处理,而不必让CPU连续不断地查询是否有相应的事件发生。
void rt_interrupt_enter | ( | void | ) |
void rt_interrupt_leave | ( | void | ) |
rt_uint8_t rt_interrupt_get_nest | ( | void | ) |
中断嵌套层数获取
该函数将返回中断嵌套。
用户应用程序可以调用此函数来获取当前上下文是否是中断上下文。
rt_base_t rt_hw_interrupt_disable | ( | void | ) |
void rt_hw_interrupt_enable | ( | rt_base_t | level | ) |
打开系统中断
该功能将设置指定的中断状态,该状态应由rt_hw_intterrupt_disable函数保存。 如果保存的中断状态是中断打开,该功能将打开系统中断状态。
void rt_hw_interrupt_init | ( | void | ) |
初始化中断
该函数初始化中断。
void rt_hw_interrupt_mask | ( | int | vector | ) |
禁用指定中断
此函数屏蔽指定的中断。
vector | 要屏蔽的中断号。 |
void rt_hw_interrupt_umask | ( | int | vector | ) |
打开指定中断
该函数打开指定的中断。
vector | 要打开的中断号。 |
void rt_hw_interrupt_install | ( | int | vector, |
rt_isr_handler_t | new_handler, | ||
rt_isr_handler_t * | old_handler | ||
) |
安装中断处理程序
该函数将安装指定的中断处理程序。
vector | 要安装的中断号。 |
new_handler | 新的中断处理程序。 |
old_handler | 旧的中断处理程序。 该参数可以是RT_NULL。 |