嵌入式软件面试记录(5)
1.FreeRTOS使用,是自己移植的吗,移植过程中设置了多少个任务?
答:是自己移植的,从官网下载的包根据手册移植的。
主要涉及以下几个任务:
- 主任务:负责系统初始化和创建其他任务。
- 创建队列任务
- 点灯任务:点亮LED任务。
- 通信任务:处理网络通信或串口通信。
- 用户界面任务:更新显示和处理用户输入。
- 数据处理任务:执行数据分析或控制算法。
2.如何进入中断?
答:①先理解中断向量表
②然后进行中断初始化
③使能全局中断
④发生中断事件,触发中断
3.指针和引用的区别?
答:①指针有固定的空间大小,在32位系统中是4字节,引用是原始变量的一个别名,大小是原变量的大小。指针需要解引用才可以对指向的变量进行操作。而对引用的修改会直接改变引用所指向的变量。
②指针可以有const指针,但没有const引1用。 指针有多级指针,引用不存在多级引用。在使用指针过程中,可以改变其指向的对象,但引用一旦被初始化就只能是一个对象的引用,不能改变。
③引1用声明时必须初始化为另一变量。指针声明和初始化可以分开,允许只声明不初始化,使用时再指向具体变量,指针可以指向空值,但不存在指向空值的引用,引用必须初始化为具体变量的别名
4.普通局部变量、普通全局变量、静态局部变量、静态全局变量的区别?
答:普通局部变量:存在栈区,如果不初始化,变量内容随机,只在定义所在的复合语句中有效,复合语句结束,变量空间释放;
普通全局变量:存放在全局区,若不初始话值为0,进程结束空间才会被释放,能被当前源文件或其他源文件使用,只是其他源文件使用的时候,记得使用 extern 修饰;
静态局部变量:存在全局区、不初始化内容为0、整个进程结束空间才被释放,只能在定义所在的复合语句中有效;静态全局变量:存在全局区、不初始化内容为0、整个进程结束空间被释放,只能被当前源文件使用。
| 特性 | 指针 | 引用 |
| 声明符号 | * | & |
| 初始化 | 可选 | 必须 |
| 重新绑定 | 可以 | 不可以 |
| 空值 | 可以为 NULL | 不可以 |
| 内存管理 | 需要手动管理 | 由绑定变量生命周期管理 |
| 算术运算 | 可以 | 不可以 |
5.TCP和UDP区别?
| 特性 | TCP | UDP |
|---|---|---|
| 连接性 | 面向连接 | 无连接 |
| 可靠性 | 可靠传输,确保数据完整和顺序 | 不可靠传输,数据可能丢失、重复或乱序 |
| 数据传输方式 | 面向流 | 面向报文 |
| 速度 | 较慢,提供可靠性保证 | 较快,不保证可靠性 |
| 流量控制和拥塞控制 | 有流量控制和拥塞控制 | 无流量控制和拥塞控制 |
| 头部开销 | 较大(20 字节) | 较小(8 字节) |
| 使用场景 | 文件传输、电子邮件、Web 浏览 | 视频会议、在线游戏、直播、DNS 查询 |
6.堆和栈的区别?
| 特性 | 堆(Heap) | 栈(Stack) |
| 内存分配 | 动态分布 | 静态分配或自动分配 |
| 管理方式 | 程序员显式管理 | 编译器自动管理 |
| 速度 | 较慢 | 非常快 |
| 内存碎片 | 容易产生 | 不容易产生 |
| 生命周期 | 程序员控制 | 作用域决定 |
| 大小 | 通常较大,受系统可用内存限制 | 通常较小,受操作系统预设限制 |
| 适用场景 | 动态数据结构(链表、树、图等) | 函数调用、局部变量、临时变量 |
| 内存泄漏 | 容易发生 | 不容易发生 |
7.链表和数组的区别?
答:①数组内存连续,链表内存不连续。
②数组访问速度比链表快。
③链表增加删除操作比数组快。
8.请说一下内存的栈区、静态区、堆区区别?
答:①栈区:存放局部变量,在执行函数的时候,局部变量的存储单元会在栈上创建,函数执行完自动释放。
②静态区:主要存放 static 静态变量、全局变量、常量,这些内存在编译的时候就已经分配好了内存,声明周期是整个程序的开始到结束。
③堆区:堆区由程序员手动申请与释放,程序在运行的时候使用内存分配函数(如 malloc)来申请,使用完后再使用(如 free)来释放堆中被程序申请使用的内存在程序主动释放前将一直有效。
相关文章:
嵌入式软件面试记录(5)
1.FreeRTOS使用,是自己移植的吗,移植过程中设置了多少个任务? 答:是自己移植的,从官网下载的包根据手册移植的。 主要涉及以下几个任务: 主任务:负责系统初始化和创建其他任务。创建队列任务点…...
Linux-笔记 OverlayFS文件系统入门
目录 前言 主要概念 工作原理 特点特性 1、上下合并 2、同名文件覆盖 3、同名目录合并 4、写时拷贝 实操入门 内核配置 挂载文件系统 验证 1、同名文件覆盖 2、同名目录合并 3、写时拷贝 1)验证新增文件或目录 2)验证修改文件 3&…...
Kubernetes面试整理-如何配置和使用Service, Ingress?
在 Kubernetes 中,Service 和 Ingress 是用于管理和暴露应用程序的网络访问的主要资源。以下是如何配置和使用 Service 和 Ingress 的详细指南: Service Service 是一种抽象,用于定义一组 Pod 的逻辑集合,并提供一种访问这些 Pod 的策略。Service 可以使应用程序内部或外部…...
深入浅出:NPM常用命令详解与实践
深入浅出地讲解npm常用命令及其实践,可以帮助开发者更好地理解和使用这个强大的Node.js 包管理工具。以下是一些常用的npm命令及其详细解释和实践案例: 1:初始化项目: 命令:npm init用途:生成一个package…...
IPv6 address status lifetime
IPv6 地址状态转换 Address lifetime (地址生存期) 每个配置的 IPv6 单播地址都有一个生存期设置,该设置确定该地址在必须刷新或替换之前可以使用多长时间。某些地址设置为“永久”并且不会过期。“首选”和“有效”生存期用于指定其使用期限和可用性。 自动配置的…...
OpenVINO部署
OpenVINO部署 什么是 OpenVINO?OpenVINO 的优势安装指南系统要求:安装步骤 环境设置部署示例代码优化和部署步骤详细部署示例 什么是 OpenVINO? OpenVINO(Open Visual Inference and Neural Network Optimization)是由…...
面试题:MySQL优化,项目中举例
目录 一、SQL优化分两部分,如何发现慢SQL和如何优化慢SQL 二、项目举例 一、SQL优化分两部分,如何发现慢SQL和如何优化慢SQL 发现慢SQL有两种方案:第一种是开启我们的慢日志, 第二种就是使用skywalling发现慢的接口,进…...
Spring Boot中的事件驱动编程
Spring Boot中的事件驱动编程 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Spring Boot应用中如何利用事件驱动编程模式,实现…...
代码随想录算法训练营第五十天| 1143.最长公共子序列、1035.不相交的线、53. 最大子序和、392.判断子序列
LeetCode 1143.最长公共子序列 题目链接:https://leetcode.cn/problems/longest-common-subsequence/description/ 文章链接:https://programmercarl.com/1143.%E6%9C%80%E9%95%BF%E5%85%AC%E5%85%B1%E5%AD%90%E5%BA%8F%E5%88%97.html 思路 * dp[i][j]…...
【Redis】数据持久化
https://www.bilibili.com/video/BV1cr4y1671t?p96 https://blog.csdn.net/weixin_54232666/article/details/128821360 单点redis问题: 数据丢失问题:实现Redis数据持久化并发能力问题:搭建主从集群,实现读写分离故障恢复问题&…...
基于Python+Flask+MySQL+HTML的B站数据可视化分析系统
FlaskMySQLVue 基于PythonFlaskMySQLHTML的B站数据可视化分析系统 项目采用前后端分离技术,项目包含完整的前端HTML,以及Flask构成完整的前后端分离系统 爬虫文件基于selenium,需要配合登录账号 简介 主页 登录页面,用户打开浏…...
桥接模式
对象的继承关系是在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题&…...
docker中mysql突然无法远程连接设置
docker登陆到docker.hub docker login -u 用户名 回车密码 将容器打包成自己的镜像 docker commit -a "用户名" -m "redis" 533d6f1402ca 用户名/myredis:v1.2 将镜像发布到平台上 docker push用户名/myredis:v1.2 删除本地镜像 docker rm image …...
Nuxt3 的生命周期和钩子函数(二)
title: Nuxt3 的生命周期和钩子函数(二) date: 2024/6/26 updated: 2024/6/26 author: cmdragon excerpt: 摘要:本文深入介绍了Nuxt.js框架中几个关键的生命周期钩子函数,包括app:redirected(SSR环境下重定向前触发…...
用英文介绍孟买:Mumbai India‘s Transforming MEGACITY
Mumbai: India’s Transforming MEGACITY Link: https://www.youtube.com/watch?vtWD_-Rzrn8o Summary First Paragraph: Mumbai, India’s financial and entertainment capital, is undergoing a major transformation. With its contiguous urban population nearing 25…...
镜像发布至dockerHub
1、login 没有账号的话去注册一个 https://hub.docker.com docker login 输入账号密码和账号2、修改镜像名格式 可以直接招我的修改 格式为你的 hub名/镜像名 3、推送...
vscode + CMake编译(opencv显示图片工程)
1.opencv 1.1Mat容器: 在OpenCV中,cv::Mat是一个重要的类,用于表示和操作矩阵或多维数组,通常用于图像处理和计算机视觉任务。 cv::Mat类具有以下特点和功能: 多维数据存储:cv::Mat可以存储多维数据&…...
JavaScript的学习之强制类型转换
目录 一、什么是强制类型转换 二、其他类型转化为String类型 方式一:调用被转化数据类型的toString()方法 方式二:调用String函数,并将我们要转换的数据添加进去为参数 三、其他类型转化为Number类型 方式一:使用Number()函数…...
天润融通:AI赋能客户体验,推动企业收入和业绩增长
“客户体验已经成为全球企业差异化的关键。人工智能与数据分析等创新技术正在加速推动企业在客户体验计划中取得成功,以保持领先地位”。Customer Insights & Analysis 研究经理Craig Simpson说道。 客户体验 (CX,Customer Experience) 是客户在与企…...
Android与服务器交互的方式中的对称加密和非对称加密(kotlin)
Android与服务器交互中的对称加密和非对称加密(kotlin) 引言 在 Android 与服务器交互时,我们常常需要进行数据传输,为了保证数据的安全性,我们可以使用加密算法来保护数据。在本文中,我们将介绍如何在 K…...
CK3M多轴运动控制器实战:EtherCAT总线伺服系统从零配置全解析
1. CK3M控制器与EtherCAT系统初识 第一次接触CK3M多轴运动控制器时,我完全被它强大的功能震撼到了。这款控制器就像工业自动化领域的"大脑",能够同时协调多个伺服电机精准运动。而EtherCAT总线技术则是连接这个大脑与各个执行机构(…...
GIS小白也能搞定!用QGIS加载2023版全国自然保护区SHP数据的保姆级教程
GIS小白也能搞定!用QGIS加载2023版全国自然保护区SHP数据的保姆级教程 第一次接触GIS软件时,看着满屏的专业术语和复杂界面,很多人都会感到无从下手。但别担心,今天我们就用最通俗易懂的方式,带你一步步完成全国自然保…...
如何快速掌握Sionna:下一代无线通信仿真的终极指南
如何快速掌握Sionna:下一代无线通信仿真的终极指南 【免费下载链接】sionna Sionna: An Open-Source Library for Next-Generation Physical Layer Research 项目地址: https://gitcode.com/gh_mirrors/si/sionna Sionna是一个基于TensorFlow的开源Python库&…...
智能管控硬件设备:FanControl散热管理工具全攻略
智能管控硬件设备:FanControl散热管理工具全攻略 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanC…...
Shopee风控算法逆向 - Unidbg补环境实战解析
1. Shopee风控算法逆向分析入门 最近在研究Shopee的风控机制时,我发现他们的Native层加密算法特别有意思。作为一个常年和移动安全打交道的开发者,今天想和大家分享下使用Unidbg模拟执行Shopee风控算法的完整过程。 Shopee作为东南亚头部电商平台&…...
我把DeepSeek调教成了我的‘专属文案总监’:角色扮演Prompt的实战配置手册
把DeepSeek调教成你的「专属文案总监」:高阶Prompt工程实战指南 当市场部的Lisa第一次用AI生成产品文案时,她得到的是一篇充满技术术语的说明文;而运营总监Mike让AI写的周报,读起来像学术论文。这就像给米其林大厨一台高级烤箱&a…...
终极指南:3步解锁iOS设备隐藏功能 - palera1n完整教程
终极指南:3步解锁iOS设备隐藏功能 - palera1n完整教程 【免费下载链接】palera1n Jailbreak for arm64 devices on iOS 15.0 项目地址: https://gitcode.com/GitHub_Trending/pa/palera1n 想要探索iOS系统更深层的功能吗?palera1n为你提供了一个简…...
探索开源字体商用解决方案:思源宋体TTF的多场景应用与价值解析
探索开源字体商用解决方案:思源宋体TTF的多场景应用与价值解析 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 副标题:免费商用授权与多场景适配的专业中文字体…...
实时风控延迟突增2300ms?揭秘Python部署中被低估的asyncio事件循环阻塞陷阱
第一章:实时风控延迟突增2300ms?揭秘Python部署中被低估的asyncio事件循环阻塞陷阱在某次线上实时风控服务发布后,P99延迟从平均120ms骤升至2420ms,监控图表呈现尖锐毛刺。排查发现,问题并非源于模型推理或数据库慢查询…...
InternLM2-Chat-1.8B在复杂网络问题诊断中的辅助应用
InternLM2-Chat-1.8B在复杂网络问题诊断中的辅助应用 网络问题就像家里的电路故障,灯不亮了,你很难一眼看出是灯泡坏了,还是开关问题,或者是总闸跳了。对于运维工程师来说,服务器连不上、服务访问超时、端口冲突这些“…...
