自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鹰之翔

存鹰之心于高远;取鹰之志而凌云;习鹰之性以涉险;融鹰之神在山巅。

  • 博客(150)
  • 资源 (19)
  • 收藏
  • 关注

原创 设计模式之代理模式在 C 语言中的应用(含 Linux 内核实例)

摘要:本文探讨了代理模式在C语言中的应用,通过结构体和函数指针模拟面向对象特性实现代理功能。代理模式的核心价值在于为真实对象添加额外功能(如日志记录、权限控制等)而不修改其代码。文章提供了5个实例:基础代理(日志记录)、远程代理(网络请求)、保护代理(权限控制)、虚拟代理(延迟加载)以及Linux内核中的VFS代理示例。每个实例均包含代码实现和UML图示,展示C语言如何通过函数指针和结构体组合实现代理模式的核心思想——控制对真实对象的间接访问。

2026-03-07 06:17:58 410

原创 设计模式之享元模式在 C 语言中的应用(含 Linux 内核实例)

享元模式是一种结构型设计模式,通过共享重复对象减少内存占用和对象创建开销。其核心是将对象属性分为可共享的内部状态和不可共享的外部状态,适用于存在大量相似对象的场景。C语言可通过结构体封装状态和哈希表管理对象池实现享元模式。文中提供了字符渲染引擎和配置项管理两个实例,展示了如何复用内部状态(如字体、颜色或日志级别)而仅存储外部状态差异,从而显著降低内存消耗和性能开销。

2026-03-07 06:17:27 524

原创 设计模式之外观模式在 C 语言中的应用(含 Linux 内核实例)

外观模式是一种结构型设计模式,通过定义统一的高层接口封装复杂子系统,降低客户端使用难度。C语言中可通过结构体和函数封装实现该模式。本文通过三个实例展示其应用:1)智能家居控制整合灯光、空调等子系统;2)文件处理外观简化加密压缩流程;3)网络连接外观整合DNS解析、TCP连接等操作。每个实例都演示了如何通过单一接口隐藏底层复杂性,使客户端代码更简洁。外观模式特别适用于需要简化复杂库或系统交互的场景,能有效降低代码耦合度。

2026-03-05 08:50:15 405

原创 设计模式之装饰模式在 C 语言中的应用(含 Linux 内核实例)

摘要:装饰模式是一种动态扩展对象功能的结构型设计模式,通过装饰器包裹原始对象实现功能叠加,避免类爆炸和代码耦合。在C语言中,可通过结构体嵌套和函数指针实现。文章提供了两个实例:(1)日志装饰器为文件操作添加日志功能;(2)加密装饰器为网络传输添加加密/压缩功能。该模式支持运行时灵活组合功能,无需修改原始代码结构,适用于需要动态扩展的场景。 (字数:150字)

2026-03-05 08:49:47 537

原创 设计模式之组合模式在 C 语言中的应用(含 Linux 内核实例)

摘要: 组合模式是一种结构型设计模式,通过统一单个对象和对象集合的接口,将对象组织成树形结构,使客户端能够一致地处理整体与部分。在C语言中,可通过结构体多态和链表/树结构实现该模式。核心步骤包括定义抽象接口(函数指针结构体)、实现叶子节点(不支持子对象操作)和组合节点(递归处理子对象)。文中提供了文件系统和UI组件两个实例,展示了如何统一操作文件和目录、按钮和面板,无需区分具体类型即可处理整个树形结构。该模式适用于层级化对象结构,简化客户端代码并提高扩展性。

2026-02-14 10:36:23 569

原创 设计模式之桥接模式在 C 语言中的应用(含 Linux 内核实例)

桥接模式是一种结构型设计模式,通过将抽象部分与实现部分分离,使两者可以独立变化。它解决了多维度变化导致的类层次结构臃肿问题,支持抽象与实现的独立扩展。在C语言中,可以通过结构体分离抽象与实现,并使用函数指针建立桥接关系。本文通过两个实例展示了桥接模式的应用:形状与颜色分离的动态组合,以及设备与通信协议的灵活搭配。桥接模式避免了类爆炸,提高了系统的可扩展性和灵活性。

2026-02-14 10:36:03 1079

原创 模板方法模式在 C 语言中的应用(含 Linux 内核实例)

本文介绍了模板方法模式在C语言中的实现及应用。该模式通过定义算法骨架(模板方法)并将可变步骤延迟到子类实现,解决了代码冗余和维护困难的问题。在C语言中,通过函数指针和结构体组合实现模板方法模式:定义包含固定流程函数和抽象步骤函数指针的结构体,在模板方法中按顺序调用这些指针完成流程。文章通过一个"读取-处理-保存"数据流程的实例,展示了如何创建不同处理逻辑(如大小写转换、字符串反转)的具体实现,同时复用相同的流程框架。最后给出了Linux内核中文件操作和网络协议处理的实例,说明该模式在实际

2026-02-12 09:46:58 866 1

原创 访问者模式在 C 语言中的应用(含 Linux 内核实例)

访问者模式在C语言中的应用:解耦数据结构与操作 摘要:访问者模式通过分离数据结构与操作逻辑,实现系统扩展性。本文以C语言实现为例,展示了文件系统遍历的典型应用。模式核心包括:1)定义元素接口(accept方法)和访问者接口(visit_xxx方法);2)通过函数指针实现双重分派机制;3)新增操作只需添加访问者而不修改元素类。实例演示了打印信息和计算大小两种访问者,验证了模式对"开闭原则"的支持。该模式特别适用于需对稳定数据结构执行多种独立操作的场景,如编译器AST处理、Linux内核VF

2026-02-12 09:44:05 974

原创 contains an operation using the old override syntax. Please convert this layer/metadata before attem

摘要:在构建Yocto镜像时出现错误,主要原因是IMAGE_INSTALL_remove变量使用了旧的覆盖语法。

2025-12-23 16:15:55 286

原创 设计模式之适配器模式在 C 语言中的应用(含 Linux 内核实例)

适配器模式在C语言中的应用 适配器模式通过接口转换使不兼容的类能协同工作。在C语言中,可通过结构体封装和函数指针实现: 定义目标接口:客户端期望的接口格式 明确适配者:需被适配的旧接口 实现适配器:通过函数指针转换调用适配者 典型应用场景: 电压转换(实例1:两脚插头转三脚插座) 数据格式转换(实例2:CSV转JSON) 新旧API兼容(实例3:旧版函数适配新版接口) 优势: 复用旧代码无需修改源码 解耦客户端与适配者 支持平滑系统升级 实现要点:适配器内部完成参数/返回值转换,对客户端透明。

2025-11-28 14:02:09 903

原创 设计模式之单例模式在 C 语言中的应用(含 Linux 内核实例)

单例模式是一种创建型设计模式,确保一个类仅有一个实例并提供全局访问点。其核心价值在于避免资源浪费和状态不一致,适用于日志管理器、配置管理器等需要全局唯一实例的场景。 在C语言中,单例模式可通过静态全局变量和封装创建函数实现。典型实现方式包括: 懒汉式(首次使用时创建,需线程安全) 饿汉式(程序启动时创建) 文中提供了两个典型实例: 日志管理器(懒汉式):使用双重检查锁定保证线程安全 配置管理器(饿汉式):程序启动时直接初始化静态实例 单例模式解决了全局资源重复创建、状态冲突等问题,是系统设计中常用的模式。

2025-11-28 13:59:45 1032

原创 设计模式之建造者模式在 C 语言中的应用(含 Linux 内核实例)

摘要:建造者模式是一种创建型设计模式,通过将复杂对象的构建过程与表示分离,实现灵活的对象创建。本文以C语言为例,演示如何实现建造者模式,核心包括产品结构体、建造者接口、具体建造者和指挥者四个角色。通过汽车构建实例,展示基础版和豪华版汽车的分步构建过程,指挥者控制构建流程(先底盘→发动机→车身),最终生成独立于构建过程的产品对象。该模式解决了构造函数臃肿、构建顺序易错等问题,使复杂对象创建更灵活可维护。

2025-11-25 14:11:26 1076

原创 设计模式之抽象工厂模式在 C 语言中的应用(含 Linux 内核实例)

本文介绍了抽象工厂模式在C语言中的实现方法。该模式通过定义抽象工厂接口来创建相关联的产品家族,实现工厂与产品的解耦,支持整体替换产品系列。文章详细说明了抽象工厂模式的核心价值、解决的问题,以及如何在C语言中通过结构体和函数指针实现该模式。最后通过一个跨平台UI组件创建的实例,展示了Windows和Linux两个产品家族的具体实现方式,包括按钮和文本框两种相关产品的创建过程。

2025-11-25 14:08:13 1343

原创 rk3568可以跑kernel6.1吗?

imx8m和am62x,都是可以支持kernel6.1的。那么rk3568可以跑kernel6.1吗?

2025-11-25 11:08:44 80

原创 设计模式之工厂模式在 C 语言中的应用(含 Linux 内核实例)

工厂模式是一种创建型设计模式,通过统一的工厂接口创建对象,隐藏对象创建细节,实现对象创建与使用的解耦。在C语言中,可以通过结构体封装和函数指针实现工厂模式,主要分为简单工厂和工厂方法两种形式。简单工厂适用于对象类型较少的情况,通过类型参数区分不同对象;工厂方法则为每种对象定义专属工厂,更易于扩展。文中通过形状创建和日志器两个实例,展示了工厂模式的具体实现方式,包括抽象产品定义、具体产品实现以及工厂的创建逻辑。这种模式有效降低了代码耦合度,提高了系统的可扩展性。

2025-11-24 14:13:46 1156

原创 设计模式之原型模式在 C 语言中的应用(含 Linux 内核实例)

原型模式是一种创建型设计模式,通过复制已有对象(原型)来创建新对象,避免重复初始化。C语言实现时,使用结构体封装原型对象,通过函数指针定义克隆接口,支持浅克隆和深克隆。 示例1展示了用户对象的基础克隆,复制ID、姓名等属性。示例2演示了含动态内存属性的深克隆,确保复制指针指向的内容而非仅指针本身。原型模式适用于复杂对象初始化或批量创建相似对象场景,提高效率并保持一致性。 关键点: 原型模式解耦对象创建与实现 C语言通过结构体和函数指针实现 区分浅克隆(基础属性)和深克隆(动态内存) 适用于资源密集型对象的创

2025-11-24 14:10:54 701

原创 从对象创建到行为协作:三大类设计模式帮你解决 90% 的架构问题

本文梳理了创建型和结构型设计模式的核心特点与适用场景。创建型模式(单例、工厂、抽象工厂、建造者、原型)聚焦对象创建过程,通过封装实例化逻辑提高灵活性;结构型模式(适配器、桥接、组合、装饰、外观、享元、代理)关注类与对象的组合关系,优化系统结构。两类模式分别从对象创建与组织角度提升代码复用性和可维护性,开发者需根据具体需求选择合适模式。

2025-11-06 09:01:42 724

原创 图解码说-六大设计原则(开闭原则、单一职责原则、里氏替换原则、接口隔离原则、依赖倒置原则、迪米特法则)

本文探讨了在C语言中实现面向对象设计模式的四个基本原则: 单一职责原则(SRP):强调每个函数或结构体只负责一个功能,如数据处理与显示分离,提高模块化与可维护性。 开闭原则(OCP):通过函数指针支持扩展(如新增排序算法),避免修改已有代码,增强系统稳定性。 里氏替换原则(LSP):子类型需严格遵循基类契约,如通过结构体嵌套实现多态,确保替换时的行为一致性。 接口隔离原则(ISP):拆分庞大接口为更小、聚焦的接口,避免强制实现冗余功能,降低耦合。 这些原则通过C的结构体与函数指针模拟面向对象特性,提升代码的

2025-11-06 09:00:59 817

原创 图解码说-六大UML类图关系(依赖,继承,实现,关联,聚合,组合)

摘要:UML类图是面向对象设计的核心工具,通过六大关系描述类间交互逻辑。继承(is-a)使用空心三角实线,实现(can-do)用虚线;依赖(临时使用)为虚线箭头;关联(长期持有)为实线箭头;聚合(部分独立)用空心菱形实线,组合(强依赖)用实心菱形实线。识别时先看符号形状,再判断关系强度与生命周期,最后对应业务语义。掌握这些规则可快速解析系统结构,提升设计效率。(148字)

2025-10-28 16:13:21 731

原创 设计模式之适配器模式c语言实例分析及内核应用

适配器模式通过接口转换实现不兼容组件的协同工作。在C语言中,可通过结构体封装和函数指针实现该模式。典型应用包括: 硬件接口适配(如电压转换) 数据格式转换(如CSV转JSON) API版本适配(旧版接口适配新版) 核心实现方式: 定义目标接口(客户端期望的格式) 封装适配者(已有不兼容接口) 创建适配器结构体,实现目标接口并内部调用适配者 优势在于无需修改已有代码即可实现接口兼容,适用于整合遗留系统或第三方库的场景。

2025-10-27 11:04:32 700

原创 [xboard] 34 buildroot 的overlay机制

Buildroot的overlay机制允许用户在生成的根文件系统基础上定制文件,无需修改Buildroot源码。通过在System configuration中配置BR2_ROOTFS_OVERLAY指向自定义目录(推荐放在board/<manufacturer>/<boardname>/rootfs-overlay/),该目录下的文件会覆盖output/target/中同名文件。示例展示了创建overlay目录、添加文件并验证结果的完整流程。此外,Buildroot还提供post-

2025-10-12 19:57:42 207

原创 [xboard] 33 buildroot处理补丁的3种方法及应用示例

本文介绍了补丁的制作方法及其在Buildroot中的应用。主要内容包括:1)三种补丁制作方式(diff命令、git工具、quilt工具);2)Buildroot中三种补丁管理方案(全局补丁、包内补丁、结构化包补丁);3)通过示例演示如何在Buildroot中创建测试包、准备补丁并应用。文章重点讲解了补丁生成与应用的具体命令,以及Buildroot项目中对补丁的组织管理方式,为嵌入式开发中的代码修改与协作提供了实用指导。

2025-10-11 15:58:53 138

原创 [xboard] 31 buildroot应用(包)获取代码的4种方法大总结

本文介绍了Buildroot中获取代码的两种主要方法:本地代码获取和通过GitHub获取。本地代码获取通过在.mk文件中定义源代码位置和使用方法,示例展示了如何编译本地应用并安装到目标系统。主流方法则通过GitHub自动下载指定版本的代码包,示例以linux-serial-test为例说明配置和下载过程。两种方法均展示了Buildroot包管理的基本流程,包括同步、配置、编译和安装步骤。

2025-10-11 15:56:42 227

原创 [xboard] 32 buildroot应用编译(make cmake automake)

Buildroot作为自动化构建系统,通过包定义文件统一不同构建系统的编译流程。本文展示了Makefile和CMake两种构建系统的集成实现:1) Makefile项目通过定义.mk文件配置编译参数,使用TARGET_CC等变量完成交叉编译;2) CMake项目通过CMakeLists.txt管理构建过程,Buildroot自动处理配置阶段。两种方式最终都生成目标平台可执行文件并安装到指定目录,验证了Buildroot对不同构建系统的兼容性。文章提供了完整的配置文件和编译日志,展示了从源码到二进制产物的完整

2025-10-10 10:20:42 711

原创 [xboard] 30 buildroot应用的编译方法大总结

Buildroot常用命令摘要 Buildroot提供了丰富的配置和编译命令,包括图形化配置(menuconfig等)、交叉编译器编译(make sdk)、包管理命令(<pkg>-build等)、内核和uboot定制命令(linux-menuconfig等)。支持多种操作:保存配置(savedefconfig)、查看依赖关系(show-depends)、生成依赖图(graph-depends)、详细编译(V=1)等。还提供清理命令(distclean)、SDK生成(make sdk)和帮助查看(

2025-10-10 10:16:33 71

原创 [xboard] 29 buildroot最小根文件系统移植

本文对比了四种常用根文件系统工具(Buildroot、Debian/Ubuntu、Yocto Project和OpenWrt)的适用场景,重点介绍了Buildroot的特点和使用方法。文章详细讲解Buildroot的下载方式(官网、Git和LTS版本)和代码结构,并以ARM Cortex-A8为例,演示了从配置目标架构、工具链到系统设置的全过程。最后简要说明了编译步骤,输出包含ext格式的根文件系统镜像。Buildroot因其简单高效的特点,特别适合资源受限、快速启动的小型嵌入式项目。

2025-10-10 10:14:35 248

原创 [xboard] 28 busybox最小根文件系统

本文介绍了Linux根文件系统类型及BusyBox构建最小系统的过程。主要内容包括:1)常用根文件系统特点(ext4、squashfs、jffs2/ubifs、NFS);2)BusyBox的三种下载方法和代码结构解析;3)交叉编译BusyBox的具体步骤;4)构建最小根文件系统的目录结构创建和设备文件配置方法。文章为嵌入式系统开发提供了实用的根文件系统构建指南,重点讲解了BusyBox的配置编译流程和最小系统环境的搭建要点。

2025-10-09 20:29:25 214

原创 [xboard] 27kernel内核中的kconfig工作原理及完整示例

本文介绍了Linux内核配置系统的Kconfig语法和使用方法。主要内容包括:1) 配置界面的组织结构,说明主界面显示项与各目录下Kconfig文件的对应关系;2) 配置选项的基本语法,包括bool/tristate/string等数据类型定义、depends on/select依赖关系、menu/choice等组织结构;3) 通过示例展示了完整的Kconfig配置,包含版本信息、调试级别、网络驱动、系统配置选项组等典型配置场景。重点讲解了正向/反向依赖、互斥选项、条件编译等关键特性,为内核配置提供了实用参

2025-10-09 20:21:17 57

原创 [xboard] 26 kernel启动流程之initrd、initramfs、ramdisk核心异同

摘要: initrd、initramfs和ramdisk均为内存中的临时文件系统,用于Linux内核启动初期加载驱动和初始化脚本。三者的核心差异在于实现机制:ramdisk是内存模拟的块设备,需格式化文件系统;initrd基于ramdisk机制,需单独加载镜像并由bootloader传递参数;initramfs直接通过cpio.gz包嵌入内核,解压到内存文件系统,效率更高且成为2.6内核后的主流方案。在i.MX6平台上,实现步骤包括:1) ramdisk需制作ext2格式镜像并通过U-Boot加载;2) i

2025-10-08 16:47:28 109

原创 [xboard] 25 kernel启动参数分析(console=ttyS0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait)

本文介绍了Linux内核命令行参数的常见用法及定义方式。主要内容包括: 常见cmdline参数示例,如console、root、rootfstype等串口和根文件系统配置参数; 内核定义的标准cmdline参数,详细说明了root、init、debug等核心参数的用途和选项; 命令行参数的定义机制,对比分析了__setup()、early_param()、core_param()和module_param()四种宏的特点: __setup():最早的参数解析机制,已过时 early_param():用于极早

2025-10-08 16:43:42 232

原创 [xboard] 24 kernel启动流程之c语言篇

本文介绍了ARMv7 CPU内核启动流程,主要分为三个阶段:初始化解压镜像、汇编阶段初始化和C语言阶段初始化。重点分析了start_kernel函数的执行过程,包括极早期初始化、架构相关设置、内存管理初始化、内核参数解析和核心子系统初始化。关键步骤包括:smp_setup_processor_id确定CPU ID、setup_arch进行架构设置、mm_init初始化内存管理、sched_init实现任务调度等。整个启动过程完成了从硬件初始化到多任务调度的完整转换,为系统运行奠定了基础。

2025-10-03 15:26:53 71

原创 [xboard] 23 kernel启动流程之汇编篇

文章摘要: ARMv7内核启动流程分为三个阶段:初始化解压镜像、汇编初始化阶段和C语言阶段。核心入口函数stext位于arch/arm/kernel/head.S,主要完成处理器模式设置(强制SVC模式)、处理器ID验证、内存管理单元(MMU)初始化准备等工作。关键步骤包括通过__lookup_processor_type验证处理器支持,__create_page_tables创建初始页表,最终通过__enable_mmu和__turn_mmu_on启用MMU。其中MMU使能通过设置CP15控制寄存器完成,

2025-10-03 15:24:32 120

原创 [xboard] 22 kernel启动流程之zImage自解压

本文分析了ARMv7架构下Linux内核压缩镜像zImage的生成流程。内核启动包含三个阶段:初始化解压镜像、汇编阶段初始化和C语言阶段初始化。生成过程遵循vmlinux→Image→compressed/vmlinux→zImage的转换链,通过objcopy剥离符号和注释段,并使用LZO算法压缩内核数据。关键步骤包括:将原始内核vmlinux转换为二进制Image(19MB),压缩为piggy_data(8.8MB),最终生成含自解压代码的zImage(8.9MB)。整个流程通过Makefile和链接脚

2025-10-01 15:16:15 110

原创 [xboard] 21 kernel镜像种类(vmlinux Image zImage bzImage uImage)

Linux内核镜像类型及应用场景分析 Linux内核编译会生成多种格式的镜像文件RW: 基础格式: vmlinux(原始ELF格式,含调试信息) Image(未压缩二进制镜像) 压缩格式: : zImage(通用压缩型,<8MB) bzImage(x86专用,突破大小限制) 专用格式: uImage(U-Boot专用) 对 xipImage(就地执行镜像) FIT Image(集成设备树和安全启动) 辅助系统: DMA - initramfs/initrd(临时根文件系统) 不同架构推荐使用不同镜像格

2025-10-01 15:13:18 123

原创 [xboard] 20 kernel Makefile逐行分析2

内核构建关键变量解析 KBUILD_IMAGE:默认构建目标为vmlinux,可通过环境变量或命令行覆盖(如make KBUILD_IMAGE=bzImage),架构目录定义优先级最高。 路径控制变量: INSTALL_PATH:内核违反默认安装至/boot INSTALL_DTBS_PATH:设备树安装路径(如/boot/dtbs/5.15.0) MODLIB:模块安装路径模板(<INSTALL_MOD_PATH>/lib/modules/<版本>) 核心构建逻辑(非外部模块时生效

2025-09-30 22:20:52 63

原创 [xboard] 19 kernel Makefile逐行分析1

本文分析了Linux内核构建系统Makefile的关键设计。首先介绍了版本号规范(5.15.180)和开发分支命名规则(Trick or Treat)。其次阐述了目标过滤机制,通过MAKECMDGOALS检测用户输入,防止直接调用内部目标(__前缀)。然后详细说明了环境控制,包括禁用make内置规则(MAKEFLAGS)、统一区域设置(LC_COLLATE)等。最后解释了输出控制逻辑,通过V参数(0/1/2)和-s选项调节构建过程的详细度。这些设计共同确保了内核构建的可靠性、跨平台一致性和可调试性。

2025-09-30 22:14:20 83

原创 [xboard]18 kernel的历史与下载编译

Linux内核发展历程与代码结构概览 Linux内核由Linus Torvalds于1991年发起,最初作为开源替代UNIX系统。经过30多年发展,从仅支持i386架构的0.01版演进至支持多处理器、64位计算等现代特性的6.x系列,代码量从万行级增至2700万行。其发展历程可分为几个关键阶段:1991-1996年基础建设期、1996-2003年服务器优化期、2003-2015年架构革新期以及2015年至今的成熟稳定期。目前维护7个长期支持版本(LTS),覆盖从嵌入式设备到云服务器的各种场景。 内核代码采用

2025-09-29 21:37:50 188

原创 [xboard]17 uboot中的binman

本文介绍了U-Boot构建系统中的binman工具,用于自动化镜像组装。主要内容包括:1)binman工具的功能概述,支持多种镜像格式和灵活布局控制;2)具体生成步骤,包括启用binman配置、创建镜像描述文件(.its)和编译生成镜像;3)关键原理说明,如镜像描述文件结构和地址映射;4)镜像验证方法和常见问题解决方案。通过binman工具可高效生成符合全志sunxi平台要求的u-boot-sunxi-with-spl.bin镜像,简化复杂镜像管理流程。文中还提供了示例.its文件配置,规范了SPL和U-B

2025-09-28 21:15:25 141

原创 [xboard]16 uboot启动控制内核的3种方法(boot.scr uEnv.txt extlinux.conf)

每种启动配置文件都有其特定的用途和创建方法。选择哪种取决于你的具体需求和系统环境。例如,如果你需要在U-Boot中快速加载一个操作系统而不需要复杂的脚本处理,boot.scr可能是一个好选择。如果你需要更灵活的环境变量设置,uEnv.txt可能更适合。而如果你使用的是基于EXT Linux的系统,那么extlinux.conf将是必需的配置文件。确保根据你的系统需求选择合适的配置文件,并正确设置和部署它们。

2025-09-28 20:22:03 261

原创 [xboard]15 uboot加载内核启动分析

bootm命令启动流程分析:该命令支持三种启动方式(标准启动、子命令、FIT启动),核心函数do_bootm_states通过状态机模式依次执行查找OS镜像、加载组件、准备环境等操作,最终调用boot_selected_os跳转至内核。关键步骤包括boot_prep_linux准备启动参数(支持设备树或传统tag方式),boot_jump_linux通过函数指针kernel_entry实现架构相关的内核跳转(ARM64采用四参数调用约定,ARM32使用三参数约定),并支持调试用的模拟跳转功能。

2025-09-28 20:11:26 73

高频发射机与接收机课程设计论文

这是一个高频发射机与接收机的课程设计论文,即里面含有收音机和发射台等相关资料.

2009-06-30

H264入门及进阶文档

本压缩包包含关于H264通用的6个进阶文档,分别为: 1 《H.264_MPEG-4 Part 10 White Paper》 2 《Video coding using the H.264 MPEG-4 AVC compression standard》 3 《H.264 and MPEG-4 video compression》 4 《Overview of the H.264_AVC Video Coding Standard》 5 《Overview and Introduction to the Fidelity Range Extensions》 6《H.264_MPEG-4 AVC Reference Software Manual》

2013-12-27

ubuntu下安装ffmpeg和X264之ffmepg源码

ubuntu下安装ffmpeg和X264之ffmepg源码,

2013-07-31

ubuntu下安装ffmpeg和X264之X264源码

ubuntu下安装ffmpeg和X264,最新的X264源码

2013-07-31

Delphi助手(代码自动补全等)

最新的Delphi编程助手,可在Win7、XP系统下运行,只要下载,点击安装exe文件,重新启动Delphi便可以使用。其重主要的功能就是在编写代码的时候,自动补全代码,非常好用。 可运行在Delphi5\Delphi6\Delphi7以及最新的Delphi2010上。

2012-10-17

Android系统源代码情景分析 【罗升阳】

罗升阳,2007年毕业于浙江大学计算机系,2010年毕业于上海交通大学计算机系,在国内知名IT技术社区CSDN上发表了数十篇高质量的Android系统原创性文章,并且开设博客专栏--《老罗的Android之旅。 在内容上,本书结合使用情景,全面、深入、细致地分析Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层(Application Framework)以及应用程序层(Application)。 在组织上,本书将上述内容划分为初识Android系统、Android专用驱动系统和Android应用程序框架三大篇章。初识Android系统篇介绍了参考书籍、基础知识以及实验环境搭建;Android专用驱动系统篇介绍了Logger日志驱动程序、Binder进程间通信驱动程序以及Ashmem匿名共享内存驱动程序;Android应用程序框架篇从组件、进程、消息以及安装四个维度来对Android应用程序的框架进行了深入的剖析。

2018-04-23

88图形汉字取模软件

很好很方便的汉字取模软件 这是一个汉多功能的汉字转化成数字码的软件,方便你使用!

2009-07-29

数学一历年真题(1997-2008)

数学真题,内含有答案分析,详细解说!还有丰富重难点讲解,对考研要求140分的同学应该能起到一定作用!

2009-09-22

ubuntu下安装ffmpeg和X264之yasm1.2.0

ubuntu下安装ffmpeg和X264之yasm1.2.0,可以提高运行效率

2013-07-31

比特计算定时器计算数码管计算

这是一个集单片机各应用方面的工具软件,里面含有各种小软件,它们是我们应用单片机开发过程中,不可少的@

2009-07-29

奔跑吧 Linux内核

本书内容基于Linux4.x内核,主要选取了Linux内核中比较基本和常用的内存管理、进程管理、并发与同步,以及中断管理这4个内核模块进行讲述。全书共分为6章,依次介绍了ARM体系结构、Linux内存管理、进程调度管理、并发与同步、中断管理、内核调试技巧等内容。本书的每节内容都是一个Linux内核的话题或者技术点,读者可以根据每小节前的问题进行思考,进而围绕问题进行内核源代码的分析。 本书内容丰富,讲解清晰透彻,不仅适合有一定Linux相关基础的人员,包括从事与Linux相关的开发人员、操作系统的研究人员、嵌入式开发人员及Android底层开发人员等学习和使用,而且适合作为对Linux感兴趣的程序员的学习用书,也可以作为大专院校相关专业师生的学习用书和培训学校的教材。

2018-04-20

Essential Linux-DeviceDrivers

linux驱动圣经之一 Chapter 1, “Introduction”, starts our tryst with Linux. It hurries you through downloading the kernel sources, making trivial code changes, and building a bootable kernel image. Chapter 2, “A Peek Inside the Kernel” , takes a brisk look into the innards of the Linux kernel and teaches you some must-know kernel concepts. It first takes you through the boot process and then describes kernel services particularly relevant to driver development such as kernel timers, concurrency management, and memory allocation. Chapter 3, “Kernel Facilities ”, examines several kernel services that are useful components in the tool box of driver developers. The chapter starts by looking at kernel threads, which is a way to implement background tasks inside the kernel. It then moves on to helper interfaces such as linked lists, work queues, completion functions, and notifier chains. These helper facilities simplify your code, weed out redundancies from the kernel, and help long-term maintenance. Chapter 4, “Laying the Groundwork” , builds the foundation for mastering the art of writing Linux device drivers. It introduces devices and drivers by giving you a bird's eye view of the architecture of a typical PC-compatible system and an embedded device. It then looks at basic driver concepts such as interrupt handling and the kernel’s device model. Chapter 5, “Character Drivers” , looks at the architecture of character device drivers. Several concepts introduced in this chapter such as polling, asynchronous notification, and I/O control, are relevant to subsequent chapters as well, since many device classes discussed in the rest of the book are ‘super’ character devices. Chapter 6, “Serial Drivers” , explains the kernel layer that handles serial devices. Chapter 7 , “Input Drivers” , discusses the kernel’s input subsystem that is responsible for servicing devices such as keyboards, mice, and touch screen controllers. Chapter 8, “The Inter-Integrated Circuit Protocol ”, dissects drivers for devices such as EEPROMs that are connected to a system’s I2 C bus or SMBus. This chapter also looks at other serial interfaces such as SPI bus and 1-wire bus. Chapter 9, “PCMCIA and Compact Flash ”, delves into the PCMCIA subsystem. It teaches you to write drivers for devices having a PCMCIA or Compact Flash form factor. Chapter 10, “Peripheral Component Interconnect”, looks at kernel support for PCI and its derivatives. Chapter 11, “Universal Serial Bus” ,explores USB architecture and explains how you can use the services of the Linux-USB subsystem to write drivers for USB devices. Chapter 12, “Video Drivers” , examines the Linux-Video subsystem. It finds out the advantages offered by the frame buffer abstraction and teaches you to write frame buffer drivers. Chapter 13, “Audio Drivers” ,describes the Linux-Audio framework and explains how to implement audio drivers. Chapter 14, “Block Drivers” ,focuses on drivers for storage devices such as hard disks. In this chapter, you will also learn about the different I/O schedulers supported by the Linux Block subsystem. Chapter 15, “Network Interface Cards” , is devoted to network device drivers. You will learn about kernel networking data structures and how to interface network drivers with protocol layers. Chapter 16, “Linux without Wires” , looks at driving different wireless technologies such as Bluetooth, Infrared, WiFi, and cellular communication. Chapter 17, “Memory Technology Devices”, discusses flash memory enablement on embedded devices.The chapter ends by examining drivers for the Firmware Hub found on PC systems. Chapter 18, “Embedding Linux” , steps into the world of embedded Linux. It takes you through the main firmware components of an embedded solution such as bootloader, kernel, and device drivers. Given the soaring popularity of Linux in the embedded space, it’s more likely that you will use the device driver skills that you acquire from this book to enable embedded systems. Chapter 19, “Drivers in User Space”, looks at driving different types of devices from user space. Some device drivers, especially ones that are heavy on policy and light on performance requirements, are better off residing in user land. This chapter also explains how the Linux process scheduler affects the response times of user mode drivers. Chapter 20, “More Devices and Drivers” , takes a tour of a potpourri of driver families not covered thus far, such as Error Detection And Correction (EDAC), FireWire, and ACPI. Chapter 21, “Debugging Device Drivers” , teaches about different types of debuggers that you can use to debug kernel code. In this chapter, you will also learn to use trace tools, kernel probes, crash-dump, and profilers. When you develop a driver, be armed with the driver debugging skills that you learn in this chapter. Chapter 22, “Maintenance and Delivery” , provides perspective on the software development life cycle. Chapter 23, “Shutting Down” , takes you through a checklist of work items when you embark on Linux-enabling a new device. The book ends by pondering What next?

2018-04-20

图像识别参考代码

对学习、研究图像识别的人有一定的用。此系统一共有2个,他们文件相互独立,可分别下载运行,也可都下载。此为文件1.

2013-11-05

ubuntu下安装ffmpeg和X264之ffmpeg源码

ubuntu下安装ffmpeg和X264之ffmpeg源码,

2013-07-31

图像处理源代码

对学习、研究图像识别的人有一定的用。此系统一共有2个,他们文件相互独立,可分别下载运行,也可都下载。此为文件2.

2013-11-05

just-for-fun

分别包含中文版本和英文版本 《Just for Fun: The Story of an Accidental Revolutionary》,是Linux内核的创建者林纳斯·托瓦兹(Linus Torvalds)的自传。这本书由他和大卫·戴蒙德(David Diamond)联合撰写,叙述林纳斯·托瓦兹从小的成长历程、创建Linux内核、Git的过程以及软件世界的江湖恩怨。全书主体部分采用一问一答的访谈形式,由戴蒙德在他们的的汽车旅行过程中记录完成;另外一部分收录了林纳斯的几篇专题论述文章,比如作者关于软件版权的一些批判性意见。

2018-04-23

i2c和smbus规范集,学习开发必备

i2c和smbus规范集,学习开发必备

2026-04-16

嵌入式spi规范集学习研究必备

嵌入式spi规范集学习研究必备

2026-04-16

嵌入式Uart-16550规范集

嵌入式Uart-16550规范集

2026-04-16

完整ARM GIC系列通用文档

包括GIC版本2一般是arm平台用的,版本3/4一般是arm64用的,版本5,下一代用的

2025-12-22

Keil Scatter

在keil中,链接脚本默认会自动生成,即scatter文件,类似gcc中的ld文件 此文档描述了有关scatter文件的写法和用法

2025-08-22

uboot-shell-hush

内容概要:本文档是现代Shell脚本语言Hush的官方指南。Hush旨在解决传统Shell脚本语言的局限性和易错性,提供更强大的编程构造、合理的在uboot启动过程中,经常会有脚本运行,但其又与我们在linux系统下执行的shell脚本有差异,有心想了解、学习uboot命令行的脚本,此文档是其不二选择

2025-07-04

SD规范 SDIO规范(全套规范)

1 PartA2_SD Host_Controller_Simplified_Specification_Ver4.20 2 PartA2_SD_Host_Controller_Simplified_Specification_Ver2.00 3 PartE1_SDIO_Simplified_Specification_Ver2.00 4 PartE1_SDIO_Simplified_Specification_Ver3.00 5 Part1 PhysicalLayerSimplifiedSpecificationVer9.10Fin_20231201 6 PartE7_Wireless_LAN_Simplified_Addendum_Ver1.10 7 Part1_Extended_Security_Simplified_Addendum_Ver1.00 8 Part1_NFC_Interface_Simplified_Addendum_Ver1.00 9 Part1_UHS-II_Simplified_Addendum_Ver1.02 10 PartA1_ASSD_Extension_Simplified_Specification_Ver2.00 11 PartE2_SDIO Bluetooth_Type_A_Simplified_Specification_Ver1.00 12 SDUC-Host-Implementation-Guideline_Ver1.00

2025-04-24

官方emmc规范(多个版本)

- **4.4 版本** - 介绍了基础特性和标准,适合初学者了解eMMC的基本框架。 - **4.41 版本** - 对4.4版进行了修订和完善,优化了部分规范以适应市场和技术的发展。 - **4.5 版本** - 引入了新的性能改进和技术特性,进一步提升了存储效率。 - **4.51 版本** - 包含针对4.5版的小幅修正和增强,确保技术规范的准确性和实用性。 - **5.0 版本** - 重大更新,引入更多高级功能,支持更高的数据传输速率,对现代高性能需求进行了响应。 - **5.01 版本** - 在5.0基础上的维护更新,保持标准的一致性和先进性。 - **5.1 版本** - 最新的公开版本之一,提供了更全面的标准规范,加强了数据管理能力,提升了可靠性

2025-04-24

ARM架构与ARM指令合集

ARM架构 一个arm-v7m架构、二个armv7-ar架构、一个armv8m架构 ARM指令 包含thumb指令介绍、gnu汇编宏、常用汇编指令、gnu汇编器

2025-04-21

STM32F103 USART application examples

包括: * 1个说明文档,包括介绍stm32 uart的使用,包括DMA_Interrupt、DMA_Polling、HalfDuplex、HyperTerminal Hwflowcontrol、Hypr Terminal_Interrupt、Interrupt、IrDA、MultiProcessor、Polling、Printf、Smartcard、Syschronous * 测试demo,包括对应上面所有的用例 * 正点原子战舰板卡的main.c测试文件

2025-04-10

RTL8761芯片手册及驱动源码

1 RTL8761A芯片手册 2 RTL8761B芯片手册 3 驱动源码 4 固件

2024-12-06

常用edid编辑工具集

本文件包含如下4个edid编辑工具 CustomResolutionUtility 可以编辑 EEditGold_1p02p014强烈推荐,分析edid裸数据好帮手 Moninfo AW EDID Editor

2024-10-16

HDMI EDID常用文档

本文档包含 1 edid-editor-white-paper,常用解析edid工具(https://download.csdn.net/download/gjianw217/89893130) 2 HDMI EDID1.4规范,同5 3 understandingedid,即edid的图形化解析 4 VESA-EEDID-A1,即官方有关edid基础部分的定义 5 VESA-EEDID-A2,即官方有关edid扩展部分的定义 6 高清多媒体接口(HDMI)EDID规范详解,中文有关edid的详细解析

2024-10-16

win10下libws2-32静态库

在codeblock开发环境下,要想编译socket示例,就需要第3方socket库,即libws2_32.a库,经测试在win10环境下,可用示例代码见: https://blog.csdn.net/gjianw217/article/details/139459028

2024-06-05

K4B4G1646Q-HYK0

三星DDR存储芯片文档,K4B4G1646E-BYK0,256 X16 4Gb DDR3 DRAM

2018-06-16

LED驱动控制芯片

LED驱动控制芯片:其中包含CT1628,FD620,FD650,PT6964,SM1628常用的文档,大同小异

2018-11-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除