【技术实现步骤摘要】
一种SPARC平台减少中断响应抖动的方法
本专利技术属于嵌入式实时操作系统领域,具体地说,涉及一种SPARC平台减少中断响应抖动的方法。
技术介绍
SPARC是一种开源的RISC处理器架构技术,在国内广泛的应用在航天领域。同时,随着航天任务的复杂化,嵌入式实时操作系统在航天领域的应用也越来越广泛。在嵌入式实时操作系统运行过程中,有两条最重要且执行最频繁的内核路径:任务切换路径和中断处理路径。在这两条路径上有大量对全局变量及全局数据结构进行读写的操作,为保证全局数据的一致性,现有的嵌入式实时操作系统通常采用关中断的方法确保多个任务对共享资源的互斥访问。现有技术存在的主要问题:1、采用关中断方法保护的临界区,通常是由C语言实现的对全局变量及全局数据结构进行读写的操作,这些代码长短不一(如使用GCC3.4.4不做优化,对代码进行编译,对全局变量进行写的临界区有10条汇编指令,队列插入操作的临界区有31条汇编指令,队列删除操作的临界区有25条汇编指令),导致不同临界区执行时间不同。另外临界区的代码强烈依赖编译器,不同编译器或同一编译器的不同配置,都有可能导致临界区代码执行 ...
【技术保护点】
一种SPARC平台减少中断响应抖动的技术,其特征在于:步骤如下:1)、建立SPARC平台原子交换函数;2)、实现内核路径上写全局变量访问操作的中断响应抖动减少技术;3)、全局队列访问操作的中断响应抖动减少技术;4)、全局堆栈访问操作的中断响应抖动减少技术。
【技术特征摘要】
1.一种SPARC平台减少中断响应抖动的方法,其特征在于:步骤如下:1)、建立SPARC平台原子交换函数;2)、减少内核路径上写全局变量访问操作的中断响应抖动;3)、减少全局队列访问操作的中断响应抖动;4)、减少全局堆栈访问操作的中断响应抖动,其中:步骤1)中的建立SPARC平台原子交换函数的算法如下:使用SPARC汇编指令实现了原子交换函数,该函数共由7条指令组成,其原型如下:intatomic_swap(intoldval,int*p_var,intnewval)返回值为int型,变量oldval存储某一全局变量修改前的值,指针p_var指向该全局变量,而变量newval存储将要赋给该全局变量的值,返回0值表示用新值对全局变量原先的值进行了替换,返回非0值,表示未用新值对全局变量原先的值进行替换;所述原子交换函数的算法如下:11)、快速关中断;12)、将oldval和p_var指向的地址处的值相减,将结果填入存放返回值的寄存器,如果为0,则继续执行步骤13),如果不为0,则跳转到步骤14);13)、将newval的值赋给p_var指向的地址;14)、打开中断,函数返回;减少内核路径上写全局变量访问操作的中断响应抖动的函数原型如下:voidwrite_global(int*pglb,intnew)其中变量pglb指向要进行写操作的全局变量的地址,变量new指向将要写入全局变量的值;减少内核路径上写全局变量访问操作的中断响应抖动的算法如下:21)、取出指针pglb指向的全局变量的值,赋给临时变量temp;22)、调用原子交换函数,格式为atomic_swap(temp,pglb,new);23)、如果原子交换函数返回值不为0,则调转到步骤21);如果返回值为0,则函数退出;减少全局队列访问操作的中断响应抖动首先是插入节点操作,其函数原型如下:voidinsert_queue(Node*pnew_node,constint&data,Queue*pqueue)队列是先进先出的数据结构,插入操作总是在队列尾进行,所以第一个参数给出了将要插入节点的指针,第二个参数给出了新节点中存储的数据,第三个参数是队列指针;减少全局队列访问操作的中断响应抖动的算法如下:31)、将新节点数据域赋值为data,指针域赋值为null;32)、...
【专利技术属性】
技术研发人员:卓保特,周启平,吕紫旭,赵英辉,
申请(专利权)人:北京神舟航天软件技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。