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尾部校验(校验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/84051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SIL2/PLd 认证 Inxpect毫米波安全雷达:3D 扫描 + 微小运动检测守护工业安全

Inxpect 成立于意大利,专注工业安全技术。自成立起,便致力于借助先进雷达技术提升工业自动化安全标准,解决传统安全设备在复杂环境中的局限,推出获 SIL2/PLd 和 UL 认证的安全雷达产品。 Inxpect 的雷达传感器技术优势明显。相较于…

Python数据可视化再探——Matplotlib模块 之一

目录 第一章 Matplotlib 模块教学内容​——基础图形绘制 一、Pyplot 子库介绍​ 1. 功能概述​ 2. 常用函数​ 二、绘制基本图形​ 1. 柱状图​ 2. 条形图​ 3. 折线图​ 4. 散点图​ 5. 面积图​ 6. 饼状图​ 7. 圆环图​ ​编辑 三、绘图知识点详解​ 1. 绘图…

智慧在线判题OJ系统项目总体,包含功能开发思路,内部中间件,已经部分知识点

目录 回顾一下xml文件怎么写 哪个地方使用了哪个技术 MyBatis-Plus-oj的表结构设计, 管理员登录功能 Swagger Apifox​编辑 BCrypt 日志框架引入(slf4jlogback) nacos Swagger无法被所有微服务获取到修改的原因 身份认证三种方式: JWT(Json Web Json,一…

使用Spring Boot和Spring Security构建安全的RESTful API

使用Spring Boot和Spring Security构建安全的RESTful API 引言 在现代Web应用开发中,安全性是至关重要的。Spring Boot和Spring Security是Java生态中广泛使用的框架,它们提供了强大的工具来保护RESTful API。本文将介绍如何结合Spring Boot和Spring S…

虚幻引擎5-Unreal Engine笔记之`GameMode`、`关卡(Level)` 和 `关卡蓝图(Level Blueprint)`的关系

虚幻引擎5-Unreal Engine笔记之GameMode、关卡(Level) 和 关卡蓝图(Level Blueprint)的关系 code review! 参考笔记: 1.虚幻引擎5-Unreal Engine笔记之GameMode、关卡(Level) 和 关卡蓝图&…

Java+Selenium+快代理实现高效爬虫

目录 一、前言二、Selenium简介三、环境准备四、代码实现4.1 创建WebDriver工厂类4.2 创建爬虫主类4.3 配置代理的注意事项 六、总结与展望 一、前言 在Web爬虫技术中,Selenium作为一款强大的浏览器自动化工具,能够模拟真实用户操作,有效应对…

SpringBoot配置文件的合并

需求:想分类将mysql数据库的配置放在一个文件,redis的配置放在另外一个文件 就不去引入mysql和redis了,看能否得到值就行了 测试结果 model的包放错了 应该移动到demo里 能否用yml或者yaml呢 这里注意yml的写法 测试结果也是可以的 注意如果主配置文件是yml或者yaml的话

深入理解 BFC:网页布局的关键机制

在前端开发的世界里,网页布局是一项至关重要的任务。而在众多布局相关的概念中,BFC(Block Formatting Context,块级格式化上下文)扮演着极为关键的角色。今天,就让我们深入剖析 BFC 的方方面面。 一、BFC …

04-Web后端基础(基础知识)

而像HTML、CSS、JS 以及图片、音频、视频等这些资源,我们都称为静态资源。 所谓静态资源,就是指在服务器上存储的不会改变的数据,通常不会根据用户的请求而变化。 那与静态资源对应的还有一类资源,就是动态资源。那所谓动态资源&…

Vue3 Element Plus el-table-column Sortable 排序失效

问题描述&#xff1a; vue3中 element plus 中 el-table 的 el-table-column使用了插槽后&#xff0c;为什么sortable不起效果&#xff0c;不能点击排序 <el-table-columnlabel"记账日期"width"110"fixed"left"header-align"left"…

Unity中SRP Batcher使用整理

SRP Batcher 是一种绘制调用优化,可显著提高使用 SRP 的应用程序的性能,SRP Batcher 减少了Unity为使用相同着色器变体的材质准备和调度绘制调用所需的CPU 时间。 工作原理: 传统优化方法通过减少绘制调用次数提升性能,而SRP Batcher的核心理念在于降低绘制调用间的渲染状…

服务器的基础知识

什么是服务器 配置牛、运行稳、价格感人的高级计算机&#xff0c;家用电脑不能比拟的。 服务器的组成&#xff1a;电源、raid卡、网卡、内存、cpu、主板、风扇、硬盘。 服务器的分类 按计算能力分类 超级计算机 小型机AIX x86服务器&#xff08;服务器cpu架构&#xff09; …

服务器网络配置 netplan一个网口配置两个ip(双ip、辅助ip、别名IP别名)

文章目录 问答 问 # This is the network config written by subiquity network:ethernets:enp125s0f0:dhcp4: noaddresses: [192.168.90.180/24]gateway4: 192.168.90.1nameservers:addresses:- 172.0.0.207- 172.0.0.208enp125s0f1:dhcp4: trueenp125s0f2:dhcp4: trueenp125…

高级SQL技巧:时序数据查询优化与性能调优实战

高级SQL技巧&#xff1a;时序数据查询优化与性能调优实战 引言 在现代数据驱动型系统中&#xff0c;时序数据&#xff08;时间序列数据&#xff09;正成为企业核心资产之一。然而&#xff0c;随着数据量激增和复杂业务需求的不断涌现&#xff0c;传统的SQL查询方式已难以满足…

DDoS攻击应对指南:提升网站安全性的有效策略

DDoS&#xff08;分布式拒绝服务&#xff09;攻击成为了企业面临的主要网络安全威胁之一。随着技术的不断发展&#xff0c;DDoS攻击手段也在不断升级&#xff0c;给企业的网络安全带来了极大的挑战。针对这一问题&#xff0c;企业需要采取有效的防御措施&#xff0c;以保障网站…

Appium 的 enableMultiWindows 参数

引言 在移动应用自动化测试中&#xff0c;​​混合应用&#xff08;Hybrid App&#xff09;​​ 和多窗口场景&#xff08;如分屏、弹窗、多 WebView&#xff09;的处理一直是技术难点。Appium 的 enableMultiWindows 参数为这类场景提供了关键支持&#xff0c;但在实际使用中常…

C++中的菱形继承问题

假设有一个问题&#xff0c;类似于鸭子这样的动物有很多种&#xff0c;如企鹅和鱿鱼&#xff0c;它们也可能会有一些共同的特性。例如&#xff0c;我们可以有一个叫做 AquaticBird &#xff08;涉禽&#xff0c;水鸟的一类&#xff09;的类&#xff0c;它又继承自 Animal 和 Sw…

前端excel表格解析为json,并模仿excel显示

前端环境&#xff1a;elementUI vue2 <style lang"scss" scoped> 页面效果 jsondata为mock数据&#xff0c;为方便调试其内容可清空&#xff0c;首行&#xff08;字母坐标&#xff09;随数据内容自动变化&#xff0c;首列也是一样&#xff0c;模拟excel …

NAT(网络地址转换)逻辑图解+实验详解

原理 NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09; 是一种网络技术&#xff0c;用于在IP数据包通过路由器或防火墙时&#xff0c;修改其源IP地址或目标IP地址&#xff0c;以实现不同网络之间的通信。 基础概念 本来NAT是来解决 IPv4 地…

Qt+线段拖曳示例代码

Qt线段拖曳示例代码&#xff0c;功能见下图。 代码如下&#xff1a; canvaswidget.h #ifndef CANVASWIDGET_H #define CANVASWIDGET_H#include <QWidget> #include <QPainter> #include <QMouseEvent> #include <QVector>class CanvasWidget : publi…