嵌入式技术论坛
直播中

贾大林

8年用户 1403经验值
私信 关注
[经验]

RT-Thread的中断管理功能主要有哪些

中断管理接口

RT-Thread的中断管理功能主要是管理中断设备、中断服务例程、中断嵌套、中断栈的维护、 线程切换时的现场保护和恢复等。

当CPU正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个异步事件。 处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。实现这一功能的 系统称为中断系统,申请CPU中断的请求源称为中断源,当多个中断源同时向CPU请求中断时,就存在 一个中断优先权的问题。通常根据中断源的优先级别,优先处理最紧急事件的中断请求源,即最先 响应级别最高的中断请求。

当中断产生时,CPU将按如下的顺序执行:

(1)保存当前处理机状态信息;
(2)载入异常或中断处理函数到PC寄存器;
(3)把控制权转交给处理函数并开始执行;
(4)当处理函数执行完成时,恢复处理器状态信息;
(5)从异常或中断中返回到前一个程序执行点。
中断使得CPU可以在事件发生时才进行处理,而不必让CPU连续不断地查询是否有相应的事件发生。

函数说明

void rt_interrupt_enter ( void )

中断进入

当进入中断服务程序时,BSP将调用此函数

注解

请不要在程序中调用此例程。
参见
rt_interrupt_leave
void rt_interrupt_leave ( void )
中断离开

当离开中断服务程序时,BSP将调用此函数

注解

请不要在程序中调用此例程。
参见
rt_interrupt_enter
rt_uint8_t rt_interrupt_get_nest ( void )
中断嵌套层数获取

该函数将返回中断嵌套。

用户应用程序可以调用此函数来获取当前上下文是否是中断上下文。

返回

嵌套中断的数量。
rt_base_t rt_hw_interrupt_disable ( void )

禁用系统中断

此功能将返回当前系统中断状态并禁用系统中断。

返回

当前系统中断状态
示例:
interrupt_sample.c.
void rt_hw_interrupt_enable ( rt_base_t level )
打开系统中断

该功能将设置指定的中断状态,该状态应由rt_hw_intterrupt_disable函数保存。 如果保存的中断状态是中断打开,该功能将打开系统中断状态。

示例:

interrupt_sample.c.
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。
注解
并非所有平台都提供此函数。

原作者:文江博客

更多回帖

发帖
×
20
完善资料,
赚取积分