一种车载信息系统开发平台功能模块的移植方法与流程

文档序号:12363062阅读:692来源:国知局

本发明涉及计算机技术领域,特别是涉及一种车载信息系统开发平台功能模块的移植方法。



背景技术:

目前,车载信息系统已经逐渐成为汽车的标配部件,给人们的汽车生活带来了便利。随着开发车载信息系统的厂家越来越多,竞争也日趋激烈,不但成本成为各厂商的竞争焦点,开发速度也成为关系一款产品成败的重要因素,尽可能缩短产品的研发周期,争取产品尽快上市是各厂商致胜的利器。

当前车载信息系统有多种开发平台,例如MTK联发科开发平台、Sunplus凌阳开发平台,等等。通常,车载信息系统技术人员会选择某种开发平台进行相关工程项目的开发,从而实现软硬件上的特定功能。

Sunplus 8288t车载信息系统开发平台(以下简称Sunplus平台)是基于C语言的开发平台,可以实现多种功能的研发,是目前在车载信息系统研发领域应用比较广泛的一种开发平台。

然而,发明人在研究中发现,Sunplus平台的C语言函数库与基于ANSI/ISO C语言的标准库函数存在差异,例如存储或者实现方式不同,或者同名函数实现不同的功能,此外Sunplus平台并不含有C++语言标准库,由此将其它平台基于C/C++语言已经开发好的功能模块(软件项目工程中实现某一功能的程序代码或含有代码的文件)移植到Sunplus平台上存在多种问题,例如不能编译,或者即使能够编译也可能不会实现预定的功能。传统技术通常的选择,都是在Sunplus平台上重新开发实现某功能的功能模块,这样会导致研发周期长,影响了产品的上市时间。

因此,现有技术有待进一步改进。



技术实现要素:

本发明提供一种车载信息系统开发平台功能模块的移植方法,旨在解决现有技术中的缺陷,可以将其它平台上已经开发好的C/C++功能模块移植到sunplus平台新开发的项目工程中,达到缩短开发周期的目的。

为达到上述目的,本发明所采取的技术方案为:

一种车载信息系统开发平台功能模块的移植方法,包括:

将功能模块单独存放在第一文件夹中,对所述第一文件夹进行处理得到对应的第一静态库文件;

将所述第一静态库文件添加到Sunplus平台新开发的项目工程中的编译链接中;

为Sunplus平台新增C标准库,并对Sunplus平台支持的C函数库与C标准库中相冲突的函数进行处理;

为Sunplus平台新增C++标准库。

具体地,所述对所述第一文件夹进行处理得到对应的第一静态库文件的步骤,包括:利用Sunplus平台的GCCL2编译器对文件夹进行编译,得到对应的第一静态库文件。

具体地,所述对Sunplus平台支持的C函数库与C标准库中相冲突的函数进行处理的步骤包括:根据开发需求,保留Sunplus平台支持的C函数库与所述C标准库中同名函数中的一个。

进一步地,所述为Sunplus平台新增C++标准库的步骤之后还包括:在内存分配文件的对应的功能区域中为需要增加的功能模块分配各自所在的档案库中应链接的地址。

进一步地,所述为Sunplus平台新增C++标准库的步骤之后还包括:设置接口函数和回调函数以传递数据。

本发明的有益效果在于:上述车载信息系统开发平台功能模块的移植方法,将需要移植的功能模块进行处理得到对应的静态库,并添加到Sunplus新开发的项目工程中,并为该项目工程新增C标准库和C++标准库,以及Sunplus平台的C函数库与C标准库中相冲突的函数进行处理,从而实现基于C/C++实现的功能模块移植到Sunplus开发平台中,避免了二次重复开发,提升了研发效率。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例:一种车载信息系统开发平台功能模块的移植方法。其中所述的开发平台是指Sunplus 8288t车载信息系统开发平台(简称Sunplus平台)。功能模块是指基于C/C++语言开发的程序模块。本实施例中的方法,包括:

S101.将功能模块单独存放在第一文件夹中,对所述第一文件夹进行处理得到对应的第一静态库文件。

在具体实施时,利用Sunplus平台开发的一个新项目工程中,如果其中部分功能模块已经通过C/C++语言开发实现,可以将所述功能模块单独存放在第一文件夹中,然后通过修改makefile,利用Sunplus平台的GCCL2编译器对文件夹进行编译,得到对应的第一静态库文件(*.a格式)。

makefile文件描述了整个工程的编译、连接等规则,其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建哪些库文件以及如何创建这些库文件、如何最后产生想要的可执行文件。

本步骤将功能模块单独设为文件夹,并对整个文件夹进行编译,方便管理和维护,利于在项目工程中移植使用,并且具有保密的效果。

S102.将所述第一静态库文件添加到Sunplus平台新开发的项目工程中的编译链接中。

在具体实施时,将*.a格式的第一静态库文件存放在Sunplus平台中的库目录下,并利用脚本指令进行设置。以添加btlink.a文件为例,将该静态库文件添加到编译链接中,可以使用指令“INPUT(-lbtlink)”。

S103.为Sunplus平台新增C标准库,并对Sunplus平台支持的C函数库与C标准库中相冲突的函数进行处理。

在具体实施时,与添加静态库文件类似,可以利用脚本指令“INPUT(-lc)”添加C标准库。

具体地,所述对Sunplus平台支持的C函数库与C标准库中相冲突的函数进行处理的步骤包括:根据开发需求,保留Sunplus平台支持的C函数库与所述C标准库中同名函数中的一个。

例如,当需要保留C标准库中的函数时,可以在编译环境中,打开cmd对话框,先解压Sunplus平台中的函数(*.o格式),并将其中与C标准库中的同名函数删除。

S104.为Sunplus平台新增C++标准库。

在具体实施时,C++标准库为libstdc++.a,添加该库的脚本指令写法为“INPUT(-l stdc++)”。由于Sunplus平台本身不含C++标准库,不会产生函数冲突的问题,无需对新添加的函数库进行处理。

在本发明的另一个实施例中,所述步骤S104之后还包括:

S105.在内存分配文件的对应的功能区域中为需要增加的功能模块分配各自所在的档案库中应链接的地址。

在Sunplus平台上,GCC编译经过预处理(Pre-Processing)、编译(Compling)、汇编(Assembling)、链接(Linking)这几个步骤。

作为C++静态库文件,链接(Linking)前需要进行预编译,GCC将内存分配文件(例如dvdL_128m.ldp)预处理生成链接脚本(*.ld),然后按照链接脚本规则需要增加的功能模块分配各自所在的档案库中应链接的地址。

通过增加上述步骤,即可去掉编译过程中的警告信息,提高编译效率。

在本发明的又一个实施例中,所述步骤S105之后还包括:

S106.设置接口函数和回调函数以传递数据。

上述实施例中的车载信息系统开发平台功能模块的移植方法,将需要移植的功能模块进行处理得到对应的静态库,并添加到Sunplus新开发的项目工程中,并为该项目工程新增C标准库和C++标准库,以及Sunplus平台的C函数库与C标准库中相冲突的函数进行处理,从而实现基于C/C++实现的功能模块移植到Sunplus开发平台中,避免了二次重复开发,提升了研发效率。

以上所揭露的仅为本发明的较佳实施例,不能以此来限定本发明的权利保护范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1