快速开发基于AUTOSAR标准的驱动软件

Automotive Open System Architecture (AUTOSAR),是汽车电子行业内解决软件复用问题的一种标准化软件架构,现在目前最新的版本是发布于2014年的10月31日的 4.2版本。它能够让开发人员面向应用进行软件开发,为了解决汽车系统设计中与日益增多的软件内容和不断收紧的开发时间问题。今天我们就来看看如何开发符合AUTOSAR标准的软件。

小猿第一次接触AUTOSAR是因为我的一个朋友张果老(化名)原来在汽车行业,后来介绍我认识AUTOSAR标准,那还是在2013年左右,后来就研究了下这个标准,确实觉得好处很多。AUTOSAR 软件通过提供一个开放的汽车软件架构应对日益复杂的代码,该架构由汽车 OEM、供应商和工具开发者共同定义。AUTOSAR 支持开发极具创新性且标准化的电子系统,以改进质量、性能、安全性和环保功能。它还能帮助简化汽车使用寿命内软件和硬件的更新流程。AUTAOSAR 的标准架构得到了大量汽车厂商和芯片半导体厂商,以及第三方工具和服务商的大力支持,像我们熟悉的半导体厂商恩智浦,英飞凌,意法等都推出有自己的解决方案,能得到这么多牛逼公司的支持,你就知道他的厉害和趋势了。看下图AUTOSAR的伙伴和成员,不要亮瞎噢,找一找有你熟悉的吗?

既然这么多的公司都在遵从这一标准,虽然他是专为汽车行业设计的,但是我们同样可以借鉴他的架构和标准开发用于其他行业和产品的软件,就像MISRA 现在已普遍应用于各个嵌入式软件开发中,而不只是局限于一个行业。

我们以一个简单的例子MCU GPIO来说明如何开发基于AUTOSAR标准的驱动软件,首先请自行下载AUTOSAR4.2标准压缩包到本地电脑,并熟悉AUTOSAR文档结构,这次我们主要参考AUTOSAR_SWS_PortDriver.pdf和AUTOSAR_SRS_PortDriver.pdf两个文档。参照这两个文档以及说明开发API接口,数据类型等。在microship 的8位机和NXP的kinetis kv46 32位机上验证。我们这里没有完全遵照AUTOSAR标准但是大的架构是按照AUTOSAR来的。类型定义,参考文档的描述,其中Type 可以定义为uint也可以定义为char。

例如按照文档要求可以定义如下

typedef unsignedchar Port_PinType;

……….

typedef enum

{

GPIO_E_PORT_PIN_IN = 0u,

GPIO_E_PORT_PIN_OUT

}ePortPinDirection_Type;

……….

这里没有列出所有定义,其他类似我们就不一一列举了,函数的定义也是一样按照文档的要求定义声明函数,不要忘记给你的任何一个函数都加注释,并使用统一的格式。

void GPIO_vSetPinDirection(Port_PinTypePortPin, ePortPinDirection_Type ePortPinDirection)

{

……….

}

按照文档开发完,并调试没有问题就可以使用这个驱动做应用了,例如我们可以驱动继电器,LED灯等,小猿使用这个驱动成功驱动继电器以及LED,等管脚的工作,并在microchip和NXP 的片子上都调试成功。具体详细的开发需求请参阅官方文档。

本文分享自微信公众号 - 嵌入式程序猿(InterruptISR)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-03-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏芋道源码1024

几个大型网站的Feeds(Timeline)设计简单对比

Facebook起源的NewsFeed,以及Twitter起源的Timeline,核心问题都是如何处理巨大的消息(活动,activity)分发。“推Push”和...

46810
来自专栏不止思考

架构设计之「服务限流」

上一篇我们聊过了架构设计中的「服务隔离」模式,今天我们继续来探索一下在分布式系统架构中的另一个常用的设计:服务限流。

18030
来自专栏腾讯移动品质中心TMQ的专栏

基于网页分析的可播放性测试

到周末了,有空啦,很多同学就会拿起手机,打开QQ浏览器,点开热门视频,弄几个视频来犒劳犒劳自己,放松一下,搜索个片子,打开,额,播放不了: ? 再试试看,...

35750
来自专栏无原型不设计

更巧妙的表单设计与登陆访问

以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具 你觉得一个普通人每天会使用多少次登陆功能呢?数据显示至少1...

33340
来自专栏飞雪无情的博客

GitHub:全球最大的程序员基友社区

GitHub,不少做IT行业的朋友都听说过,甚至已经是GitHub用户了。这是一个基于Git的源代码托管服务的平台,它允许你使用标准的Git命令或者流程规范进行...

17320

云监控与服务器监控不同的6个原因

传统的IT监控,一直是针对以服务器为主的基础设施来进行的。然而如果是将应用部署在云端,那么监控会变得很不一样,因为别说监控,我们很有可能都接触不到服务器。对于应...

28370
来自专栏互联网数据官iCDO

如何理解谷歌眼中的低质量页面?

译者:Nic 审校:朱玉雪 本文长度为3529字,预估阅读时间6分钟。 我们今天要向大家介绍的是谷歌是通过哪些因素来判定登录页面质量的高低 衡量页面质量的高...

27660
来自专栏杨建荣的学习笔记

几类历史数据沉淀的方案过渡

从数据层面来理解,数据可以分为几个维度,比如流水型数据,状态型数据库,配置型数据。流水型数据的依赖最低,基本就是时间维度的扩展,所以从数据的安全角度来说,如果丢...

41260
来自专栏SDNLAB

【8点20】深入了解Facebook 的Altoona数据中心网络

Facebook最近秀了一下Altoona数据中心网络的高度模块化和可扩展性。这个社交网络巨头高调公布了数据中心网络解决方案,因为Facebook想围绕开放计算...

38950
来自专栏CSDN技术头条

小故事:架构师需要做什么?

作者:Robert C. Martin 原文:A Little Architecture 译者:孙薇 责编:钱曙光 本文是一篇模仿问答的小故事,作者用幽默的风格...

25060

扫码关注云+社区

领取腾讯云代金券