嵌入式软件面试记录(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…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
