多核处理器及其串口复用方法技术

技术编号:2836839 阅读:215 留言:0更新日期:2012-04-11 18:40
本发明专利技术披露了一种多核处理器和用于多核处理器的串口复用方法包括:多核多线程处理器,用于运行至少一个内核线程,以及在接收到切换控制模块的切换控制消息后,进行串口在内核线程间的切换;串口,用于将多核多线程处理器的至少一个内核线程的数据发送至外部,并与串口主控内核线程进行数据交互;以及切换控制模块,连接于串口和多核多线程处理器之间,用于控制多核多线程处理器中的一个或多个内核线程的切换以共享串口。

【技术实现步骤摘要】

本专利技术涉及多核处理器领域,尤其涉及在多核处理器运行多个嵌入式操作系统时,实现一种复用串口的技术。
技术介绍
高性能多核处理器在嵌入式系统中得到了广泛的应用,多核处理器多个内核的不同线程可以独立运行嵌入式操作系统,目前主流的嵌入式操作系统都可以通过基于目标单板的串口Shell进行打印和调试,给软件开放带来极大的便利。然而多核处理器系统的串口资源极其有限,不可能为每个内核线程固定一个串口,所以通常可以通过硬件设计电路扩展串口,达到增加串口个数的目的,因为大部分串口资源在大部分时间都闲置,会造成串口资源的浪费,同时也增加了成本;或者像CN200510030862专利,它是通过硬件切换模块控制串口在GPS串口和CPU串口之间切换,达到复用串口的目的,这种复用带有明显的互斥性,当前时刻串口只能被一个设备独占,其他设备无法使用串口,同时硬件切换串口时可能会造成正在使用串口的软件数据丢失。为了充分发挥串口在多核处理器中的作用,通过软件控制串口在多个内核线程间切换是一种很好的解决问题的方法,不但提高了串口资源的利用率,而且可控性和可靠性都能得到保证。
技术实现思路
本专利技术的一个目的在于克服在串口资源受限的嵌入式系统中串口无法充分复用的缺点,因此提出一种通过利用多核处理器内部消息机制、共享内存、以及中断切换等机制共同完成串口在各个内核线程之间复用的方法。根据本专利技术的一个方面,提供了一种多核处理器,包括多核多线程处理器,用于运行至少一个内核线程,以及在接收到切换控制模块的切换控制消息后,进行串口在内核线程间的切换;串口,用于将多核多线程处理器的至少一个内核线程的数据发送至外部,并与用于串口中断挂接的串口主控内核线程进行数据交互;以及切换控制模块,连接于串口和多核多线程处理器之间,用于控制多核多线程处理器中的一个或多个内核线程的切换以共享串口。切换控制模块定时向多核多线程处理器发送切换控制消息。切换控制模块向用户提供各个内核线程的运行信息,在用户指示切换串口主控内核线程的情况下,切换控制模块向多核多线程处理器发送切换控制命令。多核多线程处理器在上电后进行以下处理由用于串口中断挂接的串口主控内核线程进行初始化和加载驱动程序,使能串口中断,建立共享内存,初始化基于串口的Shell程序;为多核处理器中运行的各个内核线程分配独立的数据缓冲区,在共享内存中建立各个内核线程的串口控制信息;串口主控内核线程向各个内核线程发送串口初始化完成消息,串口初始化完成消息包括串口控制信息在共享内存中的地址;以及在允许使用串口的情况下,各个内核线程将需要发送的数据放入分配的数据缓冲区中并将通知消息发送至串口主控内核线程,串口主控内核线程根据通知消息将数据缓冲区中的数据通过串口发送到外部。多核多线程处理器在接收到切换控制消息后进行以下处理串口主控内核线程发起切换串口流程,禁止当前串口中断并卸载串口驱动程序,同时将串口中断挂接到需要切换到的目的内核线程并发送串口切换通知消息到目的内核线程;目的内核线程作为串口主控内核线程进行初始化和加载驱动程序,使能串口中断,建立共享内存,初始化基于串口的Shell程序,将共享内存中的串口主控内核线程号修改为目的内核线程的线程号,并将初始化完成消息发送至所有内核线程,其他内核线程将目的内核线程作为串口主控内核线程进行后续处理。根据本专利技术的另一个方面,提供了一种用于多核处理器的串口复用方法,该方法包括以下步骤步骤S202,多核处理器上电后,由用于串口中断挂接的串口主控内核线程进行初始化和加载驱动程序,使能串口中断,建立共享内存,初始化基于串口的Shell程序,为多核处理器中运行的各个内核线程分配独立的数据缓冲区,并在共享内存中建立各个内核线程的串口控制信息;步骤S204,串口主控内核线程向各个内核线程发送串口初始化完成消息,串口初始化完成消息包括串口控制信息在共享内存中的地址;步骤S206,在允许使用串口的情况下,各个内核线程将需要发送的数据放入分配的数据缓冲区中并将通知消息发送至串口主控内核线程,串口主控内核线程根据通知消息将数据缓冲区中的数据通过串口发送到外部;步骤S208,在需要切换内核线程的情况下,串口主控内核线程发起切换串口流程,禁止当前串口中断并卸载串口驱动程序,同时将串口中断挂接到需要切换到的目的内核线程并发送串口切换通知消息到目的内核线程;以及步骤S210,目的内核线程作为串口主控内核线程进行初始化和加载驱动程序,使能串口中断,建立共享内存,初始化基于串口的Shell程序,将共享内存中的串口主控内核线程号修改为目的内核线程的线程号,并将初始化完成消息发送至所有内核线程,其他内核线程将目的内核线程作为串口主控内核线程进行后续处理。切换控制模块定时向多核多线程处理器发送切换控制消息。切换控制模块向用户提供各个内核线程的运行信息,在用户指示切换串口主控内核线程的情况下,切换控制模块向多核多线程处理器发送切换控制命令。在本专利技术中,多核处理器中的至少一个内核线程共享串口可以用于打印。通过实施本专利技术,多个内核线程通过软件控制复用串口可以节省硬件资源和成本,提高了串口的利用率;打印信息级别的控制节省了内核线程消息通讯带宽,同时通过串口中断在各内核线程上的切换,使用内核线程运行操作系统自带的Shell程序,极大的方便了软件的开发调试。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定,附图中相同的参考标号表示相同的元件。在附图中图1A和图1B是分别示出现有串口应用的结构示意图; 图2是示出根据本专利技术的多核处理器的框图;图3是示出根据本专利技术的多核处理器的串口复用方法的流程图;图4是示出根据本专利技术一个实施例的多核处理器的串口复用方法的流程图;图5是示出根据本专利技术另一个实施例的复用串口方法的示意图;以及图6是根据本专利技术实施例的复用串口方法的软件流程图。具体实施例方式下面参考附图,详细说明本专利技术的具体实施方式。图2是示出根据本专利技术的多核处理器的框图。参照图2,根据本专利技术的多核处理器200包括多核多线程处理器202,用于运行至少一个内核线程,以及在接收到切换控制模块的切换控制消息后,进行串口在内核线程间的切换;串口204,用于将多核多线程处理器的至少一个内核线程的数据发送至外部,并与用于串口中断挂接的串口主控内核线程进行数据交互;以及切换控制模块206,连接于串口和多核多线程处理器之间,用于控制多核多线程处理器中的一个或多个内核线程的切换以共享串口。切换控制模块206定时向多核多线程处理器发送切换控制消息,向用户提供各个内核线程的运行信息,并在用户指示切换串口主控内核线程的情况下,切换控制模块向多核多线程处理器发送切换控制命令。多核多线程处理器202在上电后进行以下处理由用于串口中断挂接的串口主控内核线程进行初始化和加载驱动程序,使能串口中断,建立共享内存,初始化基于串口的Shell程序;为多核处理器中运行的各个内核线程分本文档来自技高网...

【技术保护点】
一种多核处理器,其特征在于,包括多核多线程处理器、串口和切换控制模块,其中:所述多核多线程处理器,用于运行至少一个内核线程,以及在接收到所述切换控制模块的切换控制消息后,进行所述串口在内核线程间的切换;所述串口,用于将所述多 核多线程处理器的所述至少一个内核线程的数据发送至外部,并与用于串口中断挂接的串口主控内核线程进行数据交互;以及所述切换控制模块,连接于所述串口和所述多核多线程处理器之间,用于控制所述多核多线程处理器中的所述一个或多个内核线程的切换以 共享所述串口。

【技术特征摘要】
1.一种多核处理器,其特征在于,包括多核多线程处理器、串口和切换控制模块,其中所述多核多线程处理器,用于运行至少一个内核线程,以及在接收到所述切换控制模块的切换控制消息后,进行所述串口在内核线程间的切换;所述串口,用于将所述多核多线程处理器的所述至少一个内核线程的数据发送至外部,并与用于串口中断挂接的串口主控内核线程进行数据交互;以及所述切换控制模块,连接于所述串口和所述多核多线程处理器之间,用于控制所述多核多线程处理器中的所述一个或多个内核线程的切换以共享所述串口。2.根据权利要求1所述的多核处理器,其特征在于,所述切换控制模块定时向所述多核多线程处理器发送所述切换控制消息。3.根据权利要求1所述的多核处理器,其特征在于,所述切换控制模块向用户提供所述各个内核线程的运行信息,在用户指示切换所述串口主控内核线程的情况下,所述切换控制模块向所述多核多线程处理器发送所述切换控制命令。4.根据权利要求2或3所述的多核处理器,其特征在于,所述多核多线程处理器在上电后进行以下处理由所述串口主控内核线程进行初始化和加载驱动程序,使能串口中断,建立共享内存,初始化基于串口的Shell程序;为所述多核处理器中运行的各个内核线程分配独立的数据缓冲区,在所述共享内存中建立各个内核线程的串口控制信息;所述串口主控内核线程向所述各个内核线程发送串口初始化完成消息,所述串口初始化完成消息包括串口控制信息在所述共享内存中的地址;以及在允许使用所述串口的情况下,所述各个内核线程将需要发送的数据放入分配的数据缓冲区中并将通知消息发送至所述串口主控内核线程,所述串口主控内核线程根据所述通知消息将所述数据缓冲区中的数据通过所述串口发送到外部。5.根据权利要求4所述的多核处理器,其特征在于,所述多核多线程处理器在接收到所述切换控制消息后进行以下处理所述串口主控内核线程发起切换串口流程,禁止当前串口中断并卸载串口驱动程序,同时将串口中断挂接到需要切换到的目的内核线程并发送串口切换通知消息到所述目的内核线程;所述目的内核线程作为串口主控内核线程进行初始化和加载驱动程序,使能串口中断,建立共享内存,初始化基于串口的Shell程序,将所述共享内存中的串口主控内核线程号修...

【专利技术属性】
技术研发人员:赵阳于伟贾皓昕王守林杨凡
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1
相关领域技术
  • 暂无相关专利