1.一种支持ecos系统的中断栈处理方法,包括如下步骤:
s1.当发生中断时,进入中断处理过程;
s2.获取中断栈地址,并进行中断栈地址检查;
s3.根据步骤s2的中断栈地址检查结果,进行中断栈对齐;
s4.中断处理完成后,对中断栈进行恢复,从而完成中断栈处理。
2.根据权利要求1所述的支持ecos系统的中断栈处理方法,其特征在于步骤s2所述的进行中断栈地址检查,具体为在进入ecos中断时,使用golden栈保存完当前数据后,进行栈切换:首先检查进入中断时的栈是否为8字节对齐;检查过程为:对当前sp进行检查:若当前sp的最低3bit全部为0,则说明至少8字节已经对齐,否则为未对齐。
3.根据权利要求2所述的支持ecos系统的中断栈处理方法,其特征在于步骤s3所述的进行中断栈对齐,具体为若步骤s2检查的结果为中断栈未对齐,则向栈中多push一个数据,使得当前栈减4,使当前栈从4字节对齐变成至少8字节对齐,同时对上述的中断栈对齐操作进行记录。
4.根据权利要求3所述的支持ecos系统的中断栈处理方法,其特征在于步骤s4所述的对中断栈进行恢复,具体为在中断处理完成后,在进入interrupt_end之前,根据步骤s3中已记录的中断栈对齐操作,对中断栈进行恢复:若未进行中断栈对齐操作,则直接恢复中断栈;若进行了中断栈对齐操作,则从当前栈中pop一个数据,使得当前栈加4,同时恢复中断栈对齐操作为原始值。
5.一种包括了权利要求1~4之一所述的支持ecos系统的中断栈处理方法的打印方法,其特征在于包括如下步骤:
a.在ecos系统中,进行浮点格式化数据支持;
b.当需要进行双精度浮点打印时,进入中断;
c.采用权利要求1~4之一所述的支持ecos系统的中断栈处理方法进行中断栈处理,完成双精度浮点打印并出中断,从而完成最终的打印。
6.根据权利要求5所述的打印方法啊,其特征在于所述的在ecos系统中,进行浮点格式化数据支持,具体为采用如下步骤进行浮点格式化数据支持:
a.在格式化解析中,增加针对双精度浮点格式“%f”的分支;
b.在“%f”分支中,解析所需打印精度,包括小数点前和小数点后;
c.在执行栈中取出待打印double数据,并按照ieee754标准进行解析;
d.按照ecos系统在线程中打印双精度浮点的方式进行四舍五入,并保持跟线程中打印处理相同;
e.得到最终的格式化后字符串,准备打印。
7.一种接收机,其特征在于包括了权利要求1~4之一所述的支持ecos系统的中断栈处理方法和和权利要求5或6所述的打印方法。