[发明专利]支持eCos系统的中断栈处理方法、打印方法及接收机在审
申请号: | 202110205763.X | 申请日: | 2021-02-24 |
公开(公告)号: | CN112988349A | 公开(公告)日: | 2021-06-18 |
发明(设计)人: | 吴振;刘彦;郝志杰;胡月;丁杰;吴金英;刘勇 | 申请(专利权)人: | 长沙海格北斗信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 长沙永星专利商标事务所(普通合伙) 43001 | 代理人: | 周咏;米中业 |
地址: | 410000 湖南省长*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 支持 ecos 系统 中断 处理 方法 打印 接收机 | ||
本发明公开了一种支持eCos系统的中断栈处理方法,包括发生中断时进入中断处理过程;获取中断栈地址并检查中断栈地址;根据检查结果对齐中断栈;中断处理完成后恢复中断栈,完成中断栈处理。本发明还公开了包括所述支持eCos系统的中断栈处理方法的打印方法。本发明还公开了包括所述支持eCos系统的中断栈处理方法和打印方法的接收机。本发明采用创新性算法进行中断栈的处理,是一种通用的用于eCos系统的软件解决方案,与硬件平台无关,并且与硬件支持不冲突,同时并未增加多余的工作量,而且浮点格式化与线程情况下使用相同处理,确保了同一系统下双精度浮点的格式化标准相同;本发明同时还具有通用性好和简单可靠的优点。
技术领域
本发明具体涉及一种支持eCos系统的中断栈处理方法、打印方法及接收机。
背景技术
在普通的线程中(非中断情形),eCos可正常支持双精度浮点打印,通过其自带的C库函数和数学库函数实现。但是,在eCos原生系统中,并不支持在中断中直接打印或者格式化双精度浮点数据。在使用的过程中,直接使用打印函数进行输出时,有概率会出现数据打印错误的情况,导致无法正确跟踪某些状态,给跟踪调试带来不便。尤其对于某些时效性强的数据,如果无法第一时间打印出来,则需要使用较大的memory进行数据保存,这使得调试过程极为麻烦。
现有技术中,在cortexM3系列芯片中,可通过控制硬件NVICCCR的配置来支持该功能,但是该功能通过硬件实现,不具备通用性,而且会占用硬件资源。
发明内容
本发明的目的之一在于提供一种通过软件算法实现的、支持eCos系统且通用性好,简单可靠的支持eCos系统的中断栈处理方法。
本发明的目的之二在于提供一种包括了所述支持eCos系统的中断栈处理方法的打印方法。
本发明的目的之三在于提供一种包括了所述支持eCos系统的中断栈处理方法和打印方法的接收机。
本发明提供的这种支持eCos系统的中断栈处理方法,包括如下步骤:
S1.当发生中断时,进入中断处理过程;
S2.获取中断栈地址,并进行中断栈地址检查;
S3.根据步骤S2的中断栈地址检查结果,进行中断栈对齐;
S4.中断处理完成后,对中断栈进行恢复,从而完成中断栈处理。
步骤S2所述的进行中断栈地址检查,具体为在进入eCos中断时,使用golden栈保存完当前数据后,进行栈切换:首先检查进入中断时的栈是否为8字节对齐;检查过程为:对当前SP进行检查:若当前SP的最低3bit全部为0,则说明至少8字节已经对齐,否则为未对齐。
步骤S3所述的进行中断栈对齐,具体为若步骤S2检查的结果为中断栈未对齐,则向栈中多push一个数据,使得当前栈减4,使当前栈从4字节对齐变成至少8字节对齐,同时对上述的中断栈对齐操作进行记录。
步骤S4所述的对中断栈进行恢复,具体为在中断处理完成后,在进入interrupt_end之前,根据步骤S3中已记录的中断栈对齐操作,对中断栈进行恢复:若未进行中断栈对齐操作,则直接恢复中断栈;若进行了中断栈对齐操作,则从当前栈中pop一个数据,使得当前栈加4,同时恢复中断栈对齐操作为原始值。
本发明还公开了一种包括了上述支持eCos系统的中断栈处理方法的打印方法,包括如下步骤:
A.在eCos系统中,进行浮点格式化数据支持;
B.当需要进行双精度浮点打印时,进入中断;
C.采用上述的支持eCos系统的中断栈处理方法进行中断栈处理,完成双精度浮点打印并出中断,从而完成最终的打印。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长沙海格北斗信息技术有限公司,未经长沙海格北斗信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110205763.X/2.html,转载请声明来源钻瓜专利网。