当前位置: 首页 > news >正文

嵌入式软件面试记录(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.lryc.cn/news/384024.html

相关文章:

  • Linux-笔记 OverlayFS文件系统入门
  • Kubernetes面试整理-如何配置和使用Service, Ingress?
  • 深入浅出:NPM常用命令详解与实践
  • IPv6 address status lifetime
  • OpenVINO部署
  • 面试题:MySQL优化,项目中举例
  • Spring Boot中的事件驱动编程
  • 代码随想录算法训练营第五十天| 1143.最长公共子序列、1035.不相交的线、53. 最大子序和、392.判断子序列
  • 【Redis】数据持久化
  • 基于Python+Flask+MySQL+HTML的B站数据可视化分析系统
  • 桥接模式
  • docker中mysql突然无法远程连接设置
  • Nuxt3 的生命周期和钩子函数(二)
  • 用英文介绍孟买:Mumbai India‘s Transforming MEGACITY
  • 镜像发布至dockerHub
  • vscode + CMake编译(opencv显示图片工程)
  • JavaScript的学习之强制类型转换
  • 天润融通:AI赋能客户体验,推动企业收入和业绩增长
  • Android与服务器交互的方式中的对称加密和非对称加密(kotlin)
  • epoch和batch的区别
  • 非递归创建二叉查找树
  • 摄影师危!AI绘画即将降维打击摄影行业
  • ts 中class
  • 深度解析RocketMq源码-高可用存储组件(四)Dledger框架日志同步流程
  • ONLYOFFICE 文档开发者版 8.1:API 更新
  • Activemq单节点在Windows下的配置部署
  • SpringBoot-注解@ImportResource引入自定义spring的配置xml文件和配置类
  • GitLab配置免密登录之后仍然需要Git登录的解决办法
  • 探索小众爱好:打造个人韧性与特色之路
  • GitHub使用教程(小白版)