一种支持rtos的嵌入式系统建模方法

文档序号:9810293阅读:964来源:国知局
一种支持rtos的嵌入式系统建模方法
【技术领域】
[0001]本发明属于嵌入式系统建模领域,具体涉及一种支持嵌入式实时操作系统RTOS的嵌入式系统软件建模方法。
【背景技术】
[0002]嵌入式系统作为一种完全嵌入受控设备内部,为特定应用而设计的专用计算机系统,广泛应用于社会生活、工业、军事、医疗等各个领域。软件开发是嵌入式系统开发的重要环节,软件开发的质量与硬件的质量一起决定了嵌入式系统的性能。目前在嵌入式系统的软件开发方面,是由程序员在PC机上的开发平台上采用高级程序设计语言及汇编语言,编写代码并进行组织,实现所有的功能模块,然后下载到目标系统进行调试和运行。在这种情况下,由于程序员的水平参差不齐,造成有些嵌入式系统的达不到实时性、可靠性要求,甚至存在较大的缺陷,另外开发效率较低。
[0003]嵌入式实时操作系统RTOS是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供实时响应和高可靠性是RTOS的主要特点。RTOS是经过测试的内核,与一般用户自行编写的主程序内核相比,更规范,效率和可靠性更高。当嵌入式系统进行的处理较复杂时,采用嵌入式操作系统还能帮助程序员提高开发效率,并保证软件性能。目前,一般的程序员缺乏对RTOS的了解,当进行开发的时候大都没有完整阅读RTOS的源代码,对RTOS的事件处理机制等掌握有限,根据一些函数说明资料开发的代码缺陷很大。尤其是大部分的程序员在进行端口的处理时还停留在使用全局变量实现中断服务程序和用户程序的交互,在用户程序中采用大量的查询方式,系统的实时性得不到保证,CPU占用量大,开发的产品的品质难以得到保证。
[0004]嵌入式系统固件库Firmware是由嵌入式系统微控制单元M⑶硬件开发商提供的函数库,这些函数可以完成嵌入式系统的硬件操作。Firmware也是通过操作寄存器等硬件来实现对硬件的操作,但通过它可以更加快速规范的完成应用程序的开发,且使用固件库后程序的可读性更强。
[0005]因此,如果能够有一个规范和方便的建模平台,通过对RT0S、固件库的建模生成刻复用的建模文件,然后由用户对应用程序按一定的要求进行建模,最后生成完整的以RTOS为处理核心的应用程序,将极大提高软件开发的效率和软件性能。
[0006]目前在软件开发领域的建模语言主要是UnifiedModeling Language(UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。但是目前在嵌入式开发领域使用该方法建模存在缺陷和不足,尤其是不利于实现嵌入式系统中重要的中断处理等环节,另外不能自动引用Firmware等,更不能够自动生成支持RTOS的程序架构。
[0007]可扩展标记语言XML(Extensible Markup Language)用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是一种简单的数据存储语言,使用一系列的标记符来描述数据。XML目前不光应用于互联网,其灵活的扩展特性已被应用在各个方面,例如电力系统的配置描述语言SCL就是以XML1.0版本为基础,根据变电站的配置的特殊需求定义的一种电力行业专用标志语言,在语法上遵循XML规则。

【发明内容】

[0008]本发明为解决上述技术问题,提出一种支持RTOS的嵌入式系统建模方法,通过采用XML语言进行建模;并且支持固件库,生成的程序代码精简,结构良好;采用RTOS进行任务管理、调度和通信,支持信号量、消息等机制,支持释放CPU资源的策略,同时保证了系统的实时性。
[0009]本发明的技术方案为:一种支持RTOS的嵌入式系统建模方法,包括:
[0010]S1:采用XML语言对固件库、RTOS以及应用程序进行建模,得到固件库模型文件、RTOS模型文件及应用程序模型文件;
[0011]所述应用程序模型文件包含:资源节点、任务节点、事件节点、数据节点以及过程节点;
[0012]所述资源节点包含若干资源,所述资源的属性至少包括:资源ID、资源名称、资源类型、读写属性、资源共享属性、是否中断、中断服务程序名称;
[0013]所述任务节点包含若干任务,所述任务的属性至少包括:任务访问的数据、任务访问的资源、任务访问的过程;
[0014]所述事件节点包含若干事件,所述事件的属性至少包括:事件ID、事件名称、事件类型、消息指针、消息长度、信号量指针、互斥信号量指针;
[0015]所述数据节点包含若干数据,所述数据的属性至少包括:数据ID、数据名称、数据类型、数据长度、数据结构;
[0016]所述过程节点包含若干过程,所述过程的属性至少包括:过程ID、过程名称、返回类型、参数、读数据ID、写数据ID;
[0017]S2:将固件库模型文件、RTOS模型文件及应用程序模型文件以多叉树结构存储到内存中,得到固件库树、RTOS树及应用程序树;
[0018]S3:根据固件库树和RTOS树,生成一个支持固件库和RTOS的应用程序框架;
[0019]S4:在由步骤S3生成的应用程序框架下,根据应用程序树,采用广度优先搜索算法遍历各个任务节点下的每一个任务,根据任务的各属性,经循环构建得到嵌入式系统应用程序。
[0020]进一步地,所述步骤S4具体包括以下分步骤:
[0021]S41:采用广度优先搜索算法遍历应用程序多叉树的任务节点,判断是否存在未处理任务,是则转至步骤S42,否则结束;
[0022]S42:遍历任务的所有属性,判断是否存在未处理属性,是则转至步骤S43,否则转至步骤S41 ;
[0023]S43:当任务的属性类型为普通时,根据任务的属性设置任务堆栈、构建任务创建函数、任务延时函数以及任务等待事件函数,并转至步骤S42;
[0024]当任务的属性类型为数据时,在应用程序模型文件的根节点下的数据节点下递归地搜索该数据,根据数据的属性创建数据,并转至步骤S42;
[0025]当任务的属性类型为过程时,在应用程序模型文件的根节点下的过程节点下递归地搜索该过程,根据该过程的属性创建过程,并转至步骤S42;
[0026]当任务的属性类型为资源时,在应用程序模型文件的根节点下的资源节点下递归地搜索该资源,根据该资源的属性创建资源,并转至步骤S44;
[0027]S44:递归地遍历资源节点下的所有事件,根据事件的属性创建生成事件创建代码及相应的事件处理代码以及终端服务程序,然后转至步骤S42。
[0028]本发明的有益效果:本发明的一种支持RTOS的嵌入式系统建模方法,具有以下优占.V.
[0029]1、采用基于对象的建模方法,通过XML语言实现对嵌入式系统的固件库、嵌入式实时操作系统RT0S、应用程序的建模,其中通过本发明方法建模完成的固件库模型文件和RTOS模型文件可重用;
[0030]2、在对应用程序的建模中,将应用程序分割为资源、任务、事件、数据及过程等5种对象进行建模,本领域技术人员使用这种分割方法可规范的对应用进行分割,快速构建应用程序模型;
[0031]3、在编译中,采用了多叉树的数据结构在内存中存储模型数据,采用广度优先搜索算法遍历整个应用程序树。通过对模型文件的编译,获得结构合理、满足系统实时性要求的嵌入式系统工程及源代码。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1