- 博客(127)
- 资源 (1)
- 收藏
- 关注
原创 存储⑧—深入浅出SSD-UFS简介
UFS(通用闪存存储)是一种面向移动设备的高速嵌入式闪存标准,相比eMMC具有全双工传输、更高速度和更低功耗等优势。其核心架构采用差分串行双通道设计,包含主机控制器和存储芯片两部分,后者集成了FTL闪存管理、NAND阵列和SRAM缓存。UFS采用四层架构(SCSI应用层、UTP传输层、UniPro链路层和M-PHY物理层),支持SCSI命令集。关键特性包括全双工并发、低功耗管理、SLC缓存加速、硬件加密、多命令队列等。主流UFS 3.1版本顺序读写可达2100/1200MB/s,广泛应用于高端手机和平板设备
2026-06-22 20:44:10
149
原创 存储⑦—深入浅出SSD-ECC原理
本文深入解析SSD中LDPC纠错码的原理与应用。LDPC(低密度奇偶校验码)作为现代SSD的核心纠错技术,主要包含两种解码算法:Bit-flipping硬判决算法通过简单翻转可疑比特实现快速纠错,适合低误码场景;和积信息传播(BP)软判决算法则利用电压软信息进行概率迭代,纠错能力更强,可应对TLC/QLC闪存的高误码挑战。两种算法形成互补:Bit-flipping优先处理轻度错误,失败时切换至BP算法。LDPC通过这种分级纠错机制,在保证数据可靠性的同时平衡了性能与功耗。
2026-06-22 17:49:05
280
原创 存储⑥—深入浅出SSD-核心技术:FTL
本文深入解析SSD的核心技术——闪存转换层(FTL)。FTL作为主机与物理闪存间的"翻译官",主要实现三大功能:1. 映射管理(页/块/混合映射),建立逻辑与物理地址转换;2. 垃圾回收(GC)机制,通过整理无效页减少写放大;3. 磨损均衡(WL)技术,平衡闪存块擦写次数以延长寿命。文章还介绍了坏块管理机制,分析出厂坏块和使用坏块的处理方法。通过类比CPU Cache映射原理,形象说明了FTL的三种映射方式特点及适用场景,揭示了SSD高效运行的核心技术原理。
2026-06-22 15:47:31
188
原创 存储⑤—深入浅出SSD-SSD存储介质:闪存
本文深入解析SSD闪存介质的技术原理与特性。首先介绍了闪存物理结构,包括SLC、MLC、TLC、QLC四种存储单元类型及其性能差异,以及从颗粒封装到存储单元的多级组织架构。重点阐述了闪存的两种寻址体系(五层硬件寻址和ONFI行列寻址)和读写擦除操作时序。详细分析了闪存的独特特性:P/E擦写寿命随单元比特数增加而降低、读干扰机制、数据保存期影响因素等。最后探讨了闪存数据完整性问题及SSD采用的5种数据保护技术。全文系统梳理了闪存的核心技术要点,为理解SSD底层工作原理提供了全面指导。
2026-06-22 12:00:03
376
原创 存储④—深入浅出SSD-SSD综述
本文综述了固态硬盘(SSD)的基本原理与核心特性,主要包含三方面内容:首先介绍SSD的硬件组成(主控、闪存、缓存等)和三大功能模块(前端接口、FTL层、后端通信);其次详述SSD的关键性能指标,包括容量(含OP冗余空间)、介质类型(SLC/MLC/TLC)、IOPS/吞吐量/延时等性能参数,以及DWPD/TBW等寿命指标;最后说明功耗管理与发热控制机制,涉及四种功耗状态和温度调控策略。全文系统梳理了SSD的技术架构与评估体系,为理解其工作原理和选型应用提供了全面参考。
2026-06-22 01:13:39
181
原创 存储③—UFS协议
UFS协议技术解析 UFS(通用闪存存储)是新一代高速串行存储标准,采用分层架构设计(SCSI应用层/UTP传输层/UniPro链路层/M-PHY物理层)。相比eMMC,其核心优势包括:全双工通信支持并发读写、命令队列提升随机性能、精细电源管理降低功耗。关键技术特性涵盖RPMB安全存储、WriteBooster写入加速(UFS3.1)、ZUFS分区存储(UFS4.0)等。最新版本UFS4.1理论带宽达46.4Gbps,功耗降低30%,适用于高性能移动设备和AI应用场景。
2026-05-17 17:33:27
417
原创 存储②—eMMC协议
摘要:eMMC(嵌入式多媒体控制器)是一种集成NAND闪存和控制芯片的存储解决方案,采用BGA封装和并行总线通信。其核心架构包含NAND闪存阵列、闪存控制器和主机接口,支持HS400等高速模式(理论带宽400MB/s)。协议采用四层结构(物理层、传输层、命令层),物理层定义11条信号线和双电压规范;传输层支持SDR/DDR模式,使用CRC校验确保数据完整性;命令层包含11类命令和8种响应格式。初始化流程需经过复位、电压协商、设备识别等步骤,最终可配置为高速模式运行。
2026-05-16 19:09:54
487
原创 存储①—通用NAND Flash 基础
本文介绍了NAND Flash存储的基础原理与优化算法。NAND Flash按层级分为Die、Plane、Block、Page和Cell,其物理特性决定了只能按页读写、按块擦除。为提高SSD性能与寿命,采用了多种算法:FTL地址映射(页/块/混合映射)优化访存效率;GC垃圾回收解决空间碎片;WL磨损均衡延长整体寿命;BBM坏块管理确保可靠性。此外还介绍了ECC纠错、RAID冗余等可靠性算法,以及顺序读写、4K随机读写等关键性能指标。这些技术共同提升了SSD的可靠性、寿命和性能表现。
2026-05-16 17:44:08
562
原创 ATF (ARM Trusted Firmware) -3:完整启动流程(热启动)
ATF热启动(Warm Boot)是一种保留DRAM内容并跳过初始化训练的系统复位流程,可大幅缩短启动时间。与冷启动不同,热启动通过软件(如PSCI接口)或硬件(看门狗、复位按钮)触发,核心优化在于BL2阶段跳过DRAM训练,并选择性跳过镜像重加载。BL1通过复位状态寄存器判断启动类型,BL2检测DRAM状态后决定是否执行训练,BL31则协调PSCI请求和安全世界状态恢复。整个过程仍遵循BL1→BL2→BL31→BL32/BL33的启动链路,但根据复位原因优化冗余步骤,使启动时间显著减少。
2026-02-20 23:46:33
753
原创 OP-TEE-OS:综述
OP-TEE-OS是基于ARM TrustZone的开源可信执行环境,采用双世界模型隔离安全与非安全世界。安全世界运行optee_os微内核,提供TA管理、加密服务等核心功能;非安全世界通过optee_client实现与TA的交互。系统启动时,BL31将控制权转交给optee_os的_start入口,完成MMU、中断等初始化后跳转到C语言入口init_tee_runtime(),最终建立完整的TEE运行环境。整个架构严格遵循GlobalPlatform标准,为敏感数据提供硬件级保护。
2026-02-20 20:29:02
935
原创 ATF (ARM Trusted Firmware) -2:完整启动流程(冷启动)
ARM Trusted Firmware (TF-A/ATF) 完整、详细的冷启动流程,从系统上电到非安全世界操作系统启动的全链路拆解。TF-A 采用 链式加载 (Chain Loading) 与 链式验签 架构,流程如下:系统复位→ 操作系统启动。
2026-02-20 18:11:50
1106
原创 安卓系统全流程启动
本文详细解析了安卓系统的全流程启动过程,从安全世界与非安全世界的组件层级关系出发,完整描述了从硬件上电到安卓应用启动的全链路流程。系统启动分为六个阶段:ATF安全启动链、OP-TEE初始化、LK引导程序启动、Linux内核加载、安卓框架启动以及应用程序运行。同时阐述了安卓应用与安全世界(OP-TEE)的通信机制,通过SMC调用实现安全服务。整个流程实现了从硬件信任根到用户应用的安全启动链,确保了系统各层级的安全隔离与协作。
2026-02-20 18:08:25
1277
原创 ATF (ARM Trusted Firmware) -1:综述
ARM Trusted Firmware (TF-A/ATF) 是ARM架构的核心开源安全固件,为Armv7-A/8-A处理器提供信任根、安全启动和运行时服务。它采用模块化分层启动架构,运行在最高特权级EL3,管理安全与非安全世界的切换。TF-A实现了ARM标准规范,包括可信启动、SMC调用处理、PSCI电源管理等核心功能,并提供中断控制、内存隔离等基础框架。作为ARM TrustZone技术的基石,TF-A为芯片厂商提供了标准化安全能力实现,确保系统级安全隔离与信任链传递。
2026-02-20 00:12:38
1066
原创 LK(little kernel)-3:LK的启动流程-作为Android的bootloarder
本文分析了LK(Little Kernel)作为Android Bootloader的启动流程。LK启动分为5个阶段:硬件复位→汇编初始化(_start)→架构初始化(arch_init)→平台初始化(platform_init)→内核初始化(kernel_init)→应用启动(app)。启动过程从链接脚本指定入口开始,经过汇编级crt0.S初始化后跳转到C语言的kmain主函数。kmain完成核心组件初始化后创建bootstrap2线程,最终通过apps_init()扫描并启动所有注册应用(如aboot)
2026-02-19 17:15:07
1226
原创 LK(little kernel)-1:综述
1. Android Bootloader(最主流)几乎所有主流 Android 手机的Bootloader(如 aboot) 均基于 LK 开发负责:硬件初始化、加载内核 /ramdisk、fastboot 协议、分区管理、安全校验代表:Qualcomm、MTK、Samsung 等平台的 Bootloader 均基于 LK2. 可信执行环境(TEE)用于 Android Trusty TEE 底层,提供安全隔离的执行环境场景:指纹、支付、密钥存储、安全启动等敏感功能。
2026-02-19 02:33:17
1559
原创 LK(little kernel)-2:官方LK的通用启动流程
LK(Little Kernel)是一个轻量级嵌入式内核,其启动流程分为5个核心阶段:硬件复位→汇编阶段→架构初始化→平台初始化→内核初始化→应用启动。启动入口由链接脚本指定,控制各段内存布局。汇编阶段(_start)初始化异常向量表后跳转到C语言入口lk_main,该函数完成硬件初始化、内核堆和线程创建,最终进入bootstrap2线程进行二级初始化。bootstrap2调用apps_init()扫描并启动所有注册的LK应用,通过start_app为每个应用创建线程。整个流程从底层硬件初始化逐步过渡到上层
2026-02-18 20:49:49
496
原创 Linux系统移植18:NXP官方开发板Linux内核编译和移植
修改顶层 Makefile,直接在顶层 Makefile 文件里面定义 ARCH 和 CROSS_COMPILE 这两个的变量值为 arm 和 arm-linux-gnueabihf-,创建shell脚本方便一键编译编译NXP官方EVK开发板对应的Linux系统,默认配置文件存放路径arch/arm/configs。最终编译出:zImage和 imx6ull-14x14-evk-emmc.dtb,imx6ull-14x14-evk.dtb。
2025-06-29 16:00:26
673
原创 Linux系统移植17:Linux内核启动流程简介
Linux 内核的连接脚本文件 arch/arm/kernel/vmlinux.lds,通过链接脚本可以找到 Linux 内核的第一行程序是从哪里执行的。
2025-06-29 15:46:13
367
原创 Linux系统移植15:Linux内核编译
编译成果物在arch/arm/boot目录下,为Linux镜像文件zImage和设备树文件.dtb文件。将zImage和dtb文件烧录到设备中。执行mk.sh编译脚本,编译完成如下。Linux内核的默认配置文件保存在。新增mk.sh编译脚本。
2025-06-29 15:18:37
162
原创 Linux系统移植14:uboot图形化配置界面
自定义菜单要求如下:①、在主界面中添加一个名为“My test menu”,此菜单内部有一个配置项。②、配置项为“MY_TESTCONFIG”,此配置项处于菜单“My test menu”中。③、配置项的为变量类型为 bool,默认值为y。④、配置项菜单名字为“This is my test config”。⑤、配置项的帮助内容为“This is a empty config, just for tset!打开顶层Konfig文件,添加新增菜单测试代码重新编译并打开图形化配置界面。
2025-06-29 15:12:50
458
原创 Linux系统移植13:bootcmd和bootargs环境变量
bootcmd 保存着 uboot 默认命令, uboot 倒计时结束以后就会执行 bootcmd 中的命令。这些命令一般都是用来启动 Linux 内核的,比如读取 EMMC 中的 Linux 内核镜像文件和设备树文件到 DRAM 中,然后启动 Linux 内核。可以在 uboot 启动以后进入命令行设置 bootcmd 环境变量的值。如果 EMMC 没有保存 bootcmd 的值,那么 uboot 就会使用默认的值,板子第一次运行 uboot 的时候都会使用默认值来设置 bootcmd 环境变量。
2025-06-29 14:38:08
453
原创 Linux系统移植12:uboot启动Linux内核
1、首先查看EMMC里面是否有系统,Linux镜像zImage文件和.dtb文件先将当前设备环境切换到EMMC环境通过命令加载镜像文件在zImage和.dtb文件,并通过bootz命令启动内核。
2025-06-29 14:04:31
294
原创 Linux系统移植8:uboot启动流程详解-main_loop到cmd_process处理过程
Linux系统移植8:uboot启动流程详解-main_loop到cmd_process处理过程
2025-06-29 13:47:31
917
原创 Linux系统移植11:修改网络驱动
基于NXP官方源码,参考开发版的原理图修改网络驱动启动复位引脚修改网络驱动。9、重启设备,查看编译日期和附加信息是否为修改后的。8、通过tftp进行烧录到设备SD卡中启动。1、删除原有引脚注并新增引脚定义。2、删除原有引脚初始化和配置函数。6、修改设备启动的版本打印信息。5、针对开发板新增条件编译。4、修改网络初始化函数。10、设置网络环境变量。3、添加网络复位引脚。11、测试网络连通性。最终网络驱动移植成功。
2025-06-19 00:08:20
385
原创 Linux系统移植10:uboot移植
1、借鉴NXP官方6ULL EVK开发板,默认基础配置文件也用官方提供的,拷贝其原厂配置文件并命名为自己的配置文件修改编译脚本将编译配置文件选项替换为自己的配置文件名执行编译脚本发现可以正常编译修改配置文件。
2025-06-19 00:04:11
223
原创 Linux系统移植9:uboot启动流程详解-bootz启动Linux过程
bootz是 U-Boot 中用于启动 Linux 内核的命令,专为处理设计。
2025-06-18 23:56:10
1007
原创 Linux系统移植7:uboot启动流程详解-board_init_r执行过程
Linux系统移植7:uboot启动流程详解-board_init_r执行过程
2025-06-18 23:50:15
677
原创 Linux系统移植5:uboot启动流程详解-board_init_f执行过程
Linux系统移植5:uboot启动流程详解-board_init_f执行过程
2025-06-18 23:46:23
1007
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2