System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种汽车控制器代码自动生成方法和系统技术方案_技高网

一种汽车控制器代码自动生成方法和系统技术方案

技术编号:40405779 阅读:7 留言:0更新日期:2024-02-20 22:28
本发明专利技术揭示了一种汽车控制器代码自动生成方法:1)在配置文件中输入计划生成代码的所处任务位置;2)定义计划生成代码的事件名,以及事件处理函数3)OS抽象层生成功能逻辑;4)代码生成工具根据功能逻辑生成的代码部分;5)代码生成工具根据配置文件,将应用程序中要执行的函数放到OS抽象层创建的任务要遍历的事件处理函数数组中,生成定义的事件和资源树接口。本发明专利技术的优点在于利用OS抽象层实现了系统任务创建,约定了软件平台调度框架,Deva Too l可以根据app应用场景自动将要在各个任务中运行的函数自动放入对应的内容中。定义事件和定时器同样可以生成相关接口,简单易用。

【技术实现步骤摘要】

本专利技术涉及人工智能领域,尤其涉及代码自动生成技术。


技术介绍

1、汽车控制器软件开发过程中,系统实时性是一个经常要被重点讨论的话题,只有系统满足实时性,当外部有新的输入时,处理器才能立刻去处理。当控制器功能单一,处理工作少时,我们可以用裸机加中断的方式去开发程序,似乎这样也能满足系统需求。

2、不过,随着汽车控制器功能的增加,裸机加中断的方式去开发变得越来越困难,这时候需要用到嵌入式实时操作系统rtos来保证系统实时性。

3、在使用rtos管理系统时,使用者需要去掌握rtos的用法,比如,如何去创建任务,如何使用事件标志组,如果去使用信号量等,很难要求团队的所有开发成员都能掌握这些。即便大家知道如何去使用,但每个人为了去满足自己负责的功能模块各自为战,去创建不同的操作系统task,定义不同的事件标志组,又很容易造成系统开销过大,反而降低了系统的鲁棒性。

4、目前缺乏一种能够自动生成代码,降低操作难度的汽车控制器代码自动生成方法和系统


技术实现思路

1、本专利技术所要解决的技术问题是实现一种能够根据需求自动生成代码的方法和系统。

2、为了实现上述目的,本专利技术采用的技术方案为:一种汽车控制器代码自动生成方法:

3、1)在配置文件中输入计划生成代码的所处任务位置;

4、2)定义计划生成代码的事件名,以及事件处理函数

5、3)os抽象层生成功能逻辑;

6、4)代码生成工具根据功能逻辑生成的代码部分;

7、5)代码生成工具根据配置文件,将应用程序中要执行的函数放到os抽象层创建的任务要遍历的事件处理函数数组中,生成定义的事件和资源树接口。

8、所述代码生成工具解析工程里所有配置文件,自动生成工程os抽象层运行起来要用到的代码;

9、所述配置文件包括dssp.sdi文件和xxx.sdh文件(xxx泛指,表示可以取任意名称,但文件后缀必须是sdh);

10、所述dssp.sdi文件用于配置了系统中要创建的任务,定义资源树,以及各个资源间的依赖关系;

11、所述代码生成工具根据配置文件dssp.sdi对任务的描述,在生成的代码中创建了相应的任务;

12、所述xxx.sdh文件用于配置所编写的某个函数要放到系统创建的哪个任务中去运行、定义容器和要放到对应容器中运行的函数、定义一些事件和绑定事件发送时的事件处理函数;

13、所述代码生成工具解析xxx.sdh文件,将所有配置文件中设置的一些要在某个周期任务中运行的函数,放到对应的函数中调用,然后再将对应的函数放到周期任务运行查找的函数表中。这里有哪些周期任务可用,必须在上述的dssp.sdi文件中定义清楚;

14、当更改任意一个xxx.sdh文件的配置文件时,代码生成工具根据配置文件重新生成相关代码到对应目录,同时生成代码在工程中的路径可以在dssp.sdi配置文件中指定。

15、所述抽象层根据功能包括cshd模块,所述cshd模块用于了管理资源树的相关代码,对外提供了资源请求和释放函数;

16、所述cshd模块预选划分多种状态,若当前符合某种运行条件时,则请求on相应资源,资源树在dssp.sdi文件中被定义,使用代码生成工具生成代码时会优先解析该文件,生成描述资源表,以及请求资源的枚举值;

17、资源分为同步资源和异步资源,所述异步资源为type关键字后紧接着的external描述的资源,所述同步资源为type关键字后无external描述的资源;

18、所述同步资源的require关键字后紧跟着所请求on相应资源;

19、所述异步资源设有请求on相应资源的超时时间,若超时时间内没有得到相应资源的反馈,则系统进入异常处理。

20、所述抽象层根据功能包括cam模块,所述cam模块用于在周期任务内调用处理分发的函数,该函数根据传入的任务id到对应的数组中去查找相关的执行函数,之后判断当前资源是否满足该函数运行依赖的资源,如果满足则执行该函数。

21、所述抽象层根据功能包括cont模块,所述cont模块用于实现容器的相关代码,所述容器可由实际需要在xxx.sdh中任意定义,可以将编写的任意功能函数放到已经定义的某个容器中,放到容器中的函数,在满足定义的容器运行的时间内,被一起调用起来。生成工具自动根据配置文件中描述要执行的函数作为子函数放入主函数中,最后再生成一个数组,数组某一项存放一个容器函数地址,cont中实现了接口函数可以去根据枚举值,去数组中找到该函数进行调用。

22、所述抽象层根据功能包括os模块,所述os模块与rtos相关联,用于实现系统中任务创建的创建和系统用到的os接口,在配置文件中指定需创建的任务,之后在生成的配置代码中生成一个数组,该数组中描述任务栈大小,任务入口函数,os部分提供了函数去解析这个数组,然后调用rtos接口来创建对应任务,以及事件标志组和信号量的接口。

23、所述抽象层根据功能包括evhd模块,所述evhd模块用于抽象的事件相关内容,event表示事件,当产生一个事件时,相关的事件处理函数会被调用,event使用到了操作系统中提供的事件机制,在操作系统的事件标志组机制进行了封装。

24、所述抽象层根据功能包括timer模块,所述timer模块用于抽象定时器的相关内容,在配置文件中定义定时器,然后指定定时器处理函数。

25、一种汽车控制器代码自动生成系统,包括代码生成模块和os抽象层,所述os抽象层封装在rtos管理系统之上,所述os抽象层用于实现核心功能逻辑,所述代码生成模块用于生成的代码内容。

26、本专利技术的优点在于利用os抽象层实现了系统任务创建,约定了软件平台调度框架,deva tool可以根据app应用场景自动将要在各个任务中运行的函数自动放入对应的内容中。定义事件和定时器同样可以生成相关接口,简单易用。

27、并且本方法和系统使用资源树的概念,低cpu资源开销,可以在资源有限的mcu平台运行。将低硬件与软件模块的耦合,高复用性,更加符合现代软件工程化开发思想,使得开发应用程序的人能够专心开发应用程序,不需要对系统调用有很深的了解,很容易去上手使用。

本文档来自技高网...

【技术保护点】

1.一种汽车控制器代码自动生成方法,其特征在于:

2.根据权利要求1所述的汽车控制器代码自动生成方法,其特征在于:所述代码生成工具解析工程里所有配置文件,自动生成工程OS抽象层运行起来要用到的代码;

3.根据权利要求2所述的汽车控制器代码自动生成方法,其特征在于:当更改任意一个xxx.sdh文件的配置文件时,代码生成工具根据配置文件重新生成相关代码到对应目录,同时生成代码到工程中的路径可以在dssp.sdi配置文件中指定。

4.根据权利要求1、2或3所述的汽车控制器代码自动生成方法,其特征在于:所述抽象层根据功能包括cshd模块,所述cshd模块用于了管理资源树的相关代码,对外提供了资源请求和释放函数;

5.根据权利要求4所述的汽车控制器代码自动生成方法,其特征在于:所述抽象层根据功能包括cam模块,所述cam模块用于在周期任务内调用处理分发的函数,该函数根据传入的任务ID到对应的数组中去查找相关的执行函数,之后判断当前资源是否满足该函数运行依赖的资源,如果满足则执行该函数。

6.根据权利要求5所述的汽车控制器代码自动生成方法,其特征在于:所述抽象层根据功能包括cont模块,所述cont模块用于实现容器的相关代码,所述容器可由实际需要在xxx.sdh中任意定义,可以将编写的任意功能函数放到已经定义的某个容器中,放到容器中的函数,在满足定义的容器运行的时间内,被一起调用起来;

7.根据权利要求6所述的汽车控制器代码自动生成方法,其特征在于:所述抽象层根据功能包括os模块,所述os模块与rtos相关联,用于实现系统中任务创建的创建和系统用到的OS接口,在配置文件中指定需创建的任务,之后在生成的配置代码中生成一个数组,该数组中描述任务栈大小,任务入口函数,os部分提供了函数去解析这个数组,然后调用rtos接口来创建对应任务,以及事件标志组和信号量的接口。

8.根据权利要求7所述的汽车控制器代码自动生成方法,其特征在于:所述抽象层根据功能包括evhd模块,所述evhd模块用于抽象的事件相关内容,event表示事件,当产生一个事件时,相关的事件处理函数会被调用,event使用到了操作系统中提供的事件机制,在操作系统的事件标志组机制进行了封装。

9.根据权利要求8所述的汽车控制器代码自动生成方法,其特征在于:所述抽象层根据功能包括timer模块,所述timer模块用于抽象定时器的相关内容,在配置文件中定义定时器,然后指定定时器处理函数。

10.一种汽车控制器代码自动生成系统,其特征在于:包括代码生成模块和OS抽象层,所述OS抽象层封装在RTOS管理系统之上,所述OS抽象层用于实现核心功能逻辑,所述代码生成模块用于生成的代码内容。

...

【技术特征摘要】

1.一种汽车控制器代码自动生成方法,其特征在于:

2.根据权利要求1所述的汽车控制器代码自动生成方法,其特征在于:所述代码生成工具解析工程里所有配置文件,自动生成工程os抽象层运行起来要用到的代码;

3.根据权利要求2所述的汽车控制器代码自动生成方法,其特征在于:当更改任意一个xxx.sdh文件的配置文件时,代码生成工具根据配置文件重新生成相关代码到对应目录,同时生成代码到工程中的路径可以在dssp.sdi配置文件中指定。

4.根据权利要求1、2或3所述的汽车控制器代码自动生成方法,其特征在于:所述抽象层根据功能包括cshd模块,所述cshd模块用于了管理资源树的相关代码,对外提供了资源请求和释放函数;

5.根据权利要求4所述的汽车控制器代码自动生成方法,其特征在于:所述抽象层根据功能包括cam模块,所述cam模块用于在周期任务内调用处理分发的函数,该函数根据传入的任务id到对应的数组中去查找相关的执行函数,之后判断当前资源是否满足该函数运行依赖的资源,如果满足则执行该函数。

6.根据权利要求5所述的汽车控制器代码自动生成方法,其特征在于:所述抽象层根据功能包括cont模块,所述cont模块用于实现容器的相关代码,所述容器可由实际需要在xxx.sdh中任意定义,可以将编写的任意功能函数放到已经定义的某个容...

【专利技术属性】
技术研发人员:胡长水艾余龙汪慧李洋刘转
申请(专利权)人:伯泰克汽车电子芜湖有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1