[发明专利]提高AUTOSAR OS MCAL驱动代码可移植性的方法有效
申请号: | 201210065046.2 | 申请日: | 2012-03-13 |
公开(公告)号: | CN102681898A | 公开(公告)日: | 2012-09-19 |
发明(设计)人: | 李红;杨国青;刘子阳;金曦;张成硕;姜旭锋;吴朝晖 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 杭州裕阳专利事务所(普通合伙) 33221 | 代理人: | 江助菊 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 提高 autosar os mcal 驱动 代码 移植 方法 | ||
技术领域
本发明涉及嵌入式实时操作系统对多平台的适应性,是一种提高AUTOSAR OS MCAL驱动代码的可移植性的技术方法。
背景技术
AUTOSAR(AUTomotive Open System Architecture)是一个标准化的开放式汽车软件架构。AUTOSAR OS是符合AUTOSAR标准的嵌入式实时操作系统,是一个静态配置的多任务单处理器的RTOS。本发明所参照的AUTOSAR标准为3.0.1版本,并且实现在由浙江大学自主研发的符合AUTOSAR标准的OS——SmartOSEK OS上。
移植驱动代码是移植AUTOSAR所必须的工作,其工作量很大,且在不同硬件平台上很多工作都是重复的。MCAL驱动代码是与电控单元是电子控制单元(ECU)硬件相关的,AUTOSAR中规定的标准函数接口功能上是确定的,传统的MCAL驱动通常将所有代码放在一个文件中实现,代码可重用性极弱,不同ECU硬件下驱动模块的移植过程复杂,工作量大。但是这些函数的功能未必是完全ECU相关的,整个函数功能完成过程中可能只有部分代码需要访问寄存器,在现在的MCAL驱动代码中,还存在如下问题:由于驱动代码通常作为一个整体实现,代码的可重用性弱,可移植性差,不同ECU硬件下驱动模块的移植过程复杂,工作量大,模块开发周期长。
发明内容
针对上述技术问题,本发明借鉴AUTOSAR的分层架构可以对驱动代码进一步抽象,提出提高AUTOSAR OS MCAL驱动代码的可移植性的技术方法,将硬件相关的代码用函数来实现,其他软件控制的流程对不同的ECU来说是可以 重用的,将驱动代码进一步抽象,增强其硬件多平台的适应性,大大缩短模块的开发周期。
为了解决上述技术问题,本发明的技术方案如下:
提高AUTOSAR OS MCAL驱动代码可移植性的方法,包括如下步骤:
1)将AUTOSAR OS MCAL驱动代码结构分成Module.c和Module_Hw.c两层;所述Module.c实现符合AUTOSAR标准规定的Module_Function函数,其内部进行符合AUTOSAR标准规定的错误检查以及一些全局变量的维护,并负责调用Module_Hw.c代码层;所述Module_Hw.c实现被Module.c调用的特定接口函数,该层主要负责针对具体硬件平台的MCAL模块实现,对状态寄存器进行设置或读取,以及对具体硬件寄存器进行设置或读取;
2)将所述驱动代码应用于ECU硬件中,判断所述ECU硬件是否支持该驱动代码所实现的功能,如果支持该功能,则设置寄存器的值或读取寄存器的值,并对寄存器的上述操作进行封装。
进一步的,用与寄存器关联的宏来定义寄存器的地址值。
进一步的,寄存器的地址值可以按照ECU硬件中定义的地址结构依次定义。
进一步的,用与功能相关的宏定义来指定寄存器需要设置的工作模式的数值,其位数可以设置为寄存器位数相同,然后通过掩码来获取所需部分,也可以设置为寄存器中控制模式的位数相等。
进一步的,对寄存器的操作可以封装成宏定义。
本发明的有益的效果为:
1.对驱动代码与硬件相关的部分进行抽象,使代码清晰度更高
2.通过对驱动代码抽象,可根据ECU硬件是否支持该功能来决定是否实 现。
3.增强了驱动代码的可移植性,减少移植工作量,缩短开发周期。
4.通过对寄存器操作进行封装,保持了可扩展性,方便错误检查。
附图说明
图1是应用本发明的驱动代码文件结构;
图2是以ICU模块为例,引入本发明前AUTOSAR标准的文件结构图;
图3是以ICU模块为例,引入本发明后的文件结构图;
图4是以ICU模块为例,Icu_Init函数的流程图。
具体实施方式
下面将结合附图和具体实施例对本发明做进一步的说明。
传统AUTOSAR OS MCAL驱动通常将所有代码都放在一个文件中实现,符合AUTOSAR标准规定的接口函数命名为Module_Function。
将原来的AUTOSAR OS MCAL驱动代码结构分成Module.c和Module_Hw.c两层。Module.c主要负责实现与AUTOSAR标准接口相关,Module_Hw.c主要负责实现与具体硬件平台相关。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210065046.2/2.html,转载请声明来源钻瓜专利网。