System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种RTOS中断处理的方法技术_技高网

一种RTOS中断处理的方法技术

技术编号:40293068 阅读:7 留言:0更新日期:2024-02-07 20:43
本发明专利技术公开了一种RTOS中断处理的方法,包括以下步骤:S101:在系统内核内建立一个优先级最高的中断队列线程;S102:中断队列线程建立一个消息队列,等到中断处理程序与线程通信时发送消息到消息队列;S103:当中断处理程序发起通信,调用消息队列入队的方法,将要执行的通信操作与数据放到消息队列;S104:中断队列线程因消息队列中有消息而被唤醒,开始读取消息;S105:解析消息内容获取中断处理程序发起的通信方式和发送的数据,由中断队列线程调用RTOS内核通信接口与等待通信的线程进行通信。

【技术实现步骤摘要】

本专利技术涉及物联网操作系统,具体涉及一种rtos中断处理的方法。


技术介绍

1、随着物联网的兴起,越来越多的产品为满足实时性需求采用了rtos(real timeoperating system),在rtos内核中往往会访问很多的共享资源,多个线程同时访问共享资源时会导致访问错误,为此rtos会采取进入临界区的方式来保护共享资源的访问,实现临界区的主要方式是关闭芯片的全局中断的方式,目的是让线程不进行切换,从而使共享资源在同一时刻只能被一个线程访问。中断是cpu实时处理内部或外部事件的一种内部机制,当某内部或外部事件发生将迫使cpu暂停正在执行的程序转而去进行中断事件处理,中断处理完成后又回到被中断的程序处继续执行,其中对中断事件进行处理的过程称为中断处理程序。

2、在rtos中线程之间以及中断处理程序与线程之间的通信通过信号量、时间集以及消息队列来实现,在通信中会涉及到很多的共享资源访问,因此会出现频繁的进入临界区的情况,在某些情况下进入临界区的时间很长,这就使关闭中断的时间很长,使得硬件中断就不能得到及时的响应,导致rtos系统的实时性降低。

3、为了解决上述问题,现有的技术在进入临界区采用对调度器上锁的方式来锁住线程的切换,从而保证中断的响应,但是这种方式只适合线程之间通信,如果在中断处理程序与线程通信时,因为中断处理程序的优先级永远高于线程,所以在中断处理程序与线程通信时,中断处理程序与线程存在同时访问共享资源的情况,因而进入临界区,则只能通过关中断的方式,这样在中断处理程序与线程通信时硬件中断无法快速响应,使rtos系统实时性降低。

4、在专利cn101976206a一种中断处理方法和装置中,将应用程序中相应中断的处理过程转换成相应功能线程代替中断执行处理,通过减少中断整体的处理时间提高硬件中断响应的效率,该方法需要用户自己根据中断使用情况创建相应的功能线程,使用的中断越多需要创建的功能线程越多,且中断处理程序全部线程化本身就会导致硬件中断响应降低,降低了实时性,增加了芯片内存的占用和用户开发的复杂度。

5、在专利cn 112433835 a一种基于linux系统的中断处理方法及装置中,通过对中断处理程序线程化过程增加属性判断,避免将不需要线程化的中断处理程序给线程化了,从而避免了高实时性硬件中断处理被线程化带来的延时。与linux不同的是在rtos系统中断处理程序不会默认进行线程化,因为中断处理程序全部线程化本身就会导致硬件中断响应降低,对于rtos系统而言是不可接受的,并且中断处理程序全部线程化需要占用很大的资源,因此rtos中需要考虑的是提高硬件中断的响应同时不将中断处理程序全部线程化。


技术实现思路

1、为解决以上方案存在的问题,本申请提出一种rtos中断处理的方法,该方法内核在初始化时自动创建了一个优先级最高的内核线程,该线程将中断处理程序与线程的通信部分转化为线程与线程的通信,减少了中断处理程序与线程通信时全局中断关闭的时间,在节约芯片资源、降低用户开发复杂度的同时,使硬件中断可以快速响应,从而保证rtos系统的实时性。

2、为了实现上述目的,本专利技术采用以下技术方案:

3、一种rtos中断处理的方法,包括以下步骤:

4、s101:在系统内核内建立一个优先级最高的中断队列线程;

5、s102:中断队列线程建立一个消息队列,等到中断处理程序与线程通信时发送消息到消息队列;

6、s103:当中断处理程序发起通信,调用消息队列入队的方法,将要执行的通信操作与数据放到消息队列;

7、s104:中断队列线程因消息队列中有消息而被唤醒,开始读取消息;

8、s105:解析消息内容获取中断处理程序发起的通信方式和发送的数据,由中断队列线程调用rtos内核通信接口与等待通信的线程进行通信。

9、在一些实施例中,还包括步骤:

10、s106:将中断处理程序与线程之间的通信转化为线程与线程之间的通信,减少中断关闭时间。

11、在一些实施例中,还包括步骤:

12、s107:当中断队列线程将消息队列的所有消息处理完后,使自己进入休眠,等下一个消息。

13、本专利技术与现有技术相比具有的有益效果是:

14、本专利技术使用的一种rtos中断处理的方法,与现有技术相比,本专利只需创建一个最高优先级的中断队列线程,该线程将中断处理程序与线程之间的通信部分转化为线程与线程之间的通信,减少了中断处理程序与线程通信时需关闭全局中断的时间,在节约芯片资源、降低用户开发复杂度的同时,使硬件中断可以快速响应,提高了rtos系统的实时性。

本文档来自技高网...

【技术保护点】

1.一种RTOS中断处理的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种RTOS中断处理的方法,其特征在于,还包括步骤:

3.根据权利要求1所述的一种RTOS中断处理的方法,其特征在于,还包括步骤:

【技术特征摘要】

1.一种rtos中断处理的方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种rtos中断处理的方...

【专利技术属性】
技术研发人员:朱栩
申请(专利权)人:四川启睿克科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1