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

车载实操:一对一实操学习、CANoe实操学习、推荐就业机会、就业技术支持、协助面试辅导

 

  


FOTA模块中OTA的知识点:
1.测试过程中发现哪几类问题?

      可能就是一个单键的ecu,比如升了一个门的ecu,他的升了之后就关不上,还有就是升级组合ecu的时候,c屏上不显示进度条。

2.在做ota测试的过程中,会做网络通信的测试吗?

      网络通信测试的话,有做,但是目前我的话还没接触到。

3.那你主要做什么?

      现在主要做单键以及组合键的刷写单键以及组合键的刷写

4.OTA的功能主要是测哪些功能?

      ota 主要测ecu的升级,ota测试主要是为了保证上线之后,交给用户,用户升级后它的一个稳定性,在测试的过程中,比如我们一个左转向灯的按键,我测十次,我要保证这十次都是成功的。我现在最重要的是测ota的刷写,比如说你从1迭代到2,然后你升级的这个版本,按键有没有刷成功,还有就是上个版本存在的问题,升级之后的版本有没有修复。系统修复的话,无非就是三种方法,一个是你本地刷起,我就通过工具给你刷,把你这些按键拆下来,拿到我公司给你刷;还有一个是我通过U盘刷,我把包拷贝到U盘,插到车上刷,刷了之后,你这个屏就恢复正常了;还有一种是远程,比如你现在这个车在深圳,然后我在上海,在你用不了的时候,我就给你推个包,让你去升级,就不用去基站就行修复;所以ota就是为了保证用户在某些功能受限的时候,他能升级成功。

5.OTA的作用?
      ota的作用是ecu,mcu的升级,不同的mcu同时升级,或者说这些mcu一个一个升级,可能它的情况是不同的,同时有一些升级,就是要解决单一mcu升级之后,车是否能正常工作的问题,同时也要解决mcu升级过程中,是否具有一定的独立性,一个车可能有几十个ecu、mcu、mpu,有的升级有的没升级,那这车还能走嘛,有的mcu升级一半,我就要开车,这些场景是否支持。

6.你现在测的需求是什么?
      主要是我们现在能测的20几个键,车里的按键;每个单键,还有刷新、测试、升级,还有20几个键组合起来一起升级,然后看他的一个云端和车端,以及它的log日志的情况是否是正确的,比如说我们升级成功后,云端上会显示升级成功,升级失败,它会有相对应的错误码,升级失败的话我们要内部分析一下它失败的原因。

7.你们现在测的是什么车?
      测的是什么车,(车还没有销售,)

8.你们现在是什么阶段?
      我们现在是sop+2,因为我们做项目我们都知道,我们刚开始有p阶段,ppv阶段,sop阶段,sop又分为好几个阶段,sop+1,sop+2,+3,一直到+6,然后sop+6的话基本上就到用户交货阶段了;然后我们现在就处于sop+2的阶段,这个阶段功能的话基本上已经开发完了,现在就是还有一些小问题,就还在进行修复。

9.总体的工作?

      因为ota它总的来说是一个端到端,所以需要对后台服务器进行测试,后台服务器我们测试的模块包括管理车型、车辆管理(因为我们的车辆很多吗,你进行一个车辆管理,首先的话需要一个用户数据埋点,后台运营人员可以通过这些数据管理,可以对你这个车的一些软件和一些故障码进行人为的分析),软件管理(软件的话我们也会把它上传到我们的后台服务器,然后进行管理),我们会根据这些模块进行测试。还有的话就是升级策略,升级任务,这个的话就相当于给你创建一个升级任务,然后把升级包推到你推荐里面,来进行更新;还有一个审批管理,审批管理就是,比如我们有一个车,然后进行批量升级,这个是要经过层层审批的,不可能说你这个功能直接给你开好了,需要审批了才能把新功能加给你。差不多就这六个模块,云端这块的话差不多就是一个web端测试。

10.bug管理系统是什么?
      ( Jira )

11.车企需要掌握的语言:
      C语言(了解代码),python语言(做自动化)

12.了解的协议:
      针对应用层的服务10,11、27、28、31、34、36、37、85、22、2E、2F这些协议

13.测试的流程:
       其实这个更像ota的一个联调,分为四个子流程:1.版本检测:分为物流数据采集和物流数据上传:就像icc的升级,我们首先要知道icc它当前的版本是多少,升级的话主要可以通过整套刷解或者差分刷解,我们要基于你当前的版本做差分的话,我需要把你当前这个版本的数据收集上来,给云端做一下匹配,匹配到了之后,就把这个任务下发给ota server,也就是你的车。
       然后车呢就开始下载,我们下载的整条链路是https.....是一个加密的网络传输协议,也是为了安全。
      下载完成之后就进入安装,安装完了之后,我们会进行一个升级结果反馈,分为任务结果反馈和任务结果上传,看这个是升级成功还是升级失败,还有我们要把日志上传到云端,目的是为了防止失败的话,我们的开发或者后台的运营人员可以通过云端把log取出来,去分析升级失败的原因。

14. ICC 和 ICM 是什么?

      icc和icm就是控制器,icc可以理解为中间网络控制器,所有的数据都经过它整合,比如说油箱没油了,那么油箱的控制器就会发一个信号到icc里面去,通过icc转发到车的仪表上显示;icm的话像现在都是智能车,车上都有一个中控屏或者仪表屏,这个屏连一个线嘛,就是连到icm,它可以理解为一个安卓智能手机,供娱乐功能使用。

15.用到的工具:
      canoe 移动电源 万用表:测小电池 (台架的话测试更多的是单元测试,还有一些接口测试,整车测试不同于台架测试,它更像一个黑盒测试,)

16.工作中遇到的困难:

      最大的问题是,比如我们ota出现一个问题,因为我们是测各个控制器嘛,零束他只是一个M厂商嘛,它有很多供应商,每个控制器都是由不同的供应商提供的,比如出问题的时候,可能是零束的问题、也可能是斑马的问题,还有可能是节点的问题,可能是他们供应商沟通不及时,这样的话,像这种问题就会一直存在;那么对于我们测试人员来说呢,可能这个问题这会儿出现了,下次再复现又没法复现了,这样的话定位问题就比较困难,就会增加很多重复性的工作,就要反复的给零束人抓包、给斑马的抓包,感觉很多无意义的工作。

解决措施:不能判断的前提下,把涉及到的所有log全部取出来,抓好各方的log,然后建立一个bug

17.做ota测试主要测什么东西?
       A、ota最大的一个功能的话,就是修复之前系统的缺陷。还有就是,降低研发成本。就像研发阶段,你这个车比如动力系统什么的都没有什么大问题了,然后也可以达到交互的一个阶段了,但是,中控屏上的一些,比如自动挪车这些以及中控娱乐系统这一块,你可能现在还没有做完,但是为了降低成本,你又不得不上市,那么你就可以通过后期ota把这块更新上去。这就是为什么现在长城、吉利做ota的一个重要的原因。还有的话就是不断地给你更新新的功能,就像我们买车的都知道,买回来之后,肯定不是什么功能都给你开,我在后期给你推,然后扫码、解锁、进行升级,升级之后新功能你就可以使用了。

       B、一个车的话,你可能要上万个零件,支持ota的,可能就只有四十几个控制器,就是那些主要健,像三大件的话,就是icc、icm,im,一个控制器要升级的话,肯定要下载包,那你一个控制器的话肯定不会都要跟娱乐系统进行交互,我们的包是存在云端的嘛,云端肯定要先推到你的手机,要是你的手机是12.0,那给你推的如果是13.0,后台给你推包推到icc,它会有一个总节点,我只拿这个总节点跟云端进行交互,一个控制器跟其他控制器进行刷解,我们要保证这个键是完全ok的,icc和icm之间的协议,他们之间会不会同时啊,还有就是给你icm发一条指令,看icm回不回。举个例子,现在我们要刷icm,那么你这个icm,它肯定不是首先跟后台交互,它会先跟icc进行交互,那我们联调的过程中就要保证icc从后台下包,下载没问题,但是这个包传给icm,这个过程中是没有问题的,最后我icc给icm发一条指令,现在包已经传完了,你可以升级了,这么一个联调,这个过程是需要有人进行协调的,你icm是一个过程,icc也是一个过程,它们两个是完全不愿意开放。那我们测试在这个过程中,在中间就起了一个连接的作用。

       C、你们这个ota是由一个人来负责,还是几个人来负责,多少个人才能做好。这个分公司吧,之前我在另一个公司的话,我一个人就负责几个机型,负责两三个项目;但 是零束整车的键哈,也就40个键,如果单纯从测试的角度来说的话,那其实两三个人完全可以把一个项目拿下,就是还是要看主机厂吧。我们这边做ota是刚开始的,是从0开始做的,现在ota还没有完全开发,现在后台还没有,现在刚上第一个车型,后面还会陆续上,现在一个车型还是比较多的,有六七个。

18.编测试用例:

      分为后台服务器(纯云端,类似电商那块,差不多有一千多条)和车端(分为检测、下载、待安装、升级阶段,上报阶段,ecu刷写阶段,差不多600多条)差不多可以覆盖所有需求

19.上海做ota的公司

      上海还是比较多的,像阿拉比,哈迈啊、寇乐达,这些公司,寇乐达是给奇瑞做,零束是阿拉比做的,阿拉比他目前的话,它的几个系列都是差分升级技术,比如一个十几G的包,可以给你差分到只有几兆,然后几兆下载到车上,在车上进行一个还原,把差分包还原成一个整包,这个才是他们的核心技术。在手机上就是一个软件是部分升级还是全部升级,差分技术对内存的一个分区,还有镜像文件那些还是很有要求的,重点是你有机制去还原。

20.升级过程中能不能保证升级的安全,比如ecu升级到一半了,怎么办?

       安全这块的话,我们会进行防盗测试和处理。考虑到目前要升级全端的话,我们的mpu和mcu,都有一个 “奥突萨”,它是整车的一个标准,它会推出一个无感升级,就是一个控制器它会有一个A面和B面,那你在开车的时候,我就开始给你升级,先升级B面,然后熄火下次重新启动的时候,就检测到你这已经成功了,就可以给你直接切换到B面,那这个新功能就更新了,就相当于一个备份的意思。相当于我有一个回滚方案,那一个场景举例,我正在升级,突然包有问题或者网络有问题,我卡住了,会触发一个指令,直接切换到B面,在B面运行,然后A面,会在某个时机,通过copy,把B面的复制过来,这样就可以循环使用了。就是计算机里面的备份技术,现在好多都搬到车端来了

21.支持OTA升级零件范围
IVI:多媒体主机    ——责任部门:智能网联——刷写方式:私有协议
DMS:驾驶员检测系统——责任部门:智能网联——刷写方式:私有协议
T-Box:通讯主机——责任部门:智能网联——刷写方式:私有协议
ADAS- iECU:智能驾驶域控制器——责任部门:电子电器——刷写方式:DOIP
AMP:外置功放——责任部门:智能网联——刷写方式:UDS
BMS:电池管理系统——责任部门:动力系统——刷写方式:UDS
CS:集成式充电系统——责任部门:动力系统——刷写方式:UDS
EGS:电子换挡模块——责任部门:智能网联——刷写方式:UDS
MCU:电机控制模块——责任部门:动力系统——刷写方式:UDS
VCU:整车控制模块——责任部门:动力系统——刷写方式:UDS
GW:网关——责任部门:电子电器——刷写方式:DOIP
ESC:电子稳定控制器——责任部门:电子电器——刷写方式:UDS
Iboost:电子制动助力器——责任部门:电子电器——刷写方式:UDS
EPB:电子驻车控制器——责任部门:电子电器——刷写方式:UDS
BCM:车身控制器——责任部门:电子电器——刷写方式:UDS
CCM:空调控制模块——责任部门:动力系统——刷写方式:UDS
COMP:压缩机——责任部门:动力系统——刷写方式:UDS
PLG:电动尾门——责任部门:电子电器——刷写方式:UDS
PTC:高压加热器——责任部门:动力系统——刷写方式:UDS
AVAS:低速警示系统——责任部门:电子电器——刷写方式:UDS
SCM:座椅控制器——责任部门:电子电器——刷写方式:UDS
ADAS-RLR:左后毫米波雷达——责任部门:电子电器——刷写方式:UDS
ADAS-RRR右后毫米波雷达——责任部门:电子电器——刷写方式:UDS
ADAS-FR:前向毫米波雷达——责任部门:电子电器——刷写方式:UDS
ADAS-FLR:左前毫米波雷达——责任部门:电子电器——刷写方式:UDS
ADAS-IFC:智能前视摄像头——责任部门:电子电器——刷写方式:UDS
ADAS-ACM:ADAS控制器——责任部门:电子电器——刷写方式:UDS

相关文章:

车载实操:一对一实操学习、CANoe实操学习、推荐就业机会、就业技术支持、协助面试辅导

FOTA模块中OTA的知识点:1.测试过程中发现哪几类问题? 可能就是一个单键的ecu,比如升了一个门的ecu,他的升了之后就关不上,还有就是升级组合ecu的时候,c屏上不显示进度条。 2.在做ota测试的过程中&#xff…...

PACT 在微服务架构中的用途

在微服务架构盛行的今天,如何确保各个微服务之间的交互正确且稳定成为了一个关键问题。PACT(一种契约测试工具)在这个领域发挥着重要的作用。那么,PACT 在微服务架构中的用途到底是什么呢? 一、微服务架构的挑战 微服…...

LeetCode 3200.三角形的最大高度:枚举

【LetMeFly】3200.三角形的最大高度:枚举 力扣题目链接:https://leetcode.cn/problems/maximum-height-of-a-triangle/ 给你两个整数 red 和 blue,分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形,满足第 1 行…...

ssm基于java的招聘系统设计与开发+vue

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 研究内容 1 第2章 开发环境与技术 3 2.1 Java语言…...

【网络原理】TCP/IP五层网络模型之网络层-----IP协议详解,建议收藏!!

💐个人主页:初晴~ 📚相关专栏:计算机网络那些事 前几篇文章中我们深入研究了TCP协议,因为TCP协议在我们日常开发中的使用频率非常高。而相比之下,IP协议与我们普通程序员关系就没那么近了。一般是专门开发…...

三次握手与四次挥手

一、三次握手 AB之间 都会发送一个syn - ack。 A 先发 syn ,B收到 。 A: 什么都不知道 B:知道A可以发送。 B发送syn-ack,A收到 。 A: 知道B可以收也可以发 , B知道A可以发送。 A发送ack,B收到。 A : 知道B可以收也可以发 , B知道A…...

awk命令学习记录

awk命令 awk命令 表示将一行数据按特定分割符分割成多列,而从而选取特定列数的数据,默认分割符为空格,连接符默认也是空格 // 1. 更换分割符 awk -F : 1.txt // 1.txt为你的文件名 // 2. 打印多列 awk {print $1,$2} // $0为整行&#xff…...

科大讯飞嵌入式面试题及参考答案

平衡二叉树和普通二叉树的区别 平衡二叉树是一种特殊的二叉树,与普通二叉树相比有以下显著区别: 一、定义与结构 普通二叉树:二叉树是每个节点最多有两个子树的树结构。它没有特定的平衡要求,节点的分布可能比较随机。例如&#x…...

C Lua5.4.6 SDK开发库

下载 .lua执行 #include "lua.h" #include "lualib.h" #include "lauxlib.h"static int luaopen_ui(lua_State *L) {static const struct luaL_Reg lib_f[] = {{"saveFile", saveFile},{"loadFile", loadFile},{NULL, NULL…...

无线网卡知识的学习-- wireless基础知识(cfg80211)

1. 基本概念 mac80211 :这是最底层的模块,与hardware offloading 关联最多。 mac80211 的工作是给出硬件的所有功能与硬件进行交互。(Kernel态) cfg80211:是设备和用户之间的桥梁,cfg80211的工作则是观察跟踪wlan设备的实际状态. (Kernel态) nl80211: 介于用户空间与内核…...

Next.js 学习 - 路由系统(Routing)

Next.js 的路由系统基于文件系统,这意味着文件和文件夹的结构决定了 URL 路径。相较于传统的 React 应用中的路由配置,Next.js 的文件路由系统非常简洁和自动化。下面是对 Next.js 路由的详细介绍。 1. 目录结构 在 Next.js 13 中,app 目录…...

Unity XR PICO 手势交互 Demo APK

效果展示 用手抓取物体,调整物体位置和大小等 亲测pico4 企业版可用, 其他设备待测试 下载链接: 我标记的不收费 https://download.csdn.net/download/qq_35030499/89879333...

EM算法学习

1.EM算法的介绍 可以发现:计算出θA和θB的值的前提是知道A、B币种的抛掷情况。 所以我们需要使用EM算法:求出每轮选择硬币种类的概率 2.EM算法执行过程: 第一步:首先初始化设置一组PA和PB证明的值。然后通过最大似然估计得到每…...

019_基于python+django食品销售数据分析系统2024_4032ydxt

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…...

C语言笔记(数据的存储篇)

目录 1.数据类型的详细介绍 2.整型在内存中的存储:原码、反码、补码 3.大小端字节序介绍及判断 4.浮点型的内存中的存储解析 1.数据类型的详细介绍 下述是内置类型: char // 字符数据类型 short // 短整型 int // 整型 long …...

wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理的解决方法

前言 开头先讲讲wsl2启用代理的必要性,一般来说,会用wsl的都是开发者,那么就避免不了从网络上下载软件和应用,但是由于众所周知的原因,你使用apt,wget等工具下载国外网站的东西时,下载速度就会…...

CSS 居中那些事

一、父子元素高度确定 简单粗暴, 直接通过设置合适的 padding 或 margin 实现居中 <style>.p {padding: 20px 0;background: rgba(255, 0, 0, 0.1);}.c {width: 40px;height: 20px;background: blue;} </style> <div class"p"><div class"…...

Java项目-基于springboot框架的智能热度分析和自媒体推送平台项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…...

跨平台进程池背后的思想

背景是基于业务需求,需要实现一个跨平台的项目。项目中由于有部分功能存在大量计算,所以打算单独分配一个进程去进行计算。 进程池的实现与线程池的实现逻辑上如出一辙。但是实现上进程池的实现会比线程池实现复杂的多,主要比较复杂的点的就在于并发安全的任务队列。…...

前端性能优化之加载篇

前端页面加载的过程其实跟我们常常提起的浏览器页面渲染流程几乎一致: 网络请求,服务端返回 HTML 内容。 浏览器一边解析 HTML,一边进行页面渲染。 解析到外部资源,会发起 HTTP 请求获取,加载 Javascript 代码时会暂停页面渲染。 根据业务代码加载过程,会分别进入页面开始…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

DeepSeek越强,Kimi越慌?

被DeepSeek吊打的Kimi&#xff0c;还有多少人在用&#xff1f; 去年&#xff0c;月之暗面创始人杨植麟别提有多风光了。90后清华学霸&#xff0c;国产大模型六小虎之一&#xff0c;手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水&#xff0c;单月光是投流就花费2个亿。 疯…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...

OpenGL-什么是软OpenGL/软渲染/软光栅?

‌软OpenGL&#xff08;Software OpenGL&#xff09;‌或者软渲染指完全通过CPU模拟实现的OpenGL渲染方式&#xff08;包括几何处理、光栅化、着色等&#xff09;&#xff0c;不依赖GPU硬件加速。这种模式通常性能较低&#xff0c;但兼容性极强&#xff0c;常用于不支持硬件加速…...

数据挖掘是什么?数据挖掘技术有哪些?

目录 一、数据挖掘是什么 二、常见的数据挖掘技术 1. 关联规则挖掘 2. 分类算法 3. 聚类分析 4. 回归分析 三、数据挖掘的应用领域 1. 商业领域 2. 医疗领域 3. 金融领域 4. 其他领域 四、数据挖掘面临的挑战和未来趋势 1. 面临的挑战 2. 未来趋势 五、总结 数据…...

NineData数据库DevOps功能全面支持百度智能云向量数据库 VectorDB,助力企业 AI 应用高效落地

NineData 的数据库 DevOps 解决方案已完成对百度智能云向量数据库 VectorDB 的全链路适配&#xff0c;成为国内首批提供 VectorDB 原生操作能力的服务商。此次合作聚焦 AI 开发核心场景&#xff0c;通过标准化 SQL 工作台与细粒度权限管控两大能力&#xff0c;助力企业安全高效…...

慢慢欣赏linux 之 last = switch_to(prev, next)分析

last switch_to(prev, next); 为什么需要定义last作为调用switch_to之前的prev的引用 原因如下&#xff1a; struct task_struct * switch_to(struct task_struct *prev,struct task_struct *next) {... ...return cpu_switch_to(prev, next);> .global cpu_switch_tocpu_…...