单片选 nand flash 嵌入式基础知识归纳,笔面试预备

小编头像

小编

管理员

发布于:2025年05月05日

124 阅读 · 0 评论

嵌入式基础知识归纳、笔面试预备

由于字数有限,可关注公众号获取完整原文:

xfxuezhang

堆和栈的区别

数据结构中的堆和栈

:是一种可以实现“先进后出 ”的存储结构。操作仅限于栈的顶部。常应用于实现递归功能方面的场景

:是一种经过排序的完全二叉树 。其中,节点是从左到右 填满的,并且最后一层的树叶都在最左边;每个节点的值都小于(或者都大于)其子节点的值。因为堆有序的特点,一般用来做数组中的排序,称为堆排序。

内存分配中的堆和栈

分配方式

:由编译器自动分配和释放的,处于相对较高的地址,其栈地址是向下增长的。

:由程序员手动完成申请和释放,地址是向上增长的。

存储内容

:主要用于存放函数的参数与局部变量等

:具体存储内容由程序员根据需要决定存储数据

生存周期

:其生存周期也只在函数的运行过程中,在运行后就释放,并不可以再次访问

:动态内存的整个生存期是由程序员自己决定的,使用非常灵活。但必须及时释放它,否则将会导致运行的程序出现内存泄漏等错误。

分配效率

:栈内存分配运算内置于处理器的指令集中,它的效率一般很高

:由函数库提供,机制复杂(由链表记录空闲内存区域),分配效率比栈要低得多

内存碎片

:不会存在这个问题

:频繁分配和释放不同大小的堆空间会造成内存空间的不连续,从而造成大量碎片,导致程序效率降低

数据结构

满二叉树 :二叉树中除了叶子结点,每个结点的度都为 2。完全二叉树 :二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布。一颗完全二叉树上有个结点,求叶子节点个数: 除以2向上取整 二叉树性质因为所以由于该等式右边为奇数,左边的只能是偶数又因为完全二叉树中度为结点个数要么是要么是,所以只能是因此所以

二叉树的性质

二叉树中,第 层最多 有 个结点。如果二叉树的深度为 ,那么此二叉树最多 有 个结点。二叉树中,终端结点数(叶子结点数)为 ,度(子树数量)为 的结点为 ,度为 的结点数为 ,则 。总结点。包含个结点的二叉树 的高度至少 为。个结点的完全二叉树 的深度为 。 表示取小于 的最大 整数。当 时,父亲结点为结点 。( 时,表示的是根结点,无父亲结点)如果 (总结点的个数) ,则结点 肯定没有左孩子(为叶子结点);否则其左孩子是结点 。如果 ,则结点肯定没有右孩子;否则右孩子是结点 。

判断合法的出栈序列

按顺序入栈的序列,任意元素 e ,比 e 先入栈的元素,并且比 e 后出栈的元素,一定是逆序的。

例: 设栈的入栈序列是 1 2 3 4,则下列不可能是其出栈序列的是( )。A. 1 2 4 3B. 2 1 3 4C. 1 4 3 2D. 4 3 1 2E. 3 1 2 4

解法: 以E选项讲解

选择任意元素e ,这里选择3比3后出栈的有三个元素 1 2 4其中比3先入栈的有两个元素 1 2但是1 2是正序的,而不是逆序的所以这个序列不是合法出栈序列

算法相关

排序算法的时间复杂度和空间复杂度

this指针

this指针指向被调用的成员函数所属的对象 。本质是一个指针常量 ,储存了调用他的对象的地址

用途:

当形参和成员变量同名时,可用this指针来区分在类的非静态成员函数中返回对象本身 ,可使用return *this

特点:

只能在成员函数 中使用,在全局函数、静态成员函数中都不能使用 this 。this始终指向当前对象,静态成员函数属于类。this 指针是在成员函数的开始前构造 ,并在成员函数的结束后清除 。和函数的其他参数生命周期一样。this 指针会因编译器不同而有不同的存储位置,可能是栈、寄存器或全局变量 。编译器在生成程序时加入了获取对象首地址的相关代码并把获取的首地址存放在了寄存器中。大多数编译器是在创建对象 的时候,向ecx寄存器传递this指针。

计算机网络

计算机网络笔记

TCP/IP五层模型

5、会话层 管理主机之间的会话进程,即负责建立、管理、终止 进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步 。 数据传输基本单位为:报文6、表示层 对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换 等。 数据传输基本单位为:报文7、应用层 为操作系统或网络应用程序提供访问网络服务的接口。直接为用户的应用进程提供服务(HTTP、FTP等)。 数据传输基本单位为:报文网络互连的中间设备 物理层 使用的中间设备称为 转发器 数据链路层 使用的中间设备称为 网桥/桥接器 网络层 使用的中间设备称为 路由器 网络层以上 使用的中间设备称为 网关 IP地址及分类 {<网络号>,<主机号>}

第一个字段第二个字段网络号,标志主机或路由器所连接到的网络。主机号,标志该主机或路由器

类别网络号主机号范围A类(0)8位24位1.0.0.1 - 126.255.255.254B类(10)16位16位128.1.0.1 - 191.254.255.254C类(110)24位8位192.0.1.1 - 223.255.254.254

类别最大网络数第一个网络号最后一个网络号最大主机数A类126(2^7 - 2)1.0.0.0126.0.0.02^24 - 2B类16383(2^14 - 1)128.1.0.0191.255.0.02^16 - 2C类2097151(2^21 - 1192.0.1.0223.255.255.02^8 - 2

注:

A类网络号减2:1、IP全0表示 本网络; 2、IP 127(01111111)表示 环回 测试地址 A类主机号减2:1、全0表示所连接到的单个网络地址; 2、全1表示所有主机 B类网络号减1:1、前面两位(1 0)已经固定,不会出现全0或全1; 2、128.0.0.0不指派 B类主机号减2:扣除全0和全1的情况 C类网络号减1:1、前面两位(1 1 0)已经固定,不会出现全0或全1; 2、192.0.0.0不指派 C类主机号减2:扣除全0和全1的情况 其他 控制消息 是指网络通不通、主机是否可达、路由是否可用 等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递 起着重要的作用。IP地址放在IP数据报的首部,而硬件地址放在MAC帧的首部。在网络层和网络层以上使用的是IP地址,而数据链路层及以下使用的是硬件地址使用抽象的IP地址,而不直接使用硬件地址通信的原因:全世界存在不同的网络使用不同的硬件地址,要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,但IP编址把这个复杂问题解决了 IP首部的固定长度是 20字节 IP数据报的数据部分在 4字节的整数倍 时开始数据报能在互联网中经过的路由器的最大数值是 255 , 若把TTL初始值设置为“1”,表示 这个数据报只在本局域网中传送 划分子网的方法:从网络的主机号借用若干位作为子网号 IP地址 = {<网络号>,<子网号>,<主机号>}子网掩码:将三级IP地址的子网掩码与收到的数据报的目的IP地址逐位相与,得出所要找的子网的网络地址 无分类编制CIDR的特点:1、消除了传统的A、B、C类地址以及划分子网的概念;2、把网络前缀相同的连续的IP地址组成一个“CIDR地址块” IP = {<网络前缀>,<主机号>}CIDR斜线记法:IP地址后面加上斜线“/”,然后写上网络前缀所占的位数 网络号 的位数直接决定了可以分配的网络数主机号 的位数则决定了网络中最大的主机数

Linux相关

文件权限符号

第一个字符表示文件类型 :普通文件:-目录文件:d字符设备文件:c块设备文件:b符号链接文件:l命名管道文件:psocket文件:sr:读权限。w:写权限。x:可执行权限。-:没有权限。s:SET位可执行权限。SUID:只对二进制文件有效SGID:对普通文件和目录有效t:粘滞位权限。Sticky。在该目录创建的文件或目录只有创建者才有权限删除。-rwxr-xr-x:文件类型(普通文件-),所有者权限(r读/w写/x可执行),所属组的权限(r读/x可执行),其它用户权限(x可执行)权限属性后面有 (.),表示该文件带有"SELinux的安全上下文";权限属性后面标记为加号 (+),表示使用了ACL(Access Control List)权限。如果文件权限后面附加一个空格 ,则表示系统没有可替换的访问控制措施。

修改文件权限

chgrp(change group):改变文件所属用户组chown(change owner):改变文件所有者chmod(change mod):修改文件的权限 # 设置一个可执行文件,不让其他人修改 chmod 755 filename # -rwxr-xr-x # 让文件拥有执行权限,但不知道原权限 chmod a+x filename命令身份操作文件参数chmodu g o a+(加入) -(除去) =(设置)r w x文件或目录u = user, g = group,o = other, a = all

目录结构

/ :根目录只有root用户具有该目录下的写权限/bin :用户二进制文件包含二进制可执行文件,包含常见的Linux命令。/sbin :系统二进制文件包含二进制可执行文件,但该目录下的Linux命令通常由系统管理员使用,对系统进行维护/etc :配置文件包含所有程序所需的配置文件,也包含了用于启动/停止单个程序的启动/关闭shell脚本/dev :设备文件包括终端设备、USB或连接到系统的任何设备/proc :进程信息这是一个虚拟的文件系统,包含正在运行的进程的信息。/var :变量文件可以找到内容可能增长的文件。包括:/var/log:系统日志文件/var/lib:包和数据库文件/var/mail:电子邮件/var/spool:打印队列/var/lock:锁文件/tmp :临时文件包含系统和用户创建的临时文件,系统重启后,文件都将删除/usr :用户程序包含二进制文件、库文件、文档和二级程序的源代码。包括:/usr/bin:包含用户程序的二进制文件/usr/sbin:包含系统管理员的二进制文件/usr/lib:包含/usr/bin和/usr/sbin用到的库/usr/local:包含从源安装的用户程序/home :HOME目录所有用户用home目录来存储他们的个人档案/lib :系统库包含支持位于/bin和/sbin下的二进制文件的库文件/boot :引导加载程序文件把汗引导加载程序相关的文件/opt :可选的附加应用程序包含从个别厂商的附加应用程序。附加应用程序应该安装在/opt或/opt的子目录下/mnt :挂载目录临时安装目录,系统管理员可以挂载文件系统/media :可移动媒体设备用于挂载可移动设备的临时目录

常用命令

新手必须掌握的Linux命令

常见执行Linux命令的格式:命令名称 [命令参数] [命令对象]

arch:显示机器的处理器架构

uname -a:完整地查看当前系统的内核名称、主机名、内核发行版本、处理器类型等信息

uname -r:显示内核版本

文件系统

文件系统是针对于存储器分区 而言的,而非存储芯片。

基于FLASH的文件系统 (基于MTD驱动层)jffs2(Journalling Flash FileSystem v2)日志闪存文件系统主要用于NOR 型闪存,不适合容量较大的NAND。特点 :可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃/掉电安全保护,提供“写平衡”支持等。缺点 :当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。

存储设备

Flash

结合ROM和RAM的长处,具备可擦除可编程的性能,不会断电丢失数据,可以快速读取数据。

NOR Flash

接口时序同SRAM,易使用读取速度较快擦除速度慢写入速度慢(需要先擦除)随机存取速度较快,支持XIP,适用于代码存储。常用于存放引导程序、根文件系统等单片容量较小

NAND Flash

地址/数据线复用,数据位较窄读取速度较慢擦除速度快写入速度快顺序读取较快,随机存取速度慢,适用于数据存储。常用于存放用户文件系统等。单片容量较大

嵌入式平台启动流程

系统从装有启动代码的Nor Flash启动后,初始化对应的硬件,包括SDRAM等,然后将Nand Flash上的Linux 内核读取到内存中,做好该做的事情后,就跳转到SDRAM中去执行内核了,然后内核解压(如果是压缩内核的话,否则就直接运行了)后,开始运行,在Linux内核启动最后,去Nand Flash上,挂载根文件,比如jffs2,yaffs2等,挂载完成,运行初始化脚本,启动consle交互,才允许你通过console和内核交互。至此完成整个系统启动过程。

RAM(Random Access Memory)

随机访问存储器,直接与CPU交换数据,也叫内存。可以随机读写,速度很快。断电后数据丢失。

SRAM (Static RAM)

静态RAM,速度非常快,不需要刷新电路即可保存数据。集成度较低,非常昂贵,多用于CPU的一二级缓存L1/L2 Cache。

DRAM (Dynamic RAM)

动态RAM,速度比SRAM慢,需要定时刷新充电才能保存数据。比SRAM便宜很多,多用于计算机内存。

DDR RAM (Double-Data-Rate RAM)

可以在一个时钟读写两次数据,使得数据传输速度加倍了

SK海力士发布321层4D NAND Flash闪存样品,性能提升59%!

虽然美国存储芯片大厂美光在2022年下半年宣称全球首家量产了232层NAND Flash,但事实上,长江存储在美光之前就已经小批量量产了。随后在去年11月7日,三星电子也宣布量产了236层3D NAND闪存芯片。今年6月8日,SK海力士也宣布其在2022年8月开发完成的238层堆叠的NAND Flash芯片正式开始量产。至此,头部的三大存储厂商的NAND Flash均已经进入了232层或236层。

没想到的是,仅时隔2个月之后,SK海力士竟然又推出了321层堆叠4D NAND Flash闪存样品。

SK海力士于8月8日宣布,借助其最新发布的321层堆叠4D NAND Flash闪存样品,使其正式成为业界第一家完成300层以上堆叠NAND Flash闪存开发的公司。

SK海力士表示,321层堆叠的1Tb TLC 4D NAND Flash闪存性能,相比上一代238层堆叠的512Gb 4D NAND Flash闪存提高了59%。而提升性能的原因在于数据储存单元可以用更多的单片数量堆叠到更高,这使得在相同大小面积的芯片上达到更大储存容量,也进一步增加了单位晶圆上芯片的产出数量。

不过,目前SK海力士的这款321层堆叠4D NAND Flash还需要进一步优化,计划到2025年上半年才开始量产供货。

SK海力士还发布了针对这些需求进一步优化的下一代NAND Flash闪存产品解决方案,包括采用PCIe 5(Gen5)界面的企业级固态硬盘(Enterprise SSD,eSSD)以及UFS 4.0规格产品。

SK海力士进一步指出,目前公司在积累产品技术和不断优化企业内部解决方案的基础上,正在积极开发下一代PCI 6.0和UFS 5.0规格产品,以致力于在未来继续领导相关內存产品市场。

编辑:芯智讯-浪客剑

相关问答

有没有小容量高速度的固态硬盘?

固态硬盘(SSD:SolidStateDisk)是在传统机械硬盘上衍生出来的概念,简单的说就是用固态电子存储芯片阵列(NANDFlash)而制成的硬盘。固态硬盘的接口规范和...这...

STM32和C51在应用方面如何选择,比如设计电压检测系统?

STM32和51单片机的选择,要看具体的项目应用综合考虑,要做电压检测就要有高精度的AD转换功能,如果没有要求高采样率,51单片机其实也行,数据量大了就要用到S...

简述FPGA与CPLD在硬件结构上的区别?

FPGA与CPLD的区别系统的比较,与大家共享:尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:①CPLD更适合完...

比亚迪mcu是什么模块?

BS9000AMXX系列是一款车规级高品质等级的8位通用MCU,该芯片采用S8051内核,主频最高为24MHZ,基于标准8051指令流水线结构,包含31KBFLASH、2KBSRAM、1KB...

集成电路IC 能不能重复擦写 - z2gKQkJK 的回答 - 懂得

要看是什么类型的集成电路了,一般情况下各种FLASHROM,EEPROM,EPROM,CPLD等集成电路都是可重复擦写的,还有很多单片机,DSP芯片也集成了内部可擦写RO...

最便宜的可运行嵌入式linux的嵌入式处理器有哪些?

问题比较模糊。我们加点限制:最便宜:指的是板级成本最低嵌入式Linux:指的是至少能运行2.6.x标准LinuxKernel,不含uCLinux考虑商用级芯片公开发行,无...

目前常用的 单片 机型号有哪些?都有什么优缺点?

现在市场上的单片机型号可以说是非常多的,其中有通用型的单片机,还有专用型的单片机。专用型单片机一般我们不常见到。今天我们结合这个问题来介绍一下目前常...

isd1820模块基本原理?

ISD1820是美国ISD公司于2001年最新推出一种单片8〜20秒单段语音录放电路ISD1810,它的基本结构与ISD1110.1420完全相同,采用CMOS技术,内含振荡器,话筒前置放...

isd1820模块支持多大音亮的?

支持20音亮的,ISD1820是美国ISD公司于2001年最新推出一种单片8〜20秒单段语音录放电路ISD1810,它的基本结构与ISD1110.1420完全相同,采用CMOS技术,内含振荡...

三星变频空调显示otp什么意思?

OTP(OneTimeProgramable)是MCU的一种存储器类型,意思是一次性可编程:程序烧入IC后,将不可再次更改和清除;因此OTP语音芯片就是指一次性烧录的语音IC。...O...

标签:

相关阅读