自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(185)
  • 资源 (8)
  • 收藏
  • 关注

原创 OpenMP 全面解析:用最简单的方式让你的 C 代码跑满多核 CPU

OpenMP 多核并行编程实战指南 本文介绍了 OpenMP 这一简单高效的 C/C++ 多核并行编程框架。OpenMP 通过简单的编译器指令(如 #pragma omp parallel for)即可实现代码并行化,无需手动管理线程、锁或任务分配。 文章详细解析了 OpenMP 的核心语法结构,包括 parallel、for 等关键指令的使用方法,并提供了清晰的三步使用流程:添加 pragma 指令、编译时添加 -fopenmp 参数、运行前设置线程数。 通过一个计算大数组平方的实战示例,直观展示了 Op

2026-03-16 18:21:51 354

原创 USB‑C PD 充电系统完整解析(SC8886 + FUSB302)

USB-C PD充电系统解析(SC8886 + FUSB302) 本文详细解析了Rockchip平台基于SC8886和FUSB302的USB-C PD充电系统架构。系统由三部分组成:FUSB302负责PD协商和角色检测,SC8886实现电源转换/充电/OTG功能,Linux USB-C Connector Class管理系统角色。文章深入讲解了硬件配置、DTS设置、PD协商流程、电压选择机制以及OTG反向供电实现。重点分析了TCPM的电压选择规则(默认优先最高电压)、Sink PDO配置方法,并提供了常见问

2026-03-11 10:59:47 535

原创 从“原始模型”到“板子上真正跑起来”

本文系统梳理了AI模型从原始训练到硬件部署的全流程。首先从任务类型(LLM/VLM/CV)确定模型家族,然后分析不同训练框架(PyTorch/TensorFlow等)对应的原始模型格式。重点阐述了ONNX作为通用中间格式的关键作用,以及各芯片厂商(如Rockchip/NVIDIA等)特有的部署格式。特别解释了RKNN-Toolkit的工作机制:支持静态图框架(Caffe/TF等)直接转换,但PyTorch需先转ONNX。最后区分了PC端(模型转换)与ARM端(仅推理)的功能差异,并说明YOLO系列从Dark

2026-02-25 14:39:06 945

原创 Linux 音频系统全景解析:PipeWire、PulseAudio 与 ALSA 的层次关系

本文系统解析了Linux音频架构的多层体系:内核ALSA驱动提供硬件控制,UCM2定义声卡场景配置,PulseAudio路径策略决定控件切换逻辑,PipeWire作为新一代音频服务器整合各层功能。整个系统通过alsa-card-profile实现配置转换,最终由桌面UI调用PipeWire/PulseAudio API完成用户交互。这种分层设计既保持硬件兼容性,又提供灵活的音频处理能力,是Linux音频系统的核心架构特点。

2026-02-12 11:24:30 479

原创 在 Android 14 上使用 scrcpy 的投屏问题与解决方案

问题根源:scrcpy 1.24 不兼容 Android 14 的系统 API。解决方案:升级到 scrcpy 最新版本(≥3.3.4)。验证结果:在 Firefly AIO-3588Q 板卡上测试,scrcpy 3.3.4 已能正常投屏和交互。✅一句话总结在 Android 14 上,旧版 scrcpy 会因系统 API 变更导致投屏报错,升级到 scrcpy 3.3.4 即可解决问题。

2026-02-10 14:57:35 481

原创 V4L2 框架下 `v4l2-ctl --list-frameintervals` 调用链解析

摘要: 分析v4l2-ctl --list-frameintervals命令触发双打印现象。用户空间发起VIDIOC_ENUM_FRAMEINTERVALS后,内核分两阶段处理:先调用sensor驱动(IMX415)的g_frame_interval输出帧率信息,再通过CIF驱动查询时因sensor->sd指向CSI2桥接设备(未实现该接口)而回退到默认30fps。根因是CIF层未正确绑定到真实sensor节点,建议检查media拓扑和接口透传。该现象本质是单次ioctl在内核subdev与captu

2026-01-30 13:56:15 808

原创 V4L2 Subdev g_frame_interval 源码解析

本文解析了V4L2框架中的g_frame_interval接口实现机制。该接口用于获取子设备(sensor/ISP等)的帧间隔(帧率倒数),定义在v4l2-subdev.h中,通过v4l2_subdev_call宏调用。驱动可自定义实现(如IMX415返回模式表中定义的fps),若未实现则上层默认使用30fps。文章详细介绍了调用路径、接口定义位置和典型驱动实现方式,帮助理解V4L2子设备帧率获取机制。

2026-01-30 09:27:30 457

原创 模拟 GStreamer 获取帧率能力:CIF 与 ISP 的差异

本文分析了GStreamer在视频采集时获取帧率能力的机制差异。通过V4L2的VIDIOC_ENUM_FRAMEINTERVALS查询,发现ISP路径(/dev/video11)返回连续型帧率能力,使caps协商宽松;而CIF路径(/dev/video0)返回离散型能力,要求严格匹配。当sensor未实现g_frame_interval时,ISP会回退到30fps,而CIF可能返回非法值导致GStreamer报错。这种底层实现的差异直接影响上层应用的帧率设置行为。

2026-01-29 14:42:46 342

原创 视频编解码与 GOP 结构详解

本文介绍了视频编解码中的关键概念:帧类型(I帧、P帧、B帧)及其特性,详细解释了GOP(图像组)结构的定义与参数(N、M),分析了显示顺序与解码顺序的差异。同时阐述了编码参数(码率、GOP长度、M值等)对视频质量的影响,并针对不同应用场景(直播、点播、监控)提供了参数配置建议。文章帮助读者理解视频编码的基本原理和优化方向,为实际应用中的参数选择提供参考依据。

2026-01-28 18:18:54 853

原创 Flutter 在嵌入式开发的策略与生态

Flutter在嵌入式开发领域已有多个成熟方案,主要包括Sony主导的flutter-elinux(适合工业部署)、社区项目eflutter(轻量级)、flutter-pi(树莓派专用)以及自定义embedder方案。这些项目通过OpenGL ES/Vulkan实现硬件加速渲染,但需注意硬件支持要求。选择方案需考虑场景需求:工业级推荐flutter-elinux+Yocto集成,树莓派开发可选flutter-pi,特殊硬件需自建embedder。丰田等工业案例已验证Flutter在嵌入式领域的可行性,但开发

2026-01-20 18:12:00 717

原创 # Xorg 配置与 modesetting 驱动详解:从设备节点到显示旋转

Xorg 配置与 modesetting 驱动解析 Xorg 是 Linux 下的图形显示服务器,其配置文件由多个 Section 组成,包括 Device(显卡驱动)、Monitor(显示器属性)和 Screen(绑定显示设备)等。现代系统通常使用 modesetting 驱动(modesetting_drv.so)通过 DRM/KMS 接口与内核交互,尤其适用于 ARM/Rockchip/Mali 平台。 设备节点中,card0 负责显示输出,card2 处理 GPU 渲染。modesetting 驱动

2026-01-15 18:15:36 691

原创 Linux 内核动态打印机制详解

本文介绍了Linux内核的动态调试机制(Dynamic Debug),重点讲解如何通过debugfs控制dev_dbg()和pr_debug()等调试信息的输出。主要内容包括:1) 内核编译需启用CONFIG_DYNAMIC_DEBUG和CONFIG_DEBUG_FS;2) 通过/sys/kernel/debug/dynamic_debug/control文件按文件、函数、模块或行号范围启用调试输出;3) 使用启动参数或模块加载参数预配置调试选项;4) 调整日志级别确保调试信息可见。该机制为内核调试提供了灵

2026-01-14 10:24:48 461

原创 USB 通讯异常后的 reset/枚举机制

USB通讯异常处理机制概述 USB子系统通过两条路径处理设备异常:外部HUB路径(由hub.c主导)和直连root HUB路径(由host驱动实现)。核心模块包括USB Core、Host Controller驱动和Controller IP层。系统通过关键宏定义控制重试策略(如5次端口复位、2次地址分配尝试)和超时参数(10-800ms不等)。异常处理流程包括端口状态检测、多重复位尝试、设备验证和完整枚举。无论是外部HUB还是直连端口,最终都遵循hub.c的统一策略,只是底层操作由不同模块实现。系统还包含

2026-01-13 17:56:01 662

原创 Linux 图形栈全景解析:从 OpenGL 到 DRM/KMS 的完整链路

本文系统解析了Linux图形栈的完整架构,从应用层到硬件层的全链路实现。主要内容包括:渲染API层(OpenGL/GLES/Vulkan)、平台绑定层(GLX/EGL/WSI)、用户态buffer管理(GBM/dma-buf)、内核显存管理(GEM/TTM)、显示框架(DRM/KMS)、用户态驱动(Mesa)以及窗口系统(X11/Wayland)。文章特别强调了嵌入式系统中EGL和GBM的重要性,并对比了Qt在EGLFS和Wayland模式下的实现差异。最后提供了完整的Linux图形栈层级示意图,帮助开发者

2025-12-29 15:44:22 1462

原创 Android 多媒体体系完整总结

本文系统梳理了Android多媒体体系架构,包括官方框架和第三方生态。官方栈从应用层的VideoView/MediaPlayer到框架层的MediaCodec/AMediaCodec,再到底层的Stagefright和OMX硬件抽象层。第三方方案如FFmpeg、ExoPlayer等提供补充选择。重点对比了MediaCodec与AMediaCodec的适用场景:前者适合Java/Kotlin应用开发,后者适合Native/C++项目及性能敏感场景。最后通过层级关系图和使用场景对比表,帮助开发者根据项目需求选择

2025-12-12 10:03:56 1071

原创 Linux 内核设备模型与驱动框架解析 ——以 rk-pcie 为例

本文解析了Linux内核设备模型与驱动框架,重点以rk-pcie为例。内核设备模型采用设备与驱动分离思想,通过总线进行匹配,支持热插拔和sysfs管理。驱动框架为不同总线类型提供统一API,如PCI、USB、I²C/SPI等。Platform驱动用于管理SoC内部非标准片上外设,如rk-pcie驱动负责初始化Rockchip SoC的PCIe控制器并接入标准PCI总线。文章还对比了不同驱动类型的bind/unbind机制差异,指出Platform驱动通常固定绑定,而PCI/USB驱动支持动态匹配。最后说明d

2025-12-04 09:05:59 810

原创 Linux 下 Realtek WiFi/BT 二合一模组详解

📡 Linux 下 Realtek WiFi/BT 二合一模组详解。👉 因此 WiFi 部分通常能自动工作,不需要额外操作。这种架构导致 WiFi 和蓝牙的初始化方式完全不同。3.5 启动 Bluetooth 服务。3.4 hciattach 初始化。执行成功后,系统会生成 hci0。此时 hci0 应该可见。

2025-12-03 20:29:56 1000

原创 Linux 总线模型与 bind/unbind 完整解析

Linux设备模型通过sysfs提供统一的驱动绑定机制。不同总线类型(platform、PCI、I²C、SPI、USB等)会在/sys/bus/下动态注册目录,具体显示取决于内核配置和驱动状态。驱动需通过标准API注册并实现probe/remove方法后,才能在/sys/bus/<bus>/drivers/<driver>/下生成bind/unbind文件。这些文件可用于手动触发设备的绑定或解绑操作,如"echo设备名>bind"会触发probe(),而&q

2025-12-03 15:56:07 1027

原创 Linux 图形系统启动流程与配置详解

↓↓读取 /etc/lightdm/lightdm.conf 和 lightdm.conf.d/*.conf↓启动 seat0↓执行 display-setup-script (/usr/local/bin/xrandr-screen.sh → /etc/default/xrandr)↓启动 Xorg :0↓运行 greeter (lightdm-gtk-greeter)↓用户登录 (autologin 或手动)↓启动桌面会话 (xubuntu, gnome, kde...)

2025-11-26 18:14:35 579

原创 LightDM 启动流程与配置详解

📘 LightDM 启动流程与配置要点 核心角色: LightDM 是 Linux 显示管理器,负责管理 seat(显示终端环境)、启动 Xorg/Wayland 服务器、调用登录界面程序(greeter)和用户会话 关键配置: 主配置:/etc/lightdm/lightdm.conf.d/ 目录下的文件 典型配置: 20-autologin.conf(自动登录) 10-xrandr-screen.conf(显示初始化) 启动流程: systemd → lightdm → 读取配置 → 启动seat0

2025-11-26 17:37:41 633

原创 Android 系统中的 NTP 服务器配置与选择逻辑详解

本文详细解析了Android系统中NTP服务器配置的选择逻辑。主要内容包括:1) 不同来源的NTP服务器配置,包括Framework默认值(config_ntpServer)、SettingsProvider默认值(def_ntp_server)和系统属性覆盖;2) 代码调用流程,核心逻辑在NtpTrustedTime.java中实现三级优先级选择;3) 验证方法,通过adb命令检查实际使用的NTP服务器;4) 常见NTP服务器对比。总结指出NTP服务器选择遵循"系统属性 > Setting

2025-11-25 17:22:35 420

原创 [特殊字符] 嵌入式 Linux 网络管理全景解析:Netplan、systemd-networkd、NetworkManager 与 Wi-Fi 配置

本文系统解析嵌入式Linux网络管理方案,重点剖析Ubuntu引入的Netplan配置工具及其与后端管理器(systemd-networkd/NetworkManager)的协作机制。文章详细介绍了HDMI驱动导致网络初始化的典型问题及解决方案(NETPLAN_GENERATE_SKIP_UDEV_SETTLE),并提供Wi-Fi配置的具体实现方法(配合wpa_supplicant)。通过完整的网络管理关系图,清晰展示各组件间的交互逻辑,最后针对不同应用场景给出明确的配置建议,为嵌入式系统(如RK3588平

2025-11-19 09:33:46 716

原创 [特殊字符]️ 嵌入式 Linux 平台 Wi-Fi 配置与 Netplan 加速启动指南

本文介绍了嵌入式Linux平台下Wi-Fi配置与Netplan启动优化的完整方案。首先详细讲解了使用wpa_supplicant@wlan0.service实例化服务管理Wi-Fi接口的方法,包括配置文件设置、服务启用和IP获取流程。其次对比分析了全局服务和实例化服务的区别,推荐在嵌入式平台采用后者以获得更好的可控性。最后针对Netplan启动延迟问题,提出通过设置NETPLAN_GENERATE_SKIP_UDEV_SETTLE环境变量跳过设备等待以加速启动的方法,并附有自动启动脚本示例。该方案特别适用于

2025-11-18 16:06:20 389

原创 [特殊字符] 嵌入式音频接口全景图解:I2S、TDM、PDM、SPDIF、AC’97 与 PCM 的关系

在嵌入式音频系统中,常见术语如 I2S、TDM、PCM、PDM、SPDIF、AC’97 等常被混用,容易造成理解混乱。│ ├── PDM:1bit 高速流(数字麦克风)│ ├── SPDIF:光纤/同轴传输压缩音频。│ └── AC’97:老式音频总线(主板用)│ ├── TDM:多通道(多个 SLOT)│ ├── I2S:左右声道(2 通道)├── PDM:密度编码,需解码为 PCM。├── AC3 / DTS:压缩多声道音频。├── PCM:线性无压缩,最常见。

2025-11-14 22:29:08 782

原创 理解 `dpkg` 与 `pkg-config`:从安装到编译的完整链路

摘要(139字): 在Linux开发中,dpkg负责安装.deb包(如libvpx-dev),部署头文件、库文件和.pc文件;而pkg-config在编译时读取.pc文件,自动生成-I、-L等编译参数供gcc使用。两者形成"安装→配置→编译"的协作链路:dpkg提供资源,pkg-config解析依赖关系,最终通过gcc $(pkg-config --cflags --libs vpx)完成构建。文中还提供了两者的常用命令速查表,涵盖安装查询和编译辅助功能。

2025-11-07 10:30:00 367

原创 从 Rust 到 Flutter:嵌入式图形与构建工具全景指南

本文系统梳理了构建跨平台应用(RustDesk等)所需的技术栈,包括Rust语言(工具链、cargo)、Flutter框架、系统依赖库(pkg-config、OpenSSL)和图形栈(Mesa/llvmpipe)。重点介绍了这些组件在ARM64架构下的协作方式:Rust处理核心逻辑,Flutter构建UI,通过flutter_rust_bridge通信;Mesa提供OpenGL兼容性;同时涵盖构建工具(cargo-bundle)和可选组件(Redis)的使用方法。文章还提供了各组件安装命令和验证方法,为嵌入

2025-11-06 16:49:11 1091

原创 Linux 磁盘与文件系统工具全景指南

Linux磁盘与文件系统工具摘要 本文系统介绍了Linux下常用的磁盘与文件系统管理工具,包括: 基础工具: fsck:检查修复文件系统错误 fdisk/gdisk:MBR/GPT分区管理 mkfs:格式化创建文件系统 lsblk:查看块设备结构 dumpe2fs:查看ext文件系统元数据 文件系统专用工具: FAT/vfat:fatlabel/fsck.vfat exFAT:exfatlabel/fsck.exfat XFS:xfs_info/xfs_repair Btrfs:btrfs filesyst

2025-10-22 15:05:55 1001

原创 AI 模型部署体系全景:从 PyTorch 到 RKNN 的嵌入式类比解析

📌 AI模型部署全景解析 本文系统梳理了AI模型从训练到嵌入式部署的全流程,类比嵌入式系统开发逻辑: 🔹 部署流程 PyTorch/TensorFlow(源码)→ ONNX/TFLite(中间格式)→ RKNN/TRT(目标平台格式)→ NPU/GPU推理执行 🔹 主流框架对照 PyTorch(.pt)→ONNX TensorFlow(.pb)→TFLite Darknet(.weights)→ONNX 专用芯片平台(如RK3588)需转换.rknn格式 🔹 关键格式解析 ONNX充当"A

2025-10-16 14:31:11 428

原创 在嵌入式 Linux 上配置 PulseAudio 默认输出设备的完整指南

本文介绍了在嵌入式Linux系统上配置PulseAudio默认输出设备的完整指南。主要内容包括:PulseAudio简介及其功能;查看和设置输出设备的方法;实现多声卡同时输出的合并sink技术;永久生效配置方式;解决XDG_RUNTIME_DIR报错问题;以及嵌入式部署建议和常用命令速查。重点阐述了如何通过pactl命令和修改配置文件来管理音频输出设备,特别针对Firefly RK3588等嵌入式平台提供了实用建议。

2025-09-26 11:50:45 1030

原创 LightDM 深度解析:图形登录管理器的机制、TTY 映射与嵌入式调试实战

摘要: 本文深入解析Linux图形登录管理器LightDM的运作机制,重点剖析其架构设计、自动登录流程和TTY映射原理。通过解析Xorg进程和session-child子进程的PID、TTY绑定等关键字段,指导开发者在嵌入式环境中诊断图形界面异常。文章详细说明自动登录配置方法,比较不同greeter组件的特性差异,并提供查看lightdm日志、检查密码修改时间等实用调试命令,最后给出防止密码篡改的系统加固建议。全文结合Ubuntu系统实例,为开发者提供LightDM的深度技术参考。

2025-09-25 16:00:44 764

原创 XFCE 桌面环境中的 Splash 与 Dock

XFCE桌面环境中的Splash与Dock功能解析,包括概念区分和实施指南。Splash分为系统级(plymouth)、桌面级(xfce4-session)和应用级三种。Dock功能主要由第三方工具Plank提供,相比原生xfce4-panel具有更丰富的视觉效果。文章详细介绍了如何关闭XFCE的桌面Splash,以及Plank的安装配置方法(包括自动启动设置)。针对不同开发场景提供了实用建议,如嵌入式系统推荐使用轻量的Plank,Kiosk模式可结合自动登录和禁用Splash等。

2025-09-22 08:59:37 452

原创 Ubuntu 下练习编译 `.deb` 包的完整指南(适用于批量部署)

摘要: 本文详细介绍在Ubuntu系统中编译打包.deb文件的完整流程,适用于批量部署场景。内容涵盖打包概念、工具安装(devscripts/dh-make)、源码获取(apt source或GitHub克隆)、构建debian目录(dh_make生成模板)、编译命令(debuild -b -uc -us)及部署方案(dpkg安装或APT仓库分发)。特别说明不同构建系统(Meson/CMake/Python等)的兼容性,并提供lintian检查、dpkg查看包内容等实用技巧。通过标准化打包流程,可实现多设备

2025-09-20 22:23:29 691

原创 Ubuntu22.04 双显卡系统使用集显 DRM 渲染的完整流程记录

在搭载Intel集显和NVIDIA独显的笔记本上,本文记录了让Ubuntu22.04使用集显进行DRM渲染的过程。通过安装NVIDIA驱动并验证加载后,发现系统仍由集显控制显示输出。经排查,确认framebuffer绑定情况,尝试使用i915的DRM接口时遇到权限问题,最终在纯tty环境下成功运行kmscube测试程序,验证了i915的DRM渲染功能。

2025-09-20 17:52:58 558

原创 Linux 内核镜像与启动组件全解析:从 vmlinux 到 extlinux.conf

本文系统解析了Linux内核启动流程中的关键组件:vmlinux是原始ELF格式内核文件,用于调试;Image是去除了调试信息的可启动内核镜像;zImage是压缩版本,带解压引导代码;uImage是U-Boot专用的带头部信息的镜像;System.map提供符号表用于地址定位;extlinux.conf则是U-Boot的启动配置文件。这些组件共同构成了Linux内核从编译到启动的完整链条,适用于嵌入式系统开发与调试场景。

2025-09-13 20:52:15 962

原创 嵌入式 Linux 启动机制全解析:从 Boot 到 Rootfs

本文详细解析嵌入式Linux启动机制,以RK3588为例,梳理从BootROM到rootfs的完整流程。重点分析ext4+extlinux启动方式,包括U-Boot加载、内核与设备树解析、initrd挂载等关键步骤。对比11种主流启动方案(如FAT32+GRUB、UEFI+systemd-boot等)及其适用场景,并详解extlinux.conf的高级配置技巧。同时总结不同文件系统(ext4/FAT32/UBIFS等)对启动方式的影响,为嵌入式系统启动优化提供全面参考。

2025-09-13 20:41:09 724

原创 Android 12 在 Rockchip 平台上的分区表parametet.txt 自动生成机制解析

📦 Android 12在Rockchip平台的分区表自动生成机制 该系统采用三部分协同工作: parameter.in模板:定义分区表基础结构 RebuildParameter.mk:根据AB分区等配置动态生成分区列表 parameter_generator.py:计算分区偏移并生成最终parameter.txt 关键特性: 支持AB分区和动态分区配置 自动计算分区偏移和对齐 特殊处理userdata为可扩展分区 通过BoardConfig.mk可灵活定制分区大小和布局 实际挂载包含metadata、c

2025-09-04 16:01:03 497

原创 理解 USB Gadget 配置失败的根本原因与解决路径

摘要:本文分析了嵌入式Linux平台(如RK3588)配置USB Gadget时常见的UDC绑定失败问题,重点对比了FunctionFS与CDC ACM模块的差异。FunctionFS需用户态程序预先写入USB描述符才能激活,而CDC ACM等模块由内核自动生成描述符。文章提供了ADB的正确激活流程及CDC ACM配置示例,并指出常见误区,建议根据需求选择合适模块:复杂协议用FunctionFS,快速部署用内核自带模块(如ACM、mass_storage)。最后强调FunctionFS必须用户态配合,否则绑

2025-09-02 10:37:56 653

原创 深入理解 EXT4 镜像构建与分析:嵌入式系统中的实用指南

本文介绍了嵌入式Linux中128MB ext4文件系统镜像的构建与优化方法。主要内容包括:使用truncate创建稀疏镜像文件,通过mkfs.ext4格式化并设置标签;使用tune2fs和dumpe2fs分析文件系统结构,查看块数、保留空间等元数据;提供三种优化方案:关闭保留空间、禁用日志功能以减少占用、调整inode数量;列举了truncate、mkfs.ext4等关键工具及其适用场景。这些方法可帮助开发者有效构建和优化ext4镜像,适用于嵌入式系统开发。

2025-08-27 16:10:57 334

原创 Linux Shell 返回码详解:命令执行的隐形信号

Linux Shell 返回码是命令执行后的状态指示器,范围0-255。0表示成功,非0表示失败或特定错误。常见返回码如1(通用错误)、127(命令未找到)、130(被Ctrl+C中断)。通过$?可获取上条命令的返回码,用于条件判断和错误处理。脚本中可用exit自定义返回码,建议分层设计(0成功,1-99脚本错误,100-199外部依赖错误)。进程被信号终止时返回码为128+信号编号,如Ctrl+C对应130。合理使用返回码能编写更健壮的Shell脚本。

2025-08-14 19:13:16 850

原创 Shell 脚本中的常用特殊变量详解

本文整理了Bash脚本中常用的特殊变量及其用途,包括$?、$0、$1-$n、$#、$@、$*等,用于参数处理、错误控制、调试等功能。表格详细列出了变量含义、示例和常见应用场景,如$?用于错误处理、$$用于进程跟踪等。最后提供了包含脚本名显示、参数检查、权限验证等功能的实用示例脚本,帮助开发者更高效地编写Shell脚本。

2025-08-14 19:09:54 467

i.MX 6ULL Applications Processor Reference Manual.pdf

i.MX 6ULL 参考手册i.MX 6ULL 参考手册i.MX 6ULL 参考手册i.MX 6ULL 参考手册i.MX 6ULL 参考手册i.MX 6ULL 参考手册i.MX 6ULL 参考手册i.MX 6ULL 参考手册i.MX 6ULL 参考手册i.MX 6ULL 参考手册i.MX 6ULL 参考手册i.MX 6ULL 参考手册

2020-03-14

东荣VLASV(新型东荣伺服器).pdf

东荣VLASV(新型东荣伺服器)说明书,完整版,清晰明了东荣VLASV(新型东荣伺服器)说明书,完整版,清晰明了东荣VLASV(新型东荣伺服器)说明书,完整版,清晰明了

2020-03-28

简单电压比较器-迟滞比较器-窗口比较器.ppt

简单电压比较器-迟滞比较器-窗口比较器大全

2019-12-03

CAN(FlexCAN).rar

CAN(FlexCAN)中文详细说明

2020-03-14

UCGUI最新3.90版源码

UCGUI最新3.90版源码,UCGUI3.90版源码简介.txt

2019-03-14

2440mainflash-keil

2440裸机程序,编译环境未keil5,实现裸机操作ARM9

2019-04-24

Allwinner A64 User Manual v1.0.pdf

全志A64 用户手册全志A64 用户手册全志A64 用户手册全志A64 用户手册全志A64 用户手册

2019-12-03

空空如也

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

TA关注的人

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