当前位置: 首页 > article >正文

汽车软件设计时容易忽略的点 -- 观ETAS Webinar有感

目录

1.忽略汽车软件网络安全

2.软件功能安全难以保证

3.文档和注释匮乏

4.无效\不充分测试

5.忽略实时性控制


抽时间回顾了ETAS Webinar,特别讲到了在汽车MCU的软件开发中常见问题,结合之前经验,深有感触。总结总结,与君共勉。

1.忽略汽车软件网络安全

在以往汽车ECU软件开发中,网络\信息安全一直被忽视,大多控制器在系统架构设计时就忽略了威胁与风险分析。

在汽车信息安全--攻破SecOC,就在今天!中提到:黑客利用升级时下载Flash Driver缺乏有效验证机制这一漏洞,植入shellcode,从而提取到SecOC密钥。

这就是很典型的例子,个人猜想Bootloader和App是两个不同小组开发,这两个组件之间是否存在漏洞就处于三不管地带。

因此,在Vehicle CyberSecurity普遍成为强制标准的今天,将网络安全开发流程贯穿到汽车开发、生产、售后、运维、报废等整个生命周期,对于新产品的开发是十分必要的。

据统计,

  • 中国于2024年8月23日发布GB44495—2024《汽车整车信息安全技术要求》:要求从2026年1月起,对于新申请型式批准的车型强制执行GB44495—2024;2028年1月起,对于已获得型式批准的车型强制执行GB44495—2024。
  • 欧盟规定2022年7月起,所有新车型强制要求满足R.155法规;2024年7月起,所有新车辆强制要求满足R.155法规。日本与欧盟同步。

当然目前来看,如何实施网络安全流程还不是很明朗,从OEM角度如何将这些流程分解出来给到供应商,我们拭目以待。

2.软件功能安全难以保证

很难说我们是按照ISO26262-6类似的标准进行代码\模型开发,通常情况开发者都是先以实现功能为首要目标,功能实现之后再考虑如何添加措施从而加固系统。

之前遇到过一个系统需求,要求在当前ECU做子网关,下挂多个节点,路由延迟不超过1ms。

在开发时就直接利用协议栈提供的callout在IF层处理了,没有考虑功能安全,系统工程师没有提任何DFEMA的要求,也没有提功能安全等级要求。

在设计时,将接口限制到什么数量、该模块设计的大小和复杂度、接口的调度层次、各接口的调度特性,都凭经验实施,因此也很难说满足了什么样的ASIL等级。

当然,待的是小公司,大一点的公司应该会有一套自上而下的需求分解理论。

3.文档和注释匮乏

工程师最怕的工作,没有之一,那就是文档和代码注释。

同第二点一样,除了部分复杂模块,大部分开发都是先写代码,后补设计文档,文档也是流于形式;代码缺乏注释,过个把月回头看自己代码,完全不知道当时为什么这么写,大家应该都有这种体验。

我遇到过交接的代码完全没有注释,光理解和调试就耗费大量精力,还不敢大改,毕竟有个传说:代码能跑就不要动它。

那么如何写文档和注释,浅薄见解:保证追溯性、设计文档先行、注释写清楚设计目的或者来源、找组内大佬review。

4.无效\不充分测试

软件测试不充分,在小开发团队表现得尤为明显。

绝大多数情况,开发人员既要开发还要自测,如果配备的测试人员对功能点或者需求理解不一致,就会难以保证最终的测试用例完备性。

因此,从单元测试、集成测试、漏洞扫描再到功能测试,无不考验着一个软件开发测试团队的综合实力。

之前遇到过可以算得上是一个事故,自家开发、测试和架构共同review过的测试用例,也修复了所有bug,但在实际用户使用时代码跑飞了。

我们私下在想:你怎么可以这么用?但客户确实这么用了。

因此,测试通常意义要和开发并行,甚至应该测试左移,以此驱动开发。

5.忽略实时性控制

车规MCU的大多数应用都有实时性限制,开发时很难考虑掉这点,大家普遍认为,自己这点代码,CPU几下就给处理完毕了,结果常常造成系统级别的灾难。

之前遇到过总线负载过高导致整体任务周期不准的问题,从应用层架构设计分析再到RTE集成代码分析,最后再到MCU硬件cache、分支预测等分析,几乎撸了一遍才解决。

这就是开发时没有考虑worst-case performance,也是做架构设计时没有考虑任务拆分,更没有考虑本身MCU硬件存储器自身访问效率导致。

例如,考虑堆栈和共享变量部署位置时,需要掌握CPU到存储器(例如TC3xx DSPR\PSPR、R52 A\B\CTCM、M7 I\DTCM、System SRAM、Flash)的访问延迟;在考虑任务分配时,在不同调度层级拆分任务,然后通过测试评估是否有效。

忽略实时性控制,是早期开发最常见到的问题。性能问题也基本都是在HIL阶段才会发现。

不多说,回顾《嵌入式软件的时间分析》。


http://www.kler.cn/news/341641.html

相关文章:

  • Windows系统安装Fooocus结合内网穿透实现公网环境远程生成AI图片
  • 『Mysql进阶』Mysql explain详解(五)
  • jQuery基础
  • ffmpeg面向对象——AVInputFormat与URLProtocol啥关系
  • AR虚拟试用,让网购不再只靠想象!
  • 新闻推荐系统:Spring Boot框架详解
  • PCB缺陷检测数据集 xml 可转yolo格式 ,共10688张图片
  • vue3.x系列之v-model的使用技巧及面试高频问题
  • Github 2024-10-06 php开源项目日报 Top10
  • 多种方式连接和管理 Oracle 数据库详解
  • 风口来了:有空可以考个人工智能证书!
  • k8s中pod的管理
  • 【ArcGIS/C#】调用控制台处理代码
  • 仓储物流行业--仓储服务升级经典案例
  • 【element-tiptap】如何将编辑器初始化为全屏显示?
  • 如何用AI两小时上线自己的小程序
  • 量化交易常见策略
  • 【斯坦福CS144】Lab1
  • 基于springboot和vue.js 养老院管理系统设计与实现
  • AI生成视频