有一阵子没有跟进汽车电子软件开发了,许久前参与一个项目,本人负责其中软件的设计,算是对此有一定了解,在此总结一下自己的认识。

汽车电子开发中软件内容大致包括三大类:(1)BSP开发,主要针对常见ECU开发平台编写板级支持包,例如Freescale的MPC5xx系列,Microchip的PIC单片机等。(2)操作系统,常见的有OSEK/VDX,例如Vector公司的osCAN,ETAS的RTA-OSEK等,参考[1]。(3)汽车电子应用软件,根据ECU的功能设计实现具体控制任务,此外应用软件还提供一些服务,针对大型的软件如多媒体服务、车载系统诊断、ACC等智能控制系统等。

在之前的设计中一般遵循V字流程,三类软件设计开发有顺序也有迭代。由于汽车电子开发的特殊性,决定了其软件在实时性、安全可靠性、分布式等方面要求较高,所以有了程序分析与验证等特殊要求。

1、OSEK/VDX操作系统:

1993年左右针对汽车电子嵌入式系统的一些特性,几个汽车产商推出了OSEk/VDX规范,包括OSEK/VDX操作系统规范、OIL规范、COM通讯规范等。这种静态的支持定制的强实时操作系统,与汽车电子应用紧密结合,在任务编写等方面较常见RTOS特殊。此外,最核心的还是其总线协议规范(如果没有总线协议部分,汽车电子软件开发应该是更加开放、并且没有门槛的)。

2、AutoSAR规范:

随着汽车电子开发厂家增加,软件的兼容性更加重要,于是推出了AutoSAR,将操作系统等规范为服务,并且通过RTE进行接口的统一封装。这样,各厂家、特别是广大的第三方软件就可以复用,降低了开发周期与开发成本,有利于整个汽车电子产业。

在AutoSAR中并没有被特别指定操作系统为OSEK/VDX,但绝大部分传统的汽车电子软件还是基于OSEKVDX,运行在低速的ECU上。在可以预见的未来,随着ECU成本降低和其他软件的成熟,可能将QNX或者vxworks、甚至Linux也未尝没有机会。

3、IDE开发环境:

社区已经出现了较多版本的开源操作系统,符合OSEK/VDX或AutoSAR规范,其开发难度也随着降低,此外还有一些商用的RTOS可以采用。所以,操作系统的设计关注程度降低。

但是如汽车电子等对实时性、安全可靠性有强要求的软件,其开发流程中一些关键点越来越受到重视。

如何将基于模型开发融合到传统开发流程中去,是一个值得研究的问题。

此外,模型的验证、从模型到代码自动生成,这些都亟待于解决的问题。虽然业界也有一些流程与规范,但是总体较为混乱。

例如,ECU控制器的功能通过Simulink和Stateflow进行仿真与验证,然后将模型通过RTW转换为代码。但宿主开发环境如果采用Vector公司的Davinci开发环境进行AutoSAR兼容的软件开发,此时两者之间怎样配合则是问题,就是说RTW生成的代码需要导入到Davinci开发环境中进行集成。并且支持模型的逆向修改等。

4、准备开展的工作

基于OSEK/VDX,通过RTE进行封装,满足AutoSAR规范(OSEK/VDX为之前CASOS修改版);

基于Eclipse等框架开发IDE,集成Cygwin下面的工具链,基于GUI方式进行OIL配置,代码编译调试(GNU Toolchains)。

集成简单建模功能(或者与simulink进行集成),模型验证(或者与UPPAAL进行集成),代码生成等功能。

阅读了一下网站上的AutoSAR规范,好快,都4.0版本出来了,国内已经有四家在里面了,虽然都是Associate Partener,可是一大可喜进步啊。查找了相关的IDE工具,能够升级一下原来的思路,发现一个不错的开源Arctic[2]。

参考索引:
[1] http://en.wikipedia.org/wiki/OSEK

[2] http://arccore.com/

[3] http://en.wikipedia.org/wiki/AUTOSAR

汽车电子软件开发:AutoSAR集成开发环境相关推荐

  1. 云linux搭建 arm开发,arm集成开发环境搭建

    弹性云服务器 ECS 弹性云服务器(Elastic Cloud Server)是一种可随时自助获取.可弹性伸缩的云服务器,帮助用户打造可靠.安全.灵活.高效的应用环境,确保服务持久稳定运行,提升运维效 ...

  2. python开发环境比较好_python开发环境比较好,python 集成开发环境哪个好

    python 集成开发环境哪个好 PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提 ...

  3. arm汇编指令集_1. 从0开始学ARM安装Keil MDK uVision集成开发环境

    关于ARM的一些基本概念,大家可以参考我之前的文章:<0.到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普]> 0. 如何学习arm? AR ...

  4. 中国自主可免费使用的一站式 IoT 集成开发环境 RT-Thread Studio 发布!

    随着嵌入式软件开发规模和复杂性的提高,集成开发环境显得越来越必不可少,而在嵌入式集成开发环境软件方面,国内使用的大多数是从国外引进的. 但是随着国内半导体行业逐步的发展,以及在发展中遇到的国外的封锁, ...

  5. python的常用集成开发环境_【分享|10个超好用的Python集成开发环境推荐】- 环球网校...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注Py ...

  6. 1. 从0开始学ARM-安装Keil MDK uVision集成开发环境

    关于ARM的一些基本概念,大家可以参考我之前的文章: <到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普]> 二.安装Keil MDK uV ...

  7. 常见的ICE工具和集成开发环境

    常见的ICE工具 ICE (In-circuit emulation)工具即为在线仿真器,是调试嵌入式系统软件的硬件设备,仿真器可以替代你的目标系统中的MCU,仿真其运行. 仿真器运行起来和实际的目标 ...

  8. PHP环境搭建(phpStudy)与集成开发工具(phpStorm)的安装

    写作时间:2018.04.09   凌晨 介绍:PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收 ...

  9. 集成开发项目与开发集成项目的区别

    近期,公司承接了一些大型项目,虽说都可以算做集成项目,但在本质上却存在着差异,最终我们把这些项目统一划分为集成开发项目和开发集成项目.在项目前期,本人有幸参与了一些项目方案的撰写工作,起初对两种项目的 ...

最新文章

  1. 代替以前的F5,Ctrl+r!
  2. MySQL 性能优化之高阶神技
  3. 《 百度大脑AI技术成果白皮书》,介绍百度大脑5.0,附48页PDF下载
  4. jzoj3169-[GDOI2013模拟4]生产汽车【斜率优化dp,单调队列,二分】
  5. python定义空数组_在numpy数组中设置空值
  6. 这篇被引用近4k次的论文教你如何正确的理解和使用相关系数!
  7. 计算机二级mysql工具_2020年全国计算机二级MySQL复习知识点:优化工具
  8. java的实现内部类实现链表
  9. android 驱动(7)---.设备、总线、驱动
  10. 人生总是让人不知所错
  11. Uninstall JavaVM and Xcode On Mac OS X
  12. .NET Remoting 分布式开发实例思想(转)
  13. SPSS 24/25/26安装包分享 window和mac版本
  14. minidump详细介绍
  15. 51单片机对直流电机的控制(使用proteus仿真)
  16. 3 FPGA时序约束理论篇之IO约束
  17. 科学计算机解三角函数方程,用科学计算器解方程 急!!!
  18. python数据库连接mysql_使用Python连接MySQL数据库
  19. 血糖仪和糖化血红蛋白分析仪区别?
  20. 网络安全审计系统浅谈

热门文章

  1. 微信跳转外部浏览器直接下载app的实现方式
  2. 手把手教你简易上手GitHub(教程)
  3. 福建师范计算机应用基础考试内容,福建师范大学16年3月期课程考试《计算机应用基础》试题答案...
  4. 我对计算机网络的期待,锐龙版联想720s:实现我对13寸笔记本的所有期待
  5. linux系统下升级pip
  6. 【计算机毕业设计】在线答疑系统
  7. 实习日记——Day20
  8. 球面双站交叉定位计算方法
  9. 流程控制——条件判断
  10. 基于蜜獾家族MCF公链系统发行加密数字钱包教程