嵌入式系统应用开发技术论文_杨恒煜,董克成

嵌入式系统应用开发技术论文_杨恒煜,董克成

陕西烽火实业有限公司 710065

摘要:嵌入式系统将计算机硬件与软件进行有效结合,构成可完成特定功能或任务的计算装置,通常情况下嵌入式系统是系统或大型电子设备的一部分,其工作时需要与外界进行信息交互,在规定的时间约束内自主完成操作任务。嵌入式的软件主要实现相关功能并保证系统具有一定的灵活性,而硬件主要是满足性能需要和安全需要。随着微电子技术的不断成熟,以及计算机技术向非计算机领域的进一步渗透,嵌入式系统得到了社会各界的广发认可,并且其展现出越来越高的市场回报,在嵌入式技术发展的过程中硬件部分的上升幅度正在逐渐缩小,而在嵌入式软件上投入的费用正在大幅增加,相关专家预测在不久的将来嵌入式技术将在计算机领域占到重要的地位。

关键词:嵌入式系统;应用开发;技术分析

一、嵌入式系统概述

嵌入式系统主要是分为操作系统和相应的硬件两部分,嵌入式系统和其他操作系统的一些区别主要是体现在嵌入式系统的运行环境和相应的运用上。本文将主要对嵌入式系统的处理器、微内核结构、任务调度、硬实时和软实时、内核加载方式、内存管理进行简要分析。

嵌入式系统的处理器主要有三种:嵌入式微处理器、嵌入式DSP、嵌入式微控制器。其中微处理器就相当于计算机中的CPU,微处理器主要是配置在主板上以便于达到体积小、低能耗的优越性能;嵌入式DPS主要是对离散的时间信号进行处理计算,从而可以提高编译效率;嵌入式微控制器俗称单片机,是一种集CPU、存储器、外设与一体的集成电路。

嵌入式系统一般都是采用微内核结构,让内核只是提供基本的功能,这样就可以使系统可以更为方便的进行裁减,方便用户更加合理的选配相应的组件。嵌入式系统一般是可以支持多任务的,任务之间通过CPU进行切换和调度,任务根据需要有着各自的优先级,现阶段嵌入式系统对不同的优先级任务进行基于优先级的抢占调度法、对相同优先级的任务进行时间片轮换调度法。

嵌入式系统有专门的实时系统,主要分为硬实时和软实时:硬实时要求系统必须在相应的时间中完成相应的任务,系统必须满足相应的系统响应时间;软实时则只要系统能够尽快的将所有的任务完成,只要所用的时间足够短就好。嵌入式系统的内核可以直接在Flash上进行运行,也可以直接在内存中进行运行,现在很多嵌入式系统采用的是Flash运行,虽然内存运行的速度更快,但是Flash运行更加的便捷。

嵌入式系统的内存管理多数是没有针对MUU的处理器设计的,所以嵌入式系统采用的多是实存储器管理策略,对内存的访问不经过MUU直接进行地执行上输出,这些访问地址都是物理地址,同时很多嵌入式系统缺乏对内存空间的保护。因此作为嵌入式系统的开发人员在进行嵌入式系统的开发时必须要参与到内存的管理中去,要在编译内核时清楚的知道系统的开发板有多少内存,并且由此进行相应的应用程序的编写。

二、嵌入式系统开发技术

针对嵌入式系统开发技术的研究,本文将主要从嵌入式系统的开发过程、嵌入式系统平台移植软件这两个主要的方面进行介绍,其中嵌入式系统平台移植软件是关键的环节又涉及到字节顺序、字节对齐、位段、代码优化等问题。

首先介绍嵌入式系统的开发过程,在嵌入式系统的开发过程中分为宿主机和目标机,宿主机进行编译、链接、定址过程,目标机作为嵌入式系统的硬件平台。在进行开发时,要将程序转化为可以在目标机上进行运行的二进制代码,整个过程分为编译、链接、定址这三个部分:所谓的编译就是用一个平台为另一个平台产生代码,这一过程一般通过交叉编译器完成;链接就是将编译过程中产生的所有的目标文件链接成一个目标文件,定址过程就是将物理存储器地址指定给目标文件的每一个相对偏移处。

期刊文章分类查询,尽在期刊图书馆完成以上部分后还需要对目标机上的应用程序进行调试,只有通过相应的调试才能保证系统能够完整的发挥其想要达到的效果。

嵌入式系统平台移植软件主要是因为多数的嵌入式系统的开发人员都是先在PC机上进行软件的编写,之后将软件进行相应的移植,在进行PC机上软件编程过程中一定要注意软件的可移植性,防止编程完成后无法移植。想要保证软件的可移植性就必须要提到字节顺序、字节对齐、位段、代码优化的问题。其中字节顺序是数据在内存中的排放顺序,一般分为大端字节顺序、小端字节顺序两种,大端字节顺序是高字节排到低地址处、低字节排到高位置处,小端字节顺序与大端字节顺序相反,是将高字节排到高地址处、低字节排到低地址处。嵌入式系统多数都是大端字节顺序的。字节对齐主要是因为嵌入式处理器的寻址方式中占据某字节的数据只能放在该字节整数倍的内存地址中去,这种处理方式使得有时进行编程时结构成员之间产生空洞,导致数据读取错误或无法读取,一般情况下我们运用在GCC的项目管理文件,MakeFile中增加编译选项pack-struck的方式来解决字节对齐问题,有时还在收数据包处增加拆包函数、发数据包处增加组包函数来解决字节对齐问题。位段问题主要是因为位段的空间分配方向因硬件平台而异:部分平台的位段是从右向左分配的、部分平台是从左向右分配的。解决位段问题可以采用条件编译的方式也可以编码两个对等函数解决。代码优化主要是嵌入式系统对代码的质量要求较高,需要注意提高代码效率、减小代码的大小、避免内存泄露。

三、嵌入式应用开发支持研究

嵌入式应用开发的典型形式是利用宿主机进行目标机软件的开发与仿真,并用交叉调试器在监控程序或操作系统的支持下进行实时的分析与调试,最后完成通过特定环境在目标机上运行。

3.1嵌入式应用开发的实时编程

在进行嵌入式实时应用开发的过程中,需要通过编程语言完成对实时嵌入式软件的实现,并且编程语言能够有相应的语言特征或手段支持其实现,或是能够用操作系统来满足实时嵌入式的特殊要求。在进行嵌入式软件开发的过程中需要有一个稳定的编程环境,其中关键问题是实现交叉编译,考虑到我国现阶段的嵌入式发展特点,技术人员可以借鉴国外成熟的技术,并在此基础上改造成适合我国国情的交叉编译和相应开发环境。

3.2嵌入式应用开发的实时内核

在进行嵌入式实时内核设计的过程中需要充分考虑到轮询、协同、中断驱动及前/后台工作等性能需求,能全面管理任务、中断、时间和处理器等操作,并要求可以用高级语言实现功能,设计出的实时内核需要满足紧凑性好、效率高、可移植性强等特点。此外,实时内核的多处理器需要支持包括同构和异构在内的系统,同时其程序需要具有补偿不同处理器之间结构差别的功能,从而实现一个处理器族到另一个处理器族的转换。

3.3嵌入式应用开发的实时数据库

嵌入式实时系统的正确性不仅依赖于设计时的逻辑特性,同时还需要依赖于这些结果的时间特性,因此在进行数据库的选择时可以选择具有并行数据处理的分布式数据库,在满足逻辑一致的同时还需要满足事物处理完成时间的约束及数据访问和更新时间约束等。在进行实时数据库设计的过程中,需要保证在规定时间内处理事物的效率同时还要保持数据库的一致性,就需要在调度算法时同时考虑到嵌入式的硬件资源和数据资源的调度。由于实时数据库与普通数据库存在显著的差异,因此在进行实时数据库设计的过程中不仅需要重新设计调度方法和实物管理,还需要增添通常数据库中不存在的新概念以及对应的新技术。

结束语

嵌入式应用开发与以前从事的开发工作并没有本质上的区别,其主要特点是嵌入式每个硬件平台都是独特的,从而导致了一系列附加的开发复杂性,因此在进行嵌入式应用开发的过程中需要格外进行注意。在嵌入式产品被广泛应用的当下,只要嵌入式开发人员遵循嵌入式产品的开发规律,不断适应市场的需求,就一定能开发出越来越多高效便捷的嵌入式产品。

论文作者:杨恒煜,董克成

论文发表刊物:《基层建设》2018年第21期

论文发表时间:2018/8/20

标签:;  ;  ;  ;  ;  ;  ;  ;  

嵌入式系统应用开发技术论文_杨恒煜,董克成
下载Doc文档

猜你喜欢