汇川技术 - 嵌入式软件工程师 - 面经(1)

alt

部分内容为牛客其他同学分享,单击小标题即可跳转至对应链接

如果侵犯了您的权益,请与我取得联系,我将立刻删除对应部分

-1、背景

岗位:【25提前批-联合动力】嵌入式软件工程师

工作职责:

  1. 硕士及以上学历,自动化、计算机、电气工程及其自动化等专业等相关专业;
  2. 有嵌入式软件编程经验,熟练掌握C/C++,有simulink应用、芯片驱动设计等开发经验者优先。
  3. 工作严谨细致,有责任心,有良好沟通能力,具备团队合作精神。

任职资格:

  1. 负责新能源汽车相关产品软件开发,汽车电子嵌入式软件设计、开发与测试工作
  2. 负责基于ARM、DSP等单板控制器的软件开发
  3. 负责软件功能的需求分析、设计及代码开发
  4. 协助解决产品市场问题、技术难点等。

时间线:

0705(投递) -> 0705(测评) -> 0729(一面)-> ❌

0、笔试

提前批无笔试

1、面经汇总

  1. 介绍整体项目?
  2. XXX 是怎么运行的?
  3. 有没有做验证, 怎么知道 APP 有没有生效,损坏?
  4. 固件头包含什么信息?
  5. 介绍一下这几个 MCU 里用过的外设?
  6. 团队和个人工作的区别是什么?
  7. 更喜欢团队工作还是个人?

汇川联合动力一面,总时长不到 20min

  1. 自我介绍
  2. 聊了聊科研项目
  3. 本科基础课(数模电,自动控制现代控制)
  4. 简单的 C++ 基础提问
  5. TCP/IP 简单介绍

飞书视频会议 全程 25 分钟左右

  1. 自我介绍
  2. 手撕:兔子生兔子问题
  3. 实习相关内容
  4. 手撕汇编:十个数重新排列(写了 3 行面试官说可以了挺好的)
  5. 反问
    1. 公司作息时间?
    2. 西安岗位的情况?
    3. 几个城市的具体方向划分有没有区别?

总体难度不难,主要围绕项目,有少量八股,压力不大,全程半个小时

  1. 自我介绍
  2. 介绍项目
  3. 问了项目中的 C 语言高级用法,如函数指针、指针函数
  4. 闲聊

嵌入式软件工程师

  1. 自我介绍
  2. 项目相关问题
  3. 结构体字节对齐问题
  4. CAN 总线的仲裁机制,优先级问题
  5. 讲讲 FreeRTOS(任务调度,优先级机制)
  6. 队列和栈的区别
  7. 手撕代码:猴子吃桃

嵌入式软件工程师(西安)

0812(投递) -> 0824(一面)-> 0828(一面通过)-> 0910(线下二三面)

  1. 自我介绍
  2. 项目介绍
    1. 变换器控制环是不是自己写的,介绍下思路?
    2. 前馈解耦控制中包含电网电压项吗,如果不加电网电压项会有什么影响?
    3. 中断频率设置的是多少?怎么优化中断服务函数执行速度?
    4. F28335 中 int 类型占几个字节?
    5. 多进程操作需要注意哪些问题?临界资源有哪些?
    6. 局部变量与全局变量的存储位置分别是什么?
    7. 静态全局变量赋初值和不赋值有什么区别?
  3. 反问环节
    1. 嵌入式工作方向?(分为两个,DSP 控制算法或者偏底层车机系统)
    2. 面试一共会有几轮?(三轮)

  1. 自我介绍
  2. 项目介绍(只问了智能车比赛)
    1. 比赛难度?
    2. 获奖情况?
    3. 电感采集?
    4. 说说采样频率,单片机如何采集到信息的?
  3. 手撕字符串反转:“abcdefg -> gfedcba” ?
  4. 为什么用静态函数?什么地方用?
  5. 反问
    1. 入职有学习期吗?

30mins

  1. 自我介绍

  2. 实习项目拷打(相关度较高)

  3. 介绍 C++ 多态?

  4. C++ static 作用?

  5. 介绍 C++ 堆栈?

  6. 函数的行参为什么不放在寄存器,要放在栈里?

  7. 反问

0809(投递) -> 0809(测评) -> 0908(一面)

  1. 项目介绍
  2. Windows 操作系统和 SYS/BIOS 的区别?
  3. Linux 系统、计算机网络了解吗?
  4. 怎么看待将你临时借调到其他部门?
  5. 项目中遇到的困难?

  1. volatile 的作用?

  2. 选择题:数组指针

  3. 代码题:联合体

十一

  1. 讲一讲 UART/I2C/SPI/CAN的区别?
  2. 用过哪些 I2C 器件?
  3. 有硬件设计经验?你做过什么?
  4. 学过 PLC?用过哪些 PLC? 梯形图和 ST 都熟悉?
  5. 你知不知道汇川是做什么的?)
  6. 项目相关
  7. 反问
    1. 一面多久出结果?

2、一面(30min)- 20240729

  1. C 语言编译的过程

预处理 -> 编译 -> 汇编 -> 链接

  1. *p++(*p)++ 区别

*p++ 返回指针 p 指向的元素值,指针 p 指向下一个元素,地址++
(*p)++ 返回指针 p 指向的元素值,并将该元素值加一,值++

  1. 编程题(三道题均为真题,但面试只会手撕一道)

有 1、2、3、4 四个数字,用 C 语言编程计算能组合出多少个不重复的三位数,并输出各个数

#include <stdio.h>

int main() {
    int count = 0;
    for (int i = 1; i <= 4; i++) {
        for (int j = 1; j <= 4; j++) {
            if (j == i) continue; // 保证数字不重复
            for (int k = 1; k <= 4; k++) {
                if (k == i || k == j) continue; // 保证数字不重复
                printf("%d%d%d\n", i, j, k);
                count++;
            }
        }
    }
    printf("总共组合数量: %d\n", count);
    return 0;
}

已知一个数列的前3个数为3,4,5,以后每个数为前3个数的和,编程序求此数列的第N项

int fibonacci_recursive(int n) {  
    if (n <= 0) {  
        return 3;  
    } else if (n == 1) {  
        return 4;  
    } else if (n == 1) {  
	    return 5;
	} else {
        return fibonacci_recursive(n - 1) 
	        + fibonacci_recursive(n - 2) 
	        + fibonacci_recursive(n - 3);  
    }  
}

给定一个整型数 a,清除 a 的 bit15 ~ bit23 ,保证其他位不变

#include <stdio.h>  
#include <stdlib.h>  

// 打印 32 位二进制数
void printBinary(int n) {  
    char binary[33];  
    // 字符串结尾
    binary[32] = '\0';
    for (int i = 31; i >= 0; i--) {  
        // 使用位操作来检查每一位  
        binary[i] = (n & 1) ? '1' : '0';  
        // 右移一位  
        n >>= 1; 
    }  
    printf("%s\n", binary);  
}  
  
int main() {  
    int num=0xFFFFFFFF;  
  
    printBinary(num);  
	// 1.掩码方式 
    int method1 = num;  
    int mask = 0xFF007FFF;  
    method1 &= mask;  
    printBinary(method1);  
    
	// 2.移位方式
    int method2 = num;  
    method2 &=~(0x1FF << 15);  
    printBinary(method2);  
    return 0;  
}
  1. 你都使用过 MCU 的哪些外设,挑一个你最熟悉的讲一讲?
  2. 使用 I2C 获取的从机数据是怎么样的?
  3. Linux 启动过程是怎么样的?
  4. 堆栈溢出是什么?
  5. 内存对齐是什么?
#汇川技术##嵌入式软件##面试#

欢迎来到我的专栏,在这里,我将整理并分享2024年各大企业的真实笔试/面试真题,帮助求职者了解考试趋势和嵌入式常见考点。无论你是准备面试,还是希望提升自己的专业知识,这里都能为你提供宝贵的参考和学习资源。

全部评论
多少薪资的?
点赞 回复 分享
发布于 02-16 19:57 四川

相关推荐

个人情况:bg:西安某双非竞赛:机器人国家级一等奖电子设计大赛省级一等奖嵌入式设计大赛国家级一等奖汇川杯省级一等奖(一共4国13省)论文:今年大概会有一篇关于无人机的论文(给导师干活)软著专利啥的。实习:海康威视实习(目前已经满3个月了)#嵌入式##影石360##影石Insta360求职进展汇总##双非##单片机#time&nbsp;line2.11凌晨老板b投递&nbsp;,2.11HR回复&nbsp;下午通过部门筛选约面试(2.13),&nbsp;2.13一面&nbsp;晚上收到面试评价(有无知道的uu收到这个是不是必挂啊)面经:(差不多四十分钟左右吧)两个面试官(感觉应该像一个主管和一个技术官)一:自我介绍&nbsp;&nbsp;介绍自己BG,竞赛技术栈(介绍的过程中,面试官也在听,有反馈,体验感挺好的)二:询问最好的奖项(机器人国一,电赛省一,嵌赛国奖)三:详细介绍其中一个项目四:项目主要实现功能五:伺服舵机是怎么实现的,调用API还是自己设计的六:海康实习主要工作是啥七:PID和模糊PID控制电机(响应,同步,延迟)八:伺服舵机的抖动怎么处理的(我答了提高频率,估计错了)九:Eather-Cat工控协议介绍十:有没有学过电机的S曲线(没有处理过)十一:询问知道这个岗位是干什么的吗(好像是偏向一些MCU的图像开发,驱动之类的)十二:人机交互(PYQT和IVGL)十三:IVGL和传统LCD库的区别,他的优点十四:项目中遇到的困难(这部分问的很细,包括方案选型一大堆)十五:拷打简历第二个项目十六:项目中负责那些部分十七:用到了那些外设(PWM,IIC,SPI....)十八:八股SPI介绍(信号线,怎么给某一个地址发数据)十九:SPI的CLK谁提供,怎么给某个地址使用SPI发数据二十:IIC八股(信号线)二十一:IIC可以挂载多少个设备二十二:有没有使用过其他协议(CAN,直接分装)二十三:数据结构(没复习忘光了,估计就寄这里了)二十四:学的最好的是哪些(单片机+ROS)二十五:链表有那些(单向,双向,循环,静态链表)二十六:爱好(飞航模,博客,小红书)二十七:博客访问量(4w+),小红书规模(嵌入式交流群200人左右)二十八:询问家庭情况。为什么要去深圳实习(本来以为技术部分感觉从这里就结束了)二十九:面试官2开始了用串口封装过什么功能(VOFA)三十:会使用什么工具进行单片机调试(VOFA,野火上位机,示波器)三十一:怎么处理BUG(keil打断点,注释找问题)三十二:串口怎么防止丢包(韦东山环形缓冲区,这块答的不好,还是因为数据结构)三十三:为什么使用WIFI。三十四:TCP-IP上层封装(估计他想听网络哪方面的知识,但是我用的那个是通过串口)三十五:激光测距的得到的是什么东西(八个距离值)三十六:测距的频率(10ms一次,一秒100次)三十七:算法部分是你负责的吗(另外一个队友)三十八:LCD显示数字怎么处理的(答了用取模软件取子模,相当于把他当图片显示了,用数组存储)三十九:采样数据为什么这么少,后面为什么没有优化,有没有遇到数据处理的问题(时间不够,处理机械问题花了很长时间)反问一:MCU方向和Linux那个方向好一点二:面试中我的问题(毫无疑问,数据结构部分)总结:面试官很好,问的问题也很基础,个人感觉除了数据结构那部分其他答的还可以,被挂了也能接受,不过还是希望能过吧,等下周出结果吧。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-16 22:33
杉川机器人 嵌入式工程师 18.0k*13.0, 年终奖1~9个月浮动
点赞 评论 收藏
分享
评论
7
14
分享

创作者周榜

更多
牛客网
牛客企业服务