汇川嵌入式一面面经

这场面试问的问题还是比较多,但是个人感觉面试的内容还是八股文多一些。RTOS这方面内容比较多。

一、C语言与底层基础

  1. 解释一下 volatile 关键字的作用,以及在寄存器操作中的使用场景。
  2. 什么是内存对齐?在 ARM Cortex-M 内核中如果访问不对齐会发生什么?
  3. 如何通过位运算实现寄存器某一位的置 1、清 0 和翻转?
  4. C 语言中结构体的内存布局规则是什么?为什么会有填充字节?
  5. 如何实现一个无锁的环形缓冲区?

二、单片机与寄存器

  1. 描述 STM32 启动文件(startup.s)里 Reset_Handler 的作用。
  2. 如何通过寄存器配置 NVIC 的中断优先级?
  3. 定时器 PWM 输出的寄存器配置步骤有哪些?
  4. 在裸机下如何实现一个精确延时?为什么用寄存器比软件延时更可靠?
  5. DMA 搬运数据时,相关寄存器一般需要配置哪些?

三、RTOS(RT-Thread & FreeRTOS)

  1. 任务控制块(TCB)一般包含哪些核心内容?
  2. RTOS 的任务切换是如何实现的?ARM Cortex-M 下为什么要用 PendSV?
  3. 在 RTOS 中,如何实现任务间通信?常见的 IPC 机制有哪些(信号量、消息队列、邮箱、事件集等)?
  4. FreeRTOS 的二值信号量和互斥锁(mutex)有什么区别?适用场景各是什么?
  5. 如果两个相同优先级的任务在 RTOS 中频繁切换,会出现什么问题?如何避免?
  6. RTOS 的 tick 周期是如何配置的?如果 tick 周期太大或太小会带来什么影响?
  7. RTOS 的 idle 任务有什么作用?为什么不能删除?
  8. FreeRTOS 的软件定时器是如何运行的?对应的后台任务机制是什么?
  9. RT-Thread 的设备驱动框架是怎么设计的?用户如何使用一个新注册的设备?
  10. 在 RTOS 中如何实现一个实时数据采集系统(采集 → 处理 → 上传)的任务划分?优先级应如何设置?

四、综合与应用场景

  1. 如果要在 RTOS 下实现一个多任务电机控制系统,你会如何分配任务优先级?
  2. RT-Thread 和 FreeRTOS 在任务优先级数量上的设计有什么不同?各自有什么优缺点?
  3. 如果一个任务需要频繁访问寄存器数据,怎样保证其实时性?
  4. 在工控场景下,RTOS 和裸机开发的选择依据是什么?

全网最全面的嵌入式八股文专栏:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

#发面经攒人品#
全部评论
问的可真难啊
1 回复 分享
发布于 昨天 16:08 江苏
感谢分享
点赞 回复 分享
发布于 今天 11:58 上海

相关推荐

09-15 10:05
西北大学 golang
点赞 评论 收藏
分享
大名鼎鼎楚雨荨:我寻思这不才刚二面?
秋招的第一个offer,...
点赞 评论 收藏
分享
评论
点赞
13
分享

创作者周榜

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