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

001 嵌入式软件开发工程师实习篇面试——首战总结

2025年5月17日人生中第一次面试

紧张是藏不住的。但是不应该的。

目录

0.准备一份合适的自我介绍

1.结构体内存对齐问题

2.变量在内存中的存储模式

3.嵌入式中程序框架有哪些

4.程序代码设计要遵循什原则

 5.版本号书写

6.单片机最小系统板有哪些组成

必须:

非必须:

7.复位方式有哪些

硬件复位

软件复位

其他复位类型

8.hex文件和bin文件有什么区别

9.如何导出bin文件,如何在bin文件中添加第三方的校验或者序列号

导出bin文件

添加校验

序列号管理

10.嵌入式中阶梯形状的波形可以用哪些实现

11.12位ADC中测到的数值为n对应的电压是多少

12.采样电阻作用是什么

1. 电流与电压测量

2. 系统保护与安全控制——监控电压电流

3. 功率计算与能效分析

13.一个GPIO如何控制一个多个按键

二极管扩展法

大概就是电阻配合二极管配合电路网络生成不同逻辑电平(数字输入)或者电压(ADC)

电阻分压法(ADC方案)

充放电时间检测法(GPIO+RC方案)

14.按键LED有哪些模式

15.PA0和PB0引脚能不能一起作为外部中断信号输入

16.STM32中起始地址是多少,每次读取写入数据的长度大小是多少,他的擦除方式有哪些

Flash起始地址——0x0800 0000        结束地址取决于芯片型号

读写数据长度

擦除方式

17.如何获取芯片序列号

18.如何降低单片机功耗

低功耗模式

降低频率

关闭未使用的外设

减少CPU的计算负载

使用DMA

19.如何快速PID调参

20.一个完整的产品设计开发需要导出哪些设计文件

一、需求分析阶段

二、硬件设计阶段

三、软件开发阶段

四、测试验证阶段

五、生产制造阶段

六、认证与合规

七、产品交付文件

八、维护与迭代

21.如何快速掌握单片机应用

0.准备一份合适的自我介绍

1.结构体内存对齐问题

数据地址是数据类型大小的整数倍,则触发单周期访问。未对齐访问会触发总线错误(HardFault)或产生多次内存操作。

2.变量在内存中的存储模式

小端序

3.嵌入式中程序框架有哪些

框架类型资源占用实时性开发复杂度适用场景
顺序执行的前后台系统简单简单MCU控制
时间片轮询系统一般中等中等复杂度任务轮询
RTOS复杂高实时性、多任务系统
Linux嵌入式架构一般复杂复杂功能设备(如网关、服务器)
硬件抽象层框架一般中等跨平台开发、快速原型

状态机

4.程序代码设计要遵循什原则

1、简单、明了、清晰:

2、精简

3、保持第三方代码风格

4、减少封装

5.注释信息:文件信息注释(文件开头)、函数的注释、代码注释

作用域标识

  • 全局变量:以 g_ 前缀标识(如 g_system_state),避免滥用全局变量。
  • 静态变量:以 s_ 前缀标识(如 s_counter),提升模块封装性。
  • 结构体变量:以 st_ 前缀标识(如 st_date),区分普通变量。
  • 指针:以 p_ 前缀标识(如 p_data),明确指针类型
场景规范命名不规范命名说明
全局变量、文件名g_sensor_valuevalue明确作用域和用途。
结构体成员st_time.yearyear区分结构体内外变量。
局部变量sensor_value(小写,无须作用域)value明确数据来源和类型。
函数App_InitMotor(首字母大写)InitMotor明确模块归属
函数指针p_callback_funcfunc明确指针类型。
常量宏定义MAX_BUFFER_SIZEmaxsize全大写+下划线,区分变量与常量。

 5.版本号书写

参考金典的:V1.2.3.20240518_rc(主版本1,次版本2,修订3,2024年5月18日构建,候选版本)

HAL_LABL_V2.1.1.20250518_rc

6.单片机最小系统板有哪些组成

必须:

主芯片(单片机核心)

电源电路

时钟电路(晶振)

复位电路

需启动电路

程序下载电路

非必须:

指示与扩展电路

7.复位方式有哪些

硬件复位
  • 外部复位:通过外部信号触发,低电平复位信号。通常连接到单片机的复位引脚(如NRST)
  • 电源复位:当系统上电或电源不稳定时,由电源管理电路自动触发的复位
  • 看门狗复位:看门狗定时器未在规定时间内被刷新,系统认为程序运行异常,自动触发复位
软件复位
  • 指令复位:通过执行特定的非法指令或访问非法地址,强制触发硬件复位
  • 寄存器复位:通过向特定的控制寄存器写入复位命令,实现软件控制的复位
其他复位类型
  • 上电复位(POR):系统首次上电时触发的复位,确保系统从已知的初始状态开始运行
  • 系统复位:影响整个系统,包括CPU、外设和内存等,恢复到默认状态
  • 模块复位:仅对特定模块或外设进行复位,不影响其他部分
  • 备份域复位:针对备份区域(如RTC和备份寄存器)的复位,通常用于低功耗模式
  • 低功耗复位:在系统进入低功耗状态时触发的复位,确保系统正确退出低功耗模式

8.hex文件和bin文件有什么区别

  • HEX文件:适合需要地址信息和校验的复杂场景,如ISP烧录和调试。
  • BIN文件:适合简单烧录或地址固定的系统,文件更紧凑且烧录效率更高
属性HEX文件BIN文件
格式ASCII文本(带元数据)纯二进制数据
地址信息包含起始地址,支持分段映射无地址信息,需手动指定起始地址
校验机制每行校验和确保数据完整性无校验,需额外处理数据完整性
文件大小较大(含元数据)较小(仅数据)
可读性可读(适合调试)不可读(需工具解析)
典型用途复杂场景(多段地址映射、ISP烧录)简单任务(Bootloader升级、固定地址)

9.如何导出bin文件,如何在bin文件中添加第三方的校验或者序列号

导出bin文件

1.调用工具链,Keil mdk中添加生成语句:fromelf --bin --output=@L.bin !L

2.GCC工具链生成:arm-none-eabi-objcopy -O binary -S ${ProjName}.elf ${ProjName}.bin

添加校验

方案1:CRC尾部校验(校验

相关文章:

  • ‘https://start.aliyun.com/‘ 的初始化失败 请检查 URL、网络和代理设置。
  • NHANES指标推荐:UHR
  • Vue.js教学第五章:计算属性与侦听器详解
  • Google Gen AI Python SDK 开发教程
  • 代码案例分析
  • 内容中台智能推荐系统构建与演进
  • 大学之大:墨西哥国立自治大学2025.5.18
  • 串口通讯协议学习
  • 通过觅思文档项目实现Obsidian文章浏览器在线访问
  • 代码随想录-数组
  • Qt 信号和槽-核心知识点小结(11)
  • 创业分析平台Web端-三大前端核心语言详解-首页index
  • 71. 简化路径
  • 低功耗模式介绍
  • Kotlin协程异常处理全解析
  • 渗透测试核心技术:信息收集与扫描
  • 计算机系统的工作原理
  • 学习wps的书写格式(题目黑体,加粗,三号)
  • Python列表全面解析:从入门到精通
  • defer关键字:延迟调用机制-《Go语言实战指南》
  • 中国旅游日|上天当个“显眼包”!体验低空经济的“飞”凡魅力
  • 见微知沪|科学既要勇攀高峰,又要放低身段
  • 租车订单时隔7年从花呗免密扣费?“GoFun出行”引质疑
  • 上海高院与上海妇联签协议,建立反家暴常态化联动协作机制
  • 讲武谈兵|视距外的狙杀:从印巴空战谈谈超视距空战
  • 遭“特朗普关税”冲击,韩国今年经济增长预期“腰斩”降至0.8%