嵌入式面试笔试刷题(day10)

文章目录

  • 前言
  • 一、数组和链表的区别
  • 二、什么是内存对齐
  • 三、IIC的时序
  • 四、static作用
  • 五、查看tty设备的方法
  • 六、查找指定文件命令
  • 七、三次握手和四次挥手
    • 1.三次握手
    • 2.四次挥手
  • 八、半关闭状态
  • 九、字节流和数据报
  • 总结


前言

本篇文章继续讲解笔试和面试。

一、数组和链表的区别

1.内存:

数组使用连续的内存块来存储元素,每个元素在内存中占据固定大小的空间。这样的存储方式使得数组的访问速度快,通过索引即可直接访问任意位置的元素。

链表使用分散的内存块来存储元素,每个元素(节点)在内存中可以位于任意位置。每个节点包含了存储数据的部分和指向下一个节点的指针。这种存储方式使得插入和删除操作更加灵活,但访问元素需要遍历整个链表。

2.性能:

数组的访问速度快,通过索引可以直接访问任意位置的元素,时间复杂度为 O(1)。但是在插入和删除元素时,需要移动其他元素来保持连续性,导致时间复杂度为 O(n)。

链表在插入和删除元素时,只需要修改指针的指向,所以插入和删除的时间复杂度可以达到 O(1)。但是在访问元素时,需要遍历链表,时间复杂度为 O(n)。

3.操作复杂度:

数组的插入和删除操作需要移动其他元素,因此操作复杂度较高。在插入和删除元素的场景较多时,数组性能不如链表。

链表的插入和删除操作只需要改变指针的指向,操作复杂度较低。在需要频繁执行插入和删除操作的场景中,链表更加适合。

数组适合于需要频繁访问元素的场景,而链表适用于需要频繁插入和删除元素的场景。

二、什么是内存对齐

内存对齐是指在存储数据时,将数据按照一定规则放置在内存中的过程。

三、IIC的时序

1.开始信号(Start Signal):主设备发送一个低电平的信号,表示即将开始通信。

2.从设备地址(Device Address):主设备发送从设备的地址,主要用于指定与之通信的从设备。地址包括一个7位的从设备地址和读/写位。读/写位用于指示主设备是要进行读操作还是写操作。

3.应答信号(Acknowledge Signal):每次发送地址或数据后,发送方会释放SDA线(串行数据线),然后接收方会发送应答位。如果接收到的正确数据,则发送一个低电平的应答(ACK)信号;如果接收到的数据有误或不需要发送应答,则发送一个高电平的非应答(NACK)信号。

4.读或写操作(Read or Write Operation):主设备通过传输数据来完成读或写操作。在读操作中,从设备向主设备发送数据;在写操作中,主设备向从设备发送数据。

5.停止信号(Stop Signal):主设备发送一个高电平的停止信号,表示通信结束。

四、static作用

static关键字在C语言中可以用于静态变量、静态函数、静态全局变量和静态局部变量。它们的具体作用包括控制变量的生命周期、作用域以及对其他文件的可见性。

五、查看tty设备的方法

使用ls /dev/tty*
在这里插入图片描述

六、查找指定文件命令

1.使用find命令:

find <路径> -name <文件名>

<路径>:指定要搜索的起始路径。可以是根目录 /,也可以是当前目录 .,或者其他指定的目录。
-name <文件名>:指定要查找的文件名。可以使用通配符进行模糊匹配,如 * 表示任意字符。

2.使用locate命令:

locate <文件名>

<文件名>:指定要查找的文件名。与find不同,locate命令使用基于数据库的搜索,因此速度较快。

七、三次握手和四次挥手

1.三次握手

1.第一次握手(SYN):客户端向服务器发送一个带有 SYN(同步)标志的包,用于请求建立连接。发送方选择一个初始的序列号(Sequence Number)作为起始值,并将 SYN 标志置为1。

2.第二次握手(SYN+ACK):服务器收到客户端的 SYN 包后,确认收到,并向客户端发送一个带有 SYN 和 ACK(应答)标志的包。服务器也会为自己选取一个初始的序列号,并将客户端的序列号加1作为确认号(Acknowledgment Number)。

3.第三次握手(ACK):客户端收到服务器的 SYN+ACK 包后,向服务器发送一个带有 ACK 标志的包作为确认。该包中的序列号被设置为收到的确认号加1。

在这里插入图片描述

2.四次挥手

1.第一步(FIN1):
主动关闭连接的一方(称为发起者)向对方发送一个带有 FIN(Finish)标志的 TCP 报文段。
发起者不再发送数据,但仍可以接收对方发送的数据。

2.第二步(ACK1):
接收到 FIN 的一方(称为被动关闭者)收到 FIN 报文后,向发起者发送一个确认应答(ACK)报文,确认已收到 FIN。
被动关闭者仍可以发送剩余数据,直到发送和接收缓冲区中的数据都被传输完成。

3.第三步(FIN2):
被动关闭者发送一个带有 FIN 标志的报文段,表示它也希望关闭连接。
被动关闭者不再发送数据,但仍可以接收来自发起者的数据。

4.第四步(ACK2):
发起者接收到被动关闭者的 FIN 后,向被动关闭者发送一个确认应答,确认收到 FIN。
发起者等待一段时间,以确保对方收到确认应答。

在这里插入图片描述

八、半关闭状态

半关闭(Half-closed)状态是指在 TCP 连接中,一方关闭了它的输出流(发送数据),但仍然可以接收对方发送的数据。

九、字节流和数据报

字节流(TCP):

字节流是 TCP 中的传输方式,它将数据视为连续的字节流,没有明确的消息边界。
TCP 将数据划分为一个个的字节,并以无结构的方式在连接上进行传输。
发送方将数据以字节流的形式发送给接收方,接收方接收到字节后按照顺序重新组装成完整的数据。
具有可靠性和顺序性,TCP 通过序列号、确认号和重传机制来保证数据的可靠性和正确的顺序。

数据报(UDP):

数据报是 UDP 中的传输方式,它将数据视为独立的数据包,每个数据包之间是独立的。
UDP 将数据划分为一个个固定大小的数据报(通常称为 UDP 数据报或者 UDP 包)进行传输。
每个数据报都有自己的头部信息,包括源端口、目标端口和长度等,用于标识和组装数据。
数据报发送时不保证顺序和可靠性,接收方无法确保接收到的数据报的顺序和完整性。

总结

本篇文章就讲解到这里。

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

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

相关文章

PHP 使用ThinkPHP实现电子邮件发送示例

文章目录 首先我们需要设置我们的邮箱客户端授权&#xff0c;获取到授权码找到我们的邮箱设置去账号中找到这一堆服务&#xff0c;找到后开启smtp服务开启服务后管理服务 接下来需要去下载相应的第三方类库(我这里使用的是PHPMailer)在thinkPHP中封装一下邮件服务类实际调用效果…

数据结构—图的应用

6.4图的应用 概念回顾—生成树 生成树&#xff1a;所有顶点均由边连接在一起&#xff0c;但不存在回路的图。 一个图可以有许多棵不同的生成树、含有n个顶点 n-1 条边的图不一定是生成树所有生成树具有以下共同特点 生成树的顶点个数与图的顶点个数相同&#xff1b;生成树是图的…

如何运用小程序技术闭环运营链路?

如何通过线上小程序获取用户线索&#xff0c;提高企业抗风险能力&#xff0c;建立有效的营销数字化系统一直是困扰每一个小程序开发者与运营者的问题。 当我们选择使用小程序设计自己的运营流程时&#xff0c;从「推广」到「转化」&#xff0c;再到最终的「留存」都是运营过程…

ABeam×Startup丨德硕管理咨询(深圳)创新研究团队前往灵境至维·既明科技进行拜访交流

近日&#xff0c;德硕管理咨询&#xff08;深圳&#xff09;&#xff08;以下简称“ABeam-SZ”&#xff09;创新研究团队一行前往灵境至维既明科技有限公司&#xff08;以下简称“灵境至维”&#xff09;进行拜访交流&#xff0c;探讨线上虚拟空间的商业模式。 现场合影 &…

Qt扫盲-QWidget理论使用总结

QWidget理论使用总结 一、概述二、顶层 控件 和子 控件三、复合控件四、自定义控件和绘制五、大小提示和大小策略六、事件七、一组函数和属性八、QWidget样式表九、透明度和双缓冲十、创建半透明窗口 一、概述 widget 是用户界面的最小单位&#xff1a;它从window系统接收鼠标…

Jsoup爬取简单信息

1. 豆瓣图书最受关注 1.1 创建SpringBoot项目或者Maven项目 1.2 引入jsoup <dependency><!-- jsoup HTML parser library https://jsoup.org/ --><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.15.3<…

Qt应用开发(基础篇)——堆栈窗口 QStackedWidget

一、前言 QStackedWidget继承于QFrame&#xff0c;QFrame继承于QWidget&#xff0c;是Qt常用的堆栈窗口部件。 框架类QFrame介绍 QStackedWidget堆栈窗口&#xff0c;根据下标切换&#xff0c;一次显示一个小部件&#xff0c;常用于应用界面切换、图片轮询播放等场景。 二、QSt…

中小企业体育代言:探索费用策略与实际操作

随着体育市场的不断扩大和企业品牌的不断提升&#xff0c;中小型企业正逐渐将目光投向了体育明星代言&#xff0c;希望通过这一策略来提升品牌知名度、美誉度&#xff0c;进而吸引目标消费者的注意力并提升销售量。然而&#xff0c;中小型企业请体育明星代言的费用究竟是多少呢…

element-ui的el-dialog,简单的封装。

el-dialog是使用率很高的组件 使用el-dialog很多都是按照文档的例子&#xff0c;用一个变量控制是否显示&#xff0c;再来一个变量控制标题。 如果我这个对话框多个地方使用的话还要创建多个变量&#xff0c;甚至关闭之后还要清空一些变量&#xff0c;应该可以简化一点。我写…

Windows Hyper-V Ubuntu 22.04 LTS安装

文章目录 Ubuntu准备Hyper-V启用虚拟化支持services.msc 打开服务列表&#xff0c;关注Hyper-V服务是否启动打开管理器创建虚拟机 启动备份 Ubuntu 下载Ubuntu-Desktop&#xff0c;这是个iso文件。 准备 20GB以上的磁盘空间&#xff0c;ubuntu安装后的虚拟磁盘文件超过15GB一…

C/C++test两步完成CMake项目静态分析

您可能一直在静态分析中使用CMake。但您是否尝试过将Parasoft C/Ctest与CMake一起使用吗&#xff1f;以下是如何使用C/Ctest在基于CMake的项目中运行静态分析的详细说明。 CMake是用于构建、测试和打包软件的最流行的工具之一。Parasoft C/Ctest通过简化构建管理过程&#xff…

【Minecraft】Fabric Mod开发完整流程1 - 环境配置与第一个物品

前言 Fabric 是 Minecraft 一款非官方的模组 API,与 Forge mod 不同。它以轻量级和高性能为设计目标,专注于支持新版本的 Minecraft。 Fabric 和 Forge 在各自的加载编译流程上差别很大&#xff0c;所以你很难看见有同时支持二者的 mod&#xff0c;除非做了兼容性处理 Fabri…

【Java笔记】对象存储服务MinIO

1 MinIO简介 MinIO基于Apache License v2.0开源协议的对象存储服务&#xff0c;可以做为云存储的解决方案用来保存海量的图片&#xff0c;视频&#xff0c;文档。由于采用Golang实现&#xff0c;服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单&#xff0c;基本是复…

mac-右键-用VSCode打开

1.点击访达&#xff0c;搜索自动操作 2.选择快速操作 3.执行shell脚本 替换代码如下&#xff1a; for f in "$" doopen -a "Visual Studio Code" "$f" donecommand s保存会出现一个弹框&#xff0c;保存为“用VSCode打开” 5.使用

基于百度语音识别API智能语音识别和字幕推荐系统——深度学习算法应用(含全部工程源码)+测试数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 翻译3. 格式转换4. 音频切割5. 语音识别6. 文本切割7. main函数 系统测试工程源代码下载其它资料下载 前言 本项目基于百度语音识别API&#xff0c;结合了语音识别、视频转换音频识别以及语句停顿…

【人工智能124种任务大集合】-集齐了自然语言处理(NLP),计算机视觉(CV),语音识别,多模态等任务

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能124种任务大集合&#xff0c;任务集合主要包括4大类&#xff1a;自然语言处理&#xff08;NLP&#xff09;、计算机视觉&#xff08;CV&#xff09;、语音识别、多模态任务。 我这里整理了124种应用场景任…

工业物联网数据桥接教程:Modbus 桥接到 MQTT

Modbus 介绍 Modbus 是一种串行通信协议&#xff0c;用于连接工业自动化设备&#xff0c;最初由 Modicon 公司开发&#xff0c;诞生于 1979 年&#xff0c;现在已成为通用的通讯标准之一&#xff0c;广泛用于工业自动化场景。 Modbus 采用主从模式&#xff0c;支持多种传输方…

PyTorch深度学习实战(11)——卷积神经网络

PyTorch深度学习实战&#xff08;11&#xff09;——卷积神经网络 0. 前言1. 全连接网络的缺陷2. 卷积神经网络基本组件2.1 卷积2.2 步幅和填充2.3 池化2.3 卷积神经网络完整流程 3. 卷积和池化相比全连接网络的优势4. 使用 PyTorch 构建卷积神经网络4.1 使用 PyTorch 构建 CNN…

Linux学习之sed多行模式

N将下一行加入到模式空间 D删除模式空间中的第一个字符到第一个换行符 P打印模式空间中的第一个字符到第一个换行符 doubleSpace.txt里边的内容如下&#xff1a; goo d man使用下边的命令可以实现把上边对应的内容放到doubleSpace.txt。 echo goo >> doubleSpace.txt e…

sealos安装k8s

一、前言 1、我前面文章有写过使用 kubeadm 安装的方式&#xff0c;大家可以去参考 &#xff08;二&#xff09;k8s集群安装&#xff0c;有一系列的k8s文章说明 2、安装k8s的方式有很多 kubeadmsealoskubespray等等 3、关于sealos来安装 k8s &#xff0c;也是非常建议大家去…