CN109522046A - 一种适配多硬件平台的嵌入式软件开发模型 - Google Patents

一种适配多硬件平台的嵌入式软件开发模型 Download PDF

Info

Publication number
CN109522046A
CN109522046A CN201811346497.7A CN201811346497A CN109522046A CN 109522046 A CN109522046 A CN 109522046A CN 201811346497 A CN201811346497 A CN 201811346497A CN 109522046 A CN109522046 A CN 109522046A
Authority
CN
China
Prior art keywords
task
data
embedded software
hardware platforms
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811346497.7A
Other languages
English (en)
Inventor
洪伟
刘搏
曾庆吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Helicopter Research and Development Institute
Original Assignee
China Helicopter Research and Development Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Helicopter Research and Development Institute filed Critical China Helicopter Research and Development Institute
Priority to CN201811346497.7A priority Critical patent/CN109522046A/zh
Publication of CN109522046A publication Critical patent/CN109522046A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请属于嵌入式软件开发领域,特别涉及一种适配多硬件平台的嵌入式软件开发模型。该模型包括:任务调度器、任务配置单元、通用接口处理函数以及数据缓冲队列。所述任务调度器用于调度用户任务;所述任务配置单元用于配置用户任务;所述通用接口处理函数用于根据用户任务的接口类型调用硬件的外接口,并采集外接口数据和/或向外接口发送数据;所述数据缓冲队列用于缓存通用接口处理函数采集的外接口数据和/或向外接口发送的数据。本申请的适配多硬件平台的嵌入式软件开发模型,统一了嵌入式软件编程方式,提高了软件的通用化以及复用率,极大减轻了资源、人力、经费浪费的问题,降低了软件开发人员的门槛。

Description

一种适配多硬件平台的嵌入式软件开发模型
技术领域
本申请属于嵌入式软件开发领域,特别涉及一种适配多硬件平台的嵌入式软件开发模型。
背景技术
机载嵌入式软件广泛用于航电、飞控、机电领域,随着集成化、信息化程度增加,嵌入式软件规模逐年递增,设计难度及复杂度逐步提升。
当前嵌入式软件开发领域,受制于不同的硬件平台(处理器类型,内存等)及各类硬件产品提供商的设计思路影响,每当硬件平台更新或更换硬件产品提供商,嵌入式软件需随之重新开发;当某一产品有多个竞争的硬件承制单位时,嵌入式软件需根据各厂家的硬件设计方案重复开发多个软件版本实现相同的软件功能,带来了重复的软件开发、软件测试及后续保障工作,造成大量的人力、经费资源浪费。
因此,希望有一种技术方案来克服或至少减轻现有技术的至少一个上述缺陷。
发明内容
本申请的目的是提供了一种适配多硬件平台的嵌入式软件开发模型,以解决现有技术存在的至少一个问题。
本申请的技术方案是:
一种适配多硬件平台的嵌入式软件开发模型,包括:
任务配置单元,用于配置用户任务;
任务调度单元,用于调度所述用户任务;
通用接口处理单元,用于根据所述用户任务的接口类型调用硬件的外接口,采集外接口数据和/或向外接口发送数据。
可选地,还包括数据缓冲队列,用于缓存所述通用接口处理单元采集的外接口数据和/或向外接口发送的数据。
可选地,所述数据缓冲队列还提供数据入队、数据出队、数据查询的功能。
可选地,通过所述任务配置单元配置用户任务包括:创建任务、启动任务、暂停任务、删除任务。
可选地,所述创建任务包括获取任务类型、任务周期、任务优先级以及存放任务ID。
可选地,所述启动任务、所述暂停任务、以及所述删除任务包括获取任务ID以及任务状态,所述任务状态包括起动、暂停和删除。
可选地,通过所述任务调度单元调度所述用户任务包括:
配置CPU辅助时钟的触发时间;
利用CPU辅助时钟周期调度一个任务调度器函数;
通过所述任务调度器函数定时调度所述用户任务。
可选地,所述任务调度单元还用于对超出任务周期、任务资源使用率的任务进行可配置处理,所述可配置处理包括:关闭任务、重启任务、更改任务资源、以及将任务放置于任务队列最后。
可选地,所述通用接口处理单元为IO_Ctl函数,所述IO_Ctl函数包括4个输入参数,分别是接口类型、接口通道号或子地址号、数据首地址、以及数据长度。
可选地,所述硬件的外接口包括离散量接口、模拟量接口、GJB289A接口、RS422接口、1394接口、CAN接口、以及硬件FLASH接口。
本申请至少存在以下有益技术效果:
本申请的适配多硬件平台的嵌入式软件开发模型,不受硬件平台、硬件提供商变更的影响,实现产品预定功能,大幅度提高嵌入式软件的复用率,降低嵌入式软件开发过程中的人力、经费开销。
附图说明
图1是本申请一个实施方式的适配多硬件平台的嵌入式软件开发模型的结构示意图;
图2是本申请一个实施方式的适配多硬件平台的嵌入式软件开发模型的流程图;
图3是本申请一个实施方式的适配多硬件平台的嵌入式软件开发模型的任务调度单元示意图;
图4是本申请一个实施方式的适配多硬件平台的嵌入式软件开发模型的任务配置单元示意图;
图5是本申请一个实施方式的适配多硬件平台的嵌入式软件开发模型的数据缓存队列示意图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本申请一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本申请的实施例进行详细说明。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请保护范围的限制。
下面结合附图1至图5对本申请做进一步详细说明。
本申请提供了一种适配多硬件平台的嵌入式软件开发模型,包括:任务配置单元、任务调度单元、通用接口处理单元。
具体的,任务配置单元用于配置用户任务;任务调度单元用于调度用户任务;通用接口处理单元用于根据用户任务的接口类型调用硬件的外接口,并采集外接口数据和/或向外接口发送数据。
有利的是,本申请的适配多硬件平台的嵌入式软件开发模型,还可以包括数据缓冲队列,用于缓存通用接口处理单元采集的外接口数据和/或向外接口发送的数据。
有利的是,由于部分高速总线数据量大,通讯周期短,本模型引入数据缓冲队列提供给外接口数据存放。在本申请的一个实施方式中,数据缓冲队列为可配置数据缓冲队列,数据缓冲队列可根据所需外接口动态配置队列数量及队列容量,同时提供队列数据入队、数据出队、数据查询等功能,同时可根据特殊嵌入式软件要求引入其它功能。
任务配置单元是一个通用的API函数,提供给用户创建任务、起动任务、暂停任务、删除任务。
在本申请的一个实施方式中,配置用户任务包括:a、创建任务(TASK_Create(parameterA,parameterB,parameterC,parameterD)),包括4个参数,顺序不分先后;parameterA输入任务类型(单次运行、触发运行、周期运行等);parameterB输入任务周期,当任务为单次运行及周期运行时,该参数输入0;parameterC输入任务优先级;parameterD输入存放任务ID的地址;函数返回成功或失败;b、任务状态控制(TASK_State(parameterA,parameterB)),内含2个参数顺序不分先后;parameterA输入任务ID;parameterB输入任务状态(起动、暂停、删除);
任务调度单元为高精度任务调度器,用于调度用户任务,同时对超出任务周期、任务资源使用率的用户任务进行可配置处理,可完成关闭任务、重启任务、更改任务资源、以及将任务放置于任务队列最后等功能。其中,通过任务调度单元调度用户任务包括:配置CPU辅助时钟的触发时间;利用CPU辅助时钟周期调度一个任务调度器函数;通过任务调度器函数定时调度用户任务。
在本申请的一个实施方式中,通用接口处理单元为IO_Ctl函数,可用于调用硬件全部的外接口,包含离散量、模拟量、GJB289A、RS422、1394、CAN、硬件FLASH等接口,根据用户要求采集外接口数据和/或向外接口发送数据。
本实施例中,该IO_Ctl函数(IO_Ctl(parameterA,parameterB,parameterC,parameterD))包括4个输入参数,顺序不分先后;parameterA输入接口类型(如离散量、模拟量、GJB289A、RS422、1394、CAN、硬件FLASH等);parameterB输入接口通道号或子地址号(如第2路RS422、GJB289A总线子地址7等);parameterC输入数据首地址;parameterD输入数据长度;函数返回成功或失败。通过该通用接口处理函数,可扩展支持流行的绝大部分接口类型。
本申请的适配多硬件平台的嵌入式软件开发模型,通过调用CPU辅助时钟作为中断源创建高精度任务调度器实现嵌入式软件任务的精确调用,通过配置高精度任务调度器可精确控制任务的周期、资源调取情况,可按用户要求配置超时、超资源任务处理措施。
本申请的适配多硬件平台的嵌入式软件开发模型,通过任务配置单元给用户多种可配置的任务执行方式,包含单次运行任务、触发运行任务及周期运行任务,同时可根据用户要求增加执行方式;可根据任务ID配置任务工作状态。
本申请的适配多硬件平台的嵌入式软件开发模型,通过通用接口处理函数将不同外接口数据采集处理方式规范化,极大降低了编程人员对外接口的掌握程度,嵌入式软件编程人员可在不掌握接口编程规范要求情况下方便的调用外接口。
本申请的适配多硬件平台的嵌入式软件开发模型,通过可配置数据缓冲队列,动态配置数据缓冲队列的数量及容量,解决过去数据存放方式多样不统一的问题,通过对队列容量的动态控制,减少硬件资源的滥用情况;同时引入多种实用的队列操作功能供嵌入式软件开发人员使用,降低嵌入式软件开发难度以提升效率。
综上所述,本申请的适配多硬件平台的嵌入式软件开发模型,统一了嵌入式软件编程方式,提高了软件的通用化以及复用率,极大减轻了资源、人力、经费浪费的问题,降低了软件开发人员的门槛。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种适配多硬件平台的嵌入式软件开发模型,其特征在于,包括:
任务配置单元,用于配置用户任务;
任务调度单元,用于调度所述用户任务;
通用接口处理单元,用于根据所述用户任务的接口类型调用硬件的外接口,采集外接口数据和/或向外接口发送数据。
2.根据权利要求1所述的适配多硬件平台的嵌入式软件开发模型,其特征在于,还包括数据缓冲队列,用于缓存所述通用接口处理单元采集的外接口数据和/或向外接口发送的数据。
3.根据权利要求2所述的适配多硬件平台的嵌入式软件开发模型,其特征在于,所述数据缓冲队列还提供数据入队、数据出队、数据查询的功能。
4.根据权利要求1所述的适配多硬件平台的嵌入式软件开发模型,其特征在于,通过所述任务配置单元配置用户任务包括:创建任务、启动任务、暂停任务、删除任务。
5.根据权利要求4所述的适配多硬件平台的嵌入式软件开发模型,其特征在于,所述创建任务包括获取任务类型、任务周期、任务优先级以及存放任务ID。
6.根据权利要求5所述的适配多硬件平台的嵌入式软件开发模型,其特征在于,所述启动任务、所述暂停任务、以及所述删除任务包括获取任务ID以及任务状态,所述任务状态包括起动、暂停和删除。
7.根据权利要求1所述的适配多硬件平台的嵌入式软件开发模型,其特征在于,通过所述任务调度单元调度所述用户任务包括:
配置CPU辅助时钟的触发时间;
利用CPU辅助时钟周期调度一个任务调度器函数;
通过所述任务调度器函数定时调度所述用户任务。
8.根据权利要求7所述的适配多硬件平台的嵌入式软件开发模型,其特征在于,所述任务调度单元还用于对超出任务周期、任务资源使用率的任务进行可配置处理,所述可配置处理包括:关闭任务、重启任务、更改任务资源、以及将任务放置于任务队列最后。
9.根据权利要求1所述的适配多硬件平台的嵌入式软件开发模型,其特征在于,所述通用接口处理单元为IO_Ctl函数,所述IO_Ctl函数包括4个输入参数,分别是接口类型、接口通道号或子地址号、数据首地址、以及数据长度。
10.根据权利要求9所述的适配多硬件平台的嵌入式软件开发模型,其特征在于,所述硬件的外接口包括离散量接口、模拟量接口、GJB289A接口、RS422接口、1394接口、CAN接口、以及硬件FLASH接口。
CN201811346497.7A 2018-11-13 2018-11-13 一种适配多硬件平台的嵌入式软件开发模型 Pending CN109522046A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811346497.7A CN109522046A (zh) 2018-11-13 2018-11-13 一种适配多硬件平台的嵌入式软件开发模型

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811346497.7A CN109522046A (zh) 2018-11-13 2018-11-13 一种适配多硬件平台的嵌入式软件开发模型

Publications (1)

Publication Number Publication Date
CN109522046A true CN109522046A (zh) 2019-03-26

Family

ID=65776177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811346497.7A Pending CN109522046A (zh) 2018-11-13 2018-11-13 一种适配多硬件平台的嵌入式软件开发模型

Country Status (1)

Country Link
CN (1) CN109522046A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797408A (zh) * 2004-12-30 2006-07-05 北京汉王科技有限公司 用于智能交通系统的嵌入式综合信息采集装置
KR20090065232A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 다중플랫폼 기반의 mac프로그램실행장치, mac 기반의센서노드에 최적화된 태스크스케줄링장치 및 방법
CN101706737A (zh) * 2009-12-18 2010-05-12 湖南大学 软硬件协同函数库的构造方法
CN104331281A (zh) * 2014-10-27 2015-02-04 中国电子科技集团公司第四十一研究所 一种为lxi模块提供远程控制功能的代理服务系统及方法
CN105893157A (zh) * 2016-04-29 2016-08-24 国家计算机网络与信息安全管理中心 一种开放分布式系统资源管理与任务调度系统与方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797408A (zh) * 2004-12-30 2006-07-05 北京汉王科技有限公司 用于智能交通系统的嵌入式综合信息采集装置
KR20090065232A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 다중플랫폼 기반의 mac프로그램실행장치, mac 기반의센서노드에 최적화된 태스크스케줄링장치 및 방법
CN101706737A (zh) * 2009-12-18 2010-05-12 湖南大学 软硬件协同函数库的构造方法
CN104331281A (zh) * 2014-10-27 2015-02-04 中国电子科技集团公司第四十一研究所 一种为lxi模块提供远程控制功能的代理服务系统及方法
CN105893157A (zh) * 2016-04-29 2016-08-24 国家计算机网络与信息安全管理中心 一种开放分布式系统资源管理与任务调度系统与方法

Similar Documents

Publication Publication Date Title
CN106201349B (zh) 一种在物理主机中处理读/写请求的方法和装置
Reusing Comparison of operating systems tinyos and contiki
CN101226487B (zh) 基于嵌入式Linux操作系统的内核级线程库的实现方法
EP1706818B1 (en) A system and method for scheduling the execution of model components using model events
WO2021000758A1 (zh) 机器人资源任务周期管控方法及装置
US20100153957A1 (en) System and method for managing thread use in a thread pool
US20110271268A1 (en) System and method for updating unified extensible firmware interface setting information
US20140344813A1 (en) Scheduling homogeneous and heterogeneous workloads with runtime elasticity in a parallel processing environment
KR102338849B1 (ko) 실시간 운영 체제에서 스택 메모리 관리를 제공하는 방법 및 시스템
WO2016112625A1 (zh) 一种在预设嵌入式系统中实现脚本操作的系统
CN105204933A (zh) 基于单进程的多任务切换执行方法、系统及处理器
US20100088704A1 (en) Meta-scheduler with meta-contexts
Hofmeijer et al. AmbientRT-real time system software support for data centric sensor networks
CN107391274A (zh) 离线消息的处理方法及装置
CN109800061A (zh) 一种嵌入式软件多实例虚拟化技术
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
CN109522046A (zh) 一种适配多硬件平台的嵌入式软件开发模型
CN103309658B (zh) 基于Agent的动态演化系统及方法
CN103324600A (zh) 高效运行计算模块的系统及其运行方法
CN104769553A (zh) 用于支持集群中的工作共享复用的系统和方法
CN103257892A (zh) 一种基于宏组合的多任务调度方法及系统
US8554798B2 (en) Asynchronous state engine with plug-ins for flexible application development
Parikh et al. Performance parameters of RTOSs; comparison of open source RTOSs and benchmarking techniques
CN107577462A (zh) 基于流的界面事件处理系统
CN110262874B (zh) 一种基于java虚拟机的新型物联网多任务操作系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190326