嵌入式软件面试记录(5)

1.FreeRTOS使用,是自己移植的吗,移植过程中设置了多少个任务?

答:是自己移植的,从官网下载的包根据手册移植的。

主要涉及以下几个任务:

  • 主任务:负责系统初始化和创建其他任务。
  • 创建队列任务
  • 点灯任务:点亮LED任务。
  • 通信任务:处理网络通信或串口通信。
  • 用户界面任务:更新显示和处理用户输入。
  • 数据处理任务:执行数据分析或控制算法。

2.如何进入中断?

答:①先理解中断向量表

②然后进行中断初始化

③使能全局中断

④发生中断事件,触发中断

3.指针和引用的区别?

答:①指针有固定的空间大小,在32位系统中是4字节,引用是原始变量的一个别名,大小是原变量的大小。指针需要解引用才可以对指向的变量进行操作。而对引用的修改会直接改变引用所指向的变量。

②指针可以有const指针,但没有const引1用。 指针有多级指针,引用不存在多级引用。在使用指针过程中,可以改变其指向的对象,但引用一旦被初始化就只能是一个对象的引用,不能改变。

③引1用声明时必须初始化为另一变量。指针声明和初始化可以分开,允许只声明不初始化,使用时再指向具体变量,指针可以指向空值,但不存在指向空值的引用,引用必须初始化为具体变量的别名

4.普通局部变量、普通全局变量、静态局部变量、静态全局变量的区别?

答:普通局部变量:存在栈区,如果不初始化,变量内容随机,只在定义所在的复合语句中有效,复合语句结束,变量空间释放;

普通全局变量:存放在全局区,若不初始话值为0,进程结束空间才会被释放,能被当前源文件或其他源文件使用,只是其他源文件使用的时候,记得使用 extern 修饰;
静态局部变量:存在全局区、不初始化内容为0、整个进程结束空间才被释放,只能在定义所在的复合语句中有效;

静态全局变量:存在全局区、不初始化内容为0、整个进程结束空间被释放,只能被当前源文件使用。

特性指针     引用
声明符号*&
初始化可选必须
重新绑定可以不可以
空值可以为 NULL不可以
内存管理需要手动管理由绑定变量生命周期管理
算术运算可以不可以

 

5.TCP和UDP区别?

特性TCPUDP
连接性面向连接无连接
可靠性可靠传输,确保数据完整和顺序不可靠传输,数据可能丢失、重复或乱序
数据传输方式面向流面向报文
速度较慢,提供可靠性保证较快,不保证可靠性
流量控制和拥塞控制有流量控制和拥塞控制无流量控制和拥塞控制
头部开销较大(20 字节)较小(8 字节)
使用场景文件传输、电子邮件、Web 浏览视频会议、在线游戏、直播、DNS 查询

 

6.堆和栈的区别?

特性堆(Heap)栈(Stack)
内存分配动态分布静态分配或自动分配
管理方式程序员显式管理编译器自动管理
速度较慢非常快
内存碎片容易产生不容易产生
生命周期程序员控制作用域决定
大小通常较大,受系统可用内存限制通常较小,受操作系统预设限制
适用场景动态数据结构(链表、树、图等)函数调用、局部变量、临时变量
内存泄漏容易发生不容易发生

7.链表和数组的区别?

答:①数组内存连续,链表内存不连续。

②数组访问速度比链表快。
③链表增加删除操作比数组快。

8.请说一下内存的栈区、静态区、堆区区别?

答:①栈区:存放局部变量,在执行函数的时候,局部变量的存储单元会在栈上创建,函数执行完自动释放。
②静态区:主要存放 static 静态变量、全局变量、常量,这些内存在编译的时候就已经分配好了内存,声明周期是整个程序的开始到结束。
③堆区:堆区由程序员手动申请与释放,程序在运行的时候使用内存分配函数(如 malloc)来申请,使用完后再使用(如 free)来释放堆中被程序申请使用的内存在程序主动释放前将一直有效。

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

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

相关文章

【LinuxC语言】IP地址相关的函数

文章目录 前言inet_addr()inet_aton()inet_ntoa()示例代码总结前言 在Linux C语言编程中,处理网络通信是一个核心主题,其中涉及到的IP地址相关函数扮演着至关重要的角色。这些函数允许我们在不同的网络层次上操作和管理IP地址,从而实现有效的数据传输和通信控制。本文将介绍…

Vue3 【仿 react 的 hook】封装 useTitle

效果预览 页码加载时&#xff0c;自动获取网页标题通过input输入框&#xff0c;可以实时改变网页标题 代码实现 index.vue <template><h1>网页的标题为&#xff1a; {{ titleRef }}</h1><p>通过input输入框实时改变网页的标题 <input v-model"…

大模型只有推理功能,没有调用能力

大模型主要具备推理功能&#xff0c;而没有直接调用外部服务或执行具体操作的能力。它的核心功能是基于输入文本进行自然语言处理和生成&#xff0c;而不是与外部环境进行交互或执行具体的操作指令。因此&#xff0c;大模型在应用场景中通常被用于推理和生成文本&#xff0c;而…

TouchSocket的WebAPI开发服务端

TouchSocket.Net(包括 C# 、VB.Net、F#)的一个整合性的 socket网络通信框架用于TCP通讯&#xff0c;也可以udp、ssl等一系列的通信模块。 大家都使用过其他的Socket产品&#xff0c;那么TouchSocket在设计时也是借鉴了其他产品的优秀设计理念&#xff0c;数据处理适配器就是其…

2024年6月23日 语法纠正

Certainly! Below is a comparison of the original content and the polished version, with explanations for the changes: Original: “Good afternoon, everybody! Hopefully not disturb your wonderful weekend.” Polished: “Good afternoon, everyone! I hope I’m n…

【Vision AI v2开箱之SenseCraft AI猫狗识别Arduino教程】

【Vision AI v2开箱之SenseCraft AI猫狗识别Arduino教程】 1. 前言2. 实验材料2.1 Grove Vision AI Module V22.1.1 特征2.1.2 硬件概述2.1.3 启动/重置/程序2.1.4 驱动 2.2 ESP32C32.2.1 引脚图2.2.2 组件概述2.2.3 电源引脚 2.3 SenseCraft AI Model Assistant2.3.1 部署的模…

从低代码开发看,国企数字化转型的思考与探索

引言 在我国新时代发展战略背景下&#xff0c;国有企业作为国家经济的重要支柱&#xff0c;正面临着从传统经营模式向数字化转型的挑战。数字化转型不仅能提高企业经营效率&#xff0c;还能为企业创新提供强大动力。低代码开发作为一种新兴的软件开发模式&#xff0c;有助于简化…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【13】压力压测JMeter-性能监控jvisualvm

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【13】压力压测JMeter-性能监控jvisualvm 压力测试概述性能指标 JMeter基本使用添加线程组添加 HTTP 请求添加监听器启动压测&查看分析结果JMeter Address Already in use 错误解决 性…

Hive数据锁问题处理

在测试环境有定时任务会定期将flume采集的数据load到hive表中&#xff0c;在查看yarn application过程中发现load操作没有执行&#xff0c;且后续的任务在上一个任务执行结束后很久才开始。感觉像是阻塞一样&#xff0c;于是手动执行相关脚本&#xff0c;发现也是会卡住&#x…

【Linux】进程间通信上 (1.5万字详解)

目录 一.进程间通信介绍 1.1进程间通信的目的 1.2初步认识进程间通信 1.3进程间通信的种类 二.匿名管道 2.1何为管道 2.1实现原理 2.3进一步探寻匿名管道 2.4编码实现匿名管道通信 2.5管道读写特点 2.6基于管道的进程池设计 三.命名管道 3.1实现原理 3.2代码实现 四.…

视觉理解与图片问答,学习如何使用 GPT-4o (GPT-4 Omni) 来理解图像

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、引言 OpenAI 最新发布的 GPT-4 Omni 模型&#xff0c;也被称为 GPT-4o&#xff0c;是一个多模态 AI 模型&#xff0c;旨在提供更加自然和全面的人机交互体验。 GPT-4o 与 GPT-4 Turbo 都具备视觉功…

SuiNS发布子名及新命名标准,推动Web3身份结构的进步

SuiNS子名是Sui Name Service的强大扩展&#xff0c;最近与新命名标准一起发布。子名允许用户在一个主要的SuiNS名下创建额外的自定义身份&#xff0c;而无需额外费用。用户 gia 可以创建如 gaminggia 或 lendinggia 这样的子名&#xff0c;从而增强个人组织和支持群组与组织的…

068、PyCharm 关于Live Template模板

在 PyCharm 编辑器中&#xff0c;Live Templates 是一种功能强大的工具&#xff0c;可以帮助我们快速插入常用的代码片段或模板。 以下是在 PyCharm 中添加 Live Templates 的步骤&#xff1a; 添加 Live Templates 步骤&#xff1a; 打开 PyCharm 编辑器。 转到菜单栏中的 …

飞行堡垒系列_键盘灯开关

飞行堡垒系列键盘灯可以通过键盘上的"Fn 方向键"控制 演示机型品牌型号&#xff1a;飞行堡垒8 系统版本&#xff1a;Windows 11 飞行堡垒键盘灯可通过键盘上的"Fn方向键"控制。 " Fn 下方向键 "为减弱键盘灯光&#xff0c;多按几次键盘灯就可…

Linux源码阅读笔记05-进程优先级与调度策略-实战分析

基础知识 Linux 内核当中有 3 种调度策略&#xff1a; SCHED_OTHER 分时调度策略&#xff1b;SCHED_FIFO 实时调度策略&#xff0c;先到先服务&#xff1b;SCHED_RR 实时调度策略&#xff0c;时间片轮转。 如果有相同优先级的实时进程&#xff08;根据优先级计算的调度权值是…

Python基础之面向对象

文章目录 1 面向对象1.1 类方法1.1.1 普通方法1.1.1.1 实例调用1.1.1.2 类调用 1.1.2 类方法1.1.3 类静态方法 1.2 继承1.2.1 单继承1.2.2 多继承 1.3 方法重写1.4 类私有属性方法和专有方法1.4.1 类的私有属性1.4.2 类的私有方法1.4.3 类专有方法 1 面向对象 Python从设计之初…

2024 年值得推荐的 10 款 iPhone 数据恢复软件

iPhone 从来都不是一个简单的打电话电话。它就像一台微型电脑&#xff0c;让我们互相联系、拍照、拍视频、发邮件、看文档、看书。然而&#xff0c;随着它成为日常生活的必需品&#xff0c;我们总是容易因各种原因丢失数据&#xff0c;如删除、恢复出厂设置、iOS 错误、文件同步…

云手机在跨平台兼容性方面优势明显?有何应用场景

跨平台设备间无缝切换和数据同步的需求现在是很多人或者企业都需要的&#xff0c;云手机在这些方面似乎有很大优势&#xff1f;下面我们来具体探讨在兼容方面&#xff0c;云手机有何出彩之处&#xff1f;又支持哪些应用场景呢 先来说说云手机跨平台兼容性优势所在&#xff0c;要…

【设计模式深度剖析】【9】【行为型】【访问者模式】| 以博物馆的导览员为例加深理解

&#x1f448;️上一篇:备忘录模式 | 下一篇:状态模式&#x1f449;️ 设计模式-专栏&#x1f448;️ 文章目录 访问者模式定义英文原话直译如何理解呢&#xff1f; 访问者模式的角色类图代码示例 访问者模式的应用优点缺点使用场景 示例解析:博物馆的导览员代码示例 访问…

【React】useEffect等价于那几个生命周期函数

useEffect 在 React 的函数组件中相当于类组件中的几个生命周期方法的组合。具体来说,它可以模拟以下生命周期函数的行为: componentDidMount:当 useEffect 的第二个参数(依赖项数组)为空数组 [] 时,传入的回调函数会在组件挂载后立即执行,这与 componentDidMount 的行为…