华为嵌入式软件工程师面试

1. 交叉编译器使用场景:区分交叉编译与本地编译,举例x86主机编译ARM架构程序
2. memcpy()与strcpy()区别:memcpy操作内存块,strcpy操作字符串,strcpy易出现缓冲区溢出
3. 多条件if-else优化:用switch-case、查表法或状态模式
4. STM32串口接收模式:对比轮询/中断/DMA,优先推荐DMA(资源占用少)
5. IIC接口剖析:含7位/10位地址模式,理论支持127个设备,实际受总线电容限制
6. FreeRTOS任务调度:核心是优先级调度+时间片轮转,需掌握上下文切换过程
7. 数据积压解决:增加缓冲区、优化算法降采样率、多线程处理
8. 实时性保障:优化中断响应、合理设任务优先级、启用看门狗机制
9. Linux与FreeRTOS对比:从内核大小、实时性、内存管理区分,结合应用场景分析
10. Flash寿命优化:用磨损均衡算法、数据压缩存储、优化缓存策略
全部评论

相关推荐

📍面试公司:卓yu🕐面试时间:12.26💻面试岗位:嵌入式软件实习生❓面试问题:一、基础编程概念1. 指针变量是什么?指针变量和变量有什么区别?2. 指针变量的大小是多少?指针变量做++操作会移动多少?3. 如果函数返回一个局部变量的地址,会出现什么情况?4. 如何将程序跳转到一个指定的地址?会用汇编写吗?二、硬件通信协议串口(UART)1. 串口的数据帧格式是怎样的?有校验位吗?如果连续传输字节流,该如何传输?怎么保证数据的正确性?2. 你使用串口传输数据时,代码是怎么写的?如果数据包中某一位出现错误,该怎么办?如何检测这个错误?SPI1. SPI支持多从机吗?主机是如何和从机通信的?2. 使用SPI传递大量数据时,有考虑使用DMA吗?3. 如果使用DMA优化SPI传输过程,会怎么做?4. 考虑过循环双缓冲模式吗?双缓冲是怎么工作的?FIFO在这里怎么使用?怎么读、处理数据,是否使用中断?用的是半传输中断还是其他中断?I2C(IIC)1. 说说IIC:仲裁是什么?怎么实现的?起始信号是什么?2. 在项目中使用过IIC吗?出现过什么错误?是怎么解决的?ADC与数据序1. 为什么选择使用AD作为ADC芯片?如何使用AD读取数据?2. AD芯片读取的是大端序还是小端序?STM32是大端序还是小端序?该如何处理?传感器(MPU6050)1. 如何使用MPU6050读取数据的?怎么移植官方提供的库或者例程?三、系统内核与底层机制1. 了解FreeRTOS的哪些特性?2. PendSV的优先级是?上下文切换过程是怎么样的?保存和恢复了哪些内容?3. 使用DMA优化传输的具体实现思路?四、项目实操与问题解决1. 在项目中遇到的最大的困难或者问题是什么?如何解决的?有没有思考过问题产生的原因?🙌面试感想:项目可能比较简单,所以问的比较多,已oc
查看19道真题和解析
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务