[发明专利]一种多工程独立编译方法、系统、终端及介质在审
申请号: | 202011224312.2 | 申请日: | 2020-11-05 |
公开(公告)号: | CN112306540A | 公开(公告)日: | 2021-02-02 |
发明(设计)人: | 吴英;刘根利;翟渊;向毅;刘宇 | 申请(专利权)人: | 重庆科技学院 |
主分类号: | G06F8/658 | 分类号: | G06F8/658;G06F8/41;G06F16/35 |
代理公司: | 北京国坤专利代理事务所(普通合伙) 11491 | 代理人: | 赵红霞 |
地址: | 401331 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 工程 独立 编译 方法 系统 终端 介质 | ||
1.一种多工程独立编译方法,其特征是,包括以下步骤:
源码分解:根据程序分类将完整代码分成多个代码组,为每个代码组创建独立文件夹;
工程创建:根据创建的独立文件夹为每个代码组创建一个工程,并将MCU内的FLASH存储空间分成与每个工程一一对应的存储空间块,并将每个工程编译后的源代码导入对应存储空间块进行存储;
工程关联:根据对应工程没有其它工程中的函数和变量的访问地址创建函数指针结构体,将函数指针结构体成员指向其它工程对应函数和变量的地址;每个工程所有对外接口函数和变量的地址按照顺序存储在每个工程存储空间块的固定位置,通过操作地址变量完成不同工程之间的函数调用和变量访问,以及完成不同工程中源代码的更新升级。
2.根据权利要求1所述的一种多工程独立编译方法,其特征是,所述完整代码可根据驱动程序、操作系统程序、应用功能程序以及其它特殊分类要求进行分类来得到不同的代码组。
3.根据权利要求1所述的一种多工程独立编译方法,其特征是,所述独立文件夹内按照预定规律创建子文件夹,子文件夹存储不同的模块代码。
4.根据权利要求1所述的一种多工程独立编译方法,其特征是,所述FLASH存储空间分成一个固件工程存储空间块以及多个APP工程存储空间块。
5.根据权利要求1所述的一种多工程独立编译方法,其特征是,所述工程创建通过分散加载文件或以ld链接脚本文件结合makefile文件为每个工程分配在编译后的二进制代码在单片机FLASH中的存储起始地址和存储空间大小。
6.根据权利要求1所述的一种多工程独立编译方法,其特征是,所述工程相互调用之前,将FLASH中的RW段拷贝到RAM的RW段运行地址上以及将RAM中的ZI段清零进行重定向。
7.根据权利要求1所述的一种多工程独立编译方法,其特征是,所述工程关联具体为:
每个工程创建对应的对外函数接口,并将对外函数接口的函数地址按4字节对齐,顺序排列存储到FLASH存储空间的固定地址中;
每个工程声明对应的函数指针结构体,函数指针结构体的成员为所需的函数指针,函数结构体指针强制指向其余对应工程存储对外函数接口地址的FLASH的起始地址。
8.一种多工程独立编译系统,其特征是,包括:
源码分解模块,用于根据程序分类将完整代码分成多个代码组,为每个代码组创建独立文件夹;
工程创建模块,用于根据创建的独立文件夹为每个代码组创建一个工程,并将MCU内的FLASH存储空间分成与每个工程一一对应的存储空间块,并将每个工程编译后的源代码导入对应存储空间块进行存储;
工程关联模块,用于根据对应工程没有其它工程中的函数和变量的访问地址创建函数指针结构体,将函数指针结构体成员指向其它工程对应函数和变量的地址;每个工程所有对外接口函数和变量的地址按照顺序存储在每个工程存储空间块的固定位置,通过操作地址变量完成不同工程之间的函数调用和变量访问,以及完成不同工程中源代码的更新升级。
9.一种计算机终端,包含存储器、处理器及存储在存储器并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-7中任意一项所述的一种多工程独立编译方法。
10.一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行可实现如权利要求1-7中任意一项所述的一种多工程独立编译方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆科技学院,未经重庆科技学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011224312.2/1.html,转载请声明来源钻瓜专利网。