嵌入式软件开发面试重点项

最近准备面试了,梳理一些面试经常考试的细节点,不然每次都要去整理,答案未给出。

一、C语言基础

1.1、字节对齐

link Struct和Union字节对齐的内存占用计算方法
link 怎么计算union和struct中字节数计算

1.2、union数据空间大小计算

link 怎么计算union和struct中字节数计算
link union、struct、class占用的字节数

1.3、多级指针和多维数组

link 一维数组名、取数组首元素地址、取数组名地址三者值与含义辨析
link C 语言 —— 指针和多维数组
link 字符串指针数组详解
link [C语言]二维数组传参的格式(详细+总结)

1.4、常量指针和指针常量

link 详解指针常量和常量指针

1.5、C语言编译过程

预处理,编译,汇编,链接
link C语言编译过程详解

1.6、算法、红黑树、二叉树(未研究)

1.7、编写双向链表、链表队列

1.8、一些标准库函数的实现(应届毕业会考)

link memcpy/memset函数的c语言实现
link strcpy函数的实现
link strcmp函数的C语言实现
link strcat函数

1.9、静态内存和动态内存

link 动态内存与静态内存的区别
link 动态内存分配与静态内存分配

二、FreeRTOS 操作系统

2.1、任务状态关系图

link FreeRTOS任务概述

2.2、消息队列、信号量、事件组、任务通知

link FreeRTOS消息队列、信号量、事件标志组、任务通知

2.3、任务切换的细节,PENDSV内部执行的细节

link FreeRTOS高级篇4—FreeRTOS任务切换分析

2.4、内存管理的5种模式,每种模式内存管理方式

link FreeRTOS高级篇7—FreeRTOS内存管理分析

2.5 调度方式

抢占式、时间片轮转、合作式
link freertos中任务的调度方式

2.6、 堆和栈,任务栈区别

link FreeRTOS ------ 栈、堆、任务栈

三、LINUX

3.1、TCP/IP的三次握手,4次挥手

link TCPIP协议详解

3.2、虚拟内存

link 【Linux】Linux的虚拟内存详解(MMU、页表结构)
link 深入Linux内核(内存篇)—页表映射分页

3.3、文件管理 (一般不问)

3.4、 UBOOT启动细节(驱动开发,一般问不到)

四、嵌入式

4.1、UART、SPI、I2C、CAN、LIN、USB细节

link UART详解
link 一文搞懂SPI通信协议
link I2C详解(一)
link LIN总线详细介绍
link USB协议简介
link CAN通信详解
link 以太网详解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介绍

4.2、启动文件分析

link STM32启动文件分析(startup_stm32f10x_md.s)

4.3、 DMA传输

4.4、FAT32文件系统

link 扇区(sector),块(block),簇(cluster)
link 详解FAT32文件系统
link FatFs源码剖析
link FAT32文件系统结构

4.5、bootloader(没见人问过,车企的bootloader还是复杂的)

4.6、IP网络层细节

4.7、蓝牙细节(只会使用芯片厂商接口,未学到手)

link 蓝牙4.0 BLE 广播包解析

4.8、FLASH数据存储段

Code为程序代码部分
RO-data 表示 程序定义的常量const temp;
RW-data 表示 已初始化的全局变量
ZI-data 表示 未初始化的全局变量
Code, RO-data,RW-data …flash
RW-data, ZIdata…RAM
link .bss .data .text 与Code, RO-data , RW-data, ZI-data的关系

五、应用层协议

5.1、MODBUS协议

link modbus的03,06,10,14,15,17指令

5.2、UDS刷写

link UDS诊断看这篇就够了,吐血整理
link 基于CAN总线的汽车诊断协议UDS (网络层 ISO 15765)
link UDS(一)入门概述
link UDS(二)网络层
link UDS(三)网络层时间参数
link UDS(四)应用层
link UDS(五)应用层10/3E

5.3、MQTT协议

link MQTT协议详解

5.4、HTTP协议(需要去学习)

六、随机提问

6.1、在你做过的所有项目中出现的最难的或者最棘手的事情是什么?

6.2、你的嵌入式发展方向或者你的规划目标?

6.3、你对我们公司了解多少?

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

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

相关文章

灯塔:CSS笔记(2)

一 选择器进阶 后代选择器:空格 作用:根据HTML标签的嵌套关系,,选择父元素 后代中满足条件的元素 选择器语法:选择器1 选择器2{ css } 结果: *在选择器1所找到标签的后代(儿子 孙子 重孙子…

基于SSM的党务政务服务热线平台(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的党务政务服务热线平台(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spri…

503. 下一个更大元素 II

503. 下一个更大元素 II 题目链接&#xff1a;503. 下一个更大元素 II 代码如下&#xff1a; class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {vector<int> res(nums.size(),-1);stack<int> sta;//单调栈sta.push…

mac本地启动sentinel

启动Sentinel控制台 1&#xff09;下载sentinel控制台jar包 https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar 2&#xff09;启动sentinel控制台 使用如下命令启动控制台&#xff1a; java -Dserver.port8080 -Dcsp.sentinel.d…

python淘宝网页爬虫数据保存到 csv和mysql(selenium)

数据库连接设置&#xff08;表和字段要提前在数据库中建好&#xff09; # 数据库中要插入的表 MYSQL_TABLE goods# MySQL 数据库连接配置,根据自己的本地数据库修改 db_config {host: localhost,port: 3306,user: root,password: ma*****6,database: may2024,charset: utf8mb…

第七节 JDBC Statements, PreparedStatement和CallableStatement语句

当获得了与数据库的连接后&#xff0c;就可以与数据库进行交互了。 JDBC Statement&#xff0c;CallableStatement和PreparedStatement接口定义了可用于发送SQL或PL/SQL命令&#xff0c;并从数据库接收数据的方法和属性。 它们还定义了有助于在Java和SQL数据类型的数据类型差异…

SSRF漏洞原理及其修复方式和加固方式

SSRF&#xff08;Server Side Request Forgery&#xff09;服务器端请求伪造漏洞是一种安全漏洞&#xff0c;攻击者利用该漏洞可以发起任意的网络请求&#xff0c;并可能访问内部系统资源。 SSRF漏洞的原理是&#xff0c;服务器端应用程序未对从用户输入中获取的URL进行充分验…

Flink 物理执行图

文章目录 物理执行图一、Task二、ResultPartition三、ResultSubpartition四、InputGate五、InputChannel 物理执行图 JobManager根据ExecutionGraph对作业进行调度&#xff0c;并在各个TaskManager上部署任务。这些任务在TaskManager上的实际执行过程就形成了物理执行图。物理…

Linux环境下使用线程方式操作UART读写功能

目录 概述 1 Linux环境下UART设备 2 轮询方式操作UART功能实现 2.1 打开串口函数&#xff1a;usr_serial_open 2.2 关闭串口函数&#xff1a; usr_serial_close 2.3 发送数据函数&#xff1a; usr_serial_sendbytes 2.4 接收数据函数&#xff1a; thread_uart_readbytes …

问题解决 | vscode无法连接服务器而ssh和sftp可以

解决步骤 进入家目录删除.vscode-server rm -rf .vscode-server 然后再次用vscode连接服务器时&#xff0c;会重新安装&#xff0c;这时可能报出一些缺少依赖的错 需要联系管理员安装相关依赖&#xff0c;比如 sudo apt-get install libstdc6 至此问题解决

Go语言框架路由Controller控制器设计思路gin路由根据控制器目录分层生成路由地址

Controller设计好处 框架设计用controller分请求路由层级&#xff0c;应用从app目录开始对应请求url路由地址&#xff0c;这样设计师方便开发时候通过请求地址层级快速定位接口方法对应的代码位置。 例如api接口请求路径为&#xff1a;​​http://localhost:8110/​​busines…

部署 LVS(nginx)+keepalived高可用负载均衡集群

目录 一、集群的概述 1、什么是集群 2、普通集群与负载均衡集群 2.1 普通集群&#xff08;Regular Cluster&#xff09; 2.2 负载均衡集群&#xff08;Load Balancing Cluster&#xff09; 2.3 高可用集群&#xff08;High Availability Cluster&#xff09; 2.4 区别 …

【LeetCode 算法专题突破】---二分查找(⭐⭐⭐)

前言 我在算法题目的海洋中畅游已久&#xff0c;也曾在算法竞赛中荣获佳绩。然而&#xff0c;我发现自己对于算法的学习&#xff0c;还缺乏一个系统性的总结和归类。尽管我已经涉猎过不少算法类型&#xff0c;但心中仍旧觉得有所欠缺&#xff0c;未能形成完整的算法体系。 因…

服务器又被挖矿记录

写在前面 23年11月的时候我写过一篇记录服务器被挖矿的情况&#xff0c;点我查看。当时是在桌面看到了bash进程CPU占用异常发现了服务器被挖矿。 而过了几个月没想到又被攻击&#xff0c;这次比上次攻击手段要更高明点&#xff0c;在这记录下吧。 发现过程 服务器用的是4090…

贪心算法(greedy algorithm,又称贪婪算法)详解(附例题)

目录 基本思想一&#xff09;概念二&#xff09;找出全局最优解的要求三&#xff09;求解时应考虑的问题四&#xff09;基本步骤五&#xff09;贪心策略选择六&#xff09;实际应用 1.零钱找回问题2.背包问题3.哈夫曼编码4.单源路径中的Djikstra算法5.最小生成树Prim算法 基本…

TCP包头

TCP包头: 1.序号:发送端发送数据包的编号 2.确认号:已经确认接收到的数据的编号(只有当ACK为1时,确认号才有用) TCP为什么安全可靠: 1.在通信前建立三次握手连接 SYN SYNACK ACK SYN是TCP包头的一个字段 tcp.port 端口号 抓包数据 2.在通信过程中通过序…

使用Apache Kafka的Golang实践指南

您是否在寻找构建可扩展、高性能应用程序的方法&#xff0c;这些应用程序可以实时处理流数据&#xff1f;如果是的话&#xff0c;结合使用Apache Kafka和Golang是一个很好的选择。Golang的轻量级线程非常适合编写类似Kafka生产者和消费者的并发网络应用程序。它的内置并发原语&…

探索HTTP协议:网络通信的基石

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

微信小程序重新加载页面 刷新页面

重新加载页面 使用wx.reLanuch&#xff08;&#xff09;&#xff0c;url: 路径当前页面跳转, 页面所有数据重新初始化&#xff0c;已配置的数据不会保存 wx.reLaunch({url: /pages/orders/createOrder/createOrder, // 当前页面的路径}) reLanuch()的方法&#xff0c;会有一个…

【CSP试题回顾】202109-2-非零段划分

CSP-202109-2-非零段划分 关键点&#xff1a;差分数组 详见&#xff1a;【CSP考点回顾】差分数组 时间复杂度分析 使用差分数组的优势在于&#xff0c;它将问题转化为了在一次遍历中识别并利用关键变化点&#xff08;波峰和波谷&#xff09;&#xff0c;从而避免了对每个可能…