自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术干货

进步始于交流,收获源于分享;深入研究,分享最纯粹的技术干货

  • 博客(202)
  • 资源 (19)
  • 问答 (3)
  • 收藏
  • 关注

原创 U-Boot 之八 详解 Driver Model 架构、配置、命令、初始化流程

U-Boot 在 2014 年 4 月参考 Linux Kernel 的 Driver Model 设计并引入了自己的 Driver Model(DM) 这个驱动架构。这个驱动模型(DM)为驱动的定义和访问接口提供了统一的方法,提高了驱动之间的兼容性以及访问的标准性。

2023-02-27 08:44:21 6196 8

原创 Linux Kernel 之二 零基础构建流程、Image 介绍、Image 使用说明

Linux Kernel 的构建过程与 U-Boot 构建过程是一模一样的。因为 U-Boot 的构建就是采用的 Linux Kernel 的 Kconfig/Kbuild 构建系统。

2022-06-08 12:12:47 4596 2

原创 U-Boot 之五 配置框架、详解 Kconfig & Kbuild 构建系统、构建流程

Kconfig 是 Linux Kernel Build System 中用来对 Linux 内核进行配置工具,后来 U-Boot 也引入了 Kbuild/Kconfig 系统。当执行 make menuconfig 时会出现一个配置界面,允许开发者通过类似于 UI 的方式来对内核进行配置。Kconfig 语法可以从 https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html 里来学习。

2022-02-20 09:39:51 6643 3

原创 Linux Kernel 之零 完整嵌入式 Linux 环境、构建工具、编译工具链、CPU 架构

最近,工作重心要从裸机开发转移到嵌入式 Linux 系统开发,由于之前对嵌入式 Linux 环境并不是很了解,因此,第一步就是需要了解如何搭建一个完整的嵌入式 Linux 环境

2022-01-01 12:54:44 14227 8

原创 Rust 之九 语句和表达式、控制流、作用域、生命周期

Rust 的基本语法对于从事底层 C/C++ 开发的人来说多少有些难以理解,虽然官方有详细的文档来介绍,不过内容是相当的多,看起来也费劲。本文通过将每个知识点简化为 一个 DEMO + 每种特性各用一句话描述的形式来简化学习过程,提高学习效率。

2025-11-03 08:15:00 1002 1

原创 Rust 之四 文档规范、编码规范

编程语言除了有语言标准之外,还有一系列其他约定俗成的标准,例如,项目管理、文档规范、编码规范等等。很多早期的编程语言则没有一个统一的标准,而 Rust 编程语言作为一个完全开源的后起之秀,在诞生之初就针对性的解决完善了这些问题!

2025-10-29 08:31:37 683

原创 Linux 之九 详解 Docker 架构及原理、工作流程、安装过程、权限处理

Docker 是一个软件容器平台,属于 Linux 容器的一种封装,同时提供简单易用的容器使用接口,用户可以方便地创建和使用容器,把自己的应用放入容器。对于不同的受众群体发挥着不同的作用

2025-10-23 14:20:58 878 1

原创 Rust 之二 各组件工具的源码、构建、配置、使用

Rust开发工具链概述 Rust提供了一套完整的开发工具链,主要包括rustup和Cargo两大组件。rustup是Rust工具链的安装和管理器,支持在不同版本间切换,并管理组件、配置和更新。它通过环境变量配置安装路径和更新源,源码托管在GitHub上,采用多名称实现不同功能的设计。 Cargo是Rust的包管理器和项目构建工具,负责依赖管理、项目构建和发布。它维护~/.cargo目录存储安装的二进制文件和下载的依赖包。Cargo支持丰富的子命令,并能自动扩展功能。此外,cargo-binutils扩展提供

2025-10-09 09:18:44 1483 4

原创 Rust 之八 变量、常量、函数

Rust 的基本语法对于从事底层 C/C++ 开发的人来说多少有些难以理解,虽然官方有详细的文档来介绍,不过内容是相当的多,看起来也费劲。本文通过将每个知识点简化为 一个 DEMO + 每种特性各用一句话描述的形式来简化学习过程,提高学习效率。

2025-06-23 08:30:00 1343 5

原创 开发环境 之十三 详解 USB over Network、USB Network Gate、USB Redirector 使用

现在,嵌入式 Linux 开发环境通常是以本地 Windows PC 和开发板 + 远程 Linux 服务器的结构为主。本地 Windows PC 通过 SSH 或远程桌面访问远程 Linux 服务器实现 Linux 编译,然后下载到 Windows PC 进而烧写到开发板。

2025-06-09 09:36:04 925 1

原创 Rust 之七 所有权、.. 和 _ 语法、Vec<T>、HashMap<K, V>、引用和切片

Rust 的基本语法对于从事底层 C/C++ 开发的人来说多少有些难以理解,虽然官方有详细的文档来介绍,不过内容是相当的多,看起来也费劲。本文通过将每个知识点简化为 一个 DEMO + 每种特性各用一句话描述的形式来简化学习过程,提高学习效率。

2025-04-15 14:51:36 1244 2

原创 Rust 之六 运算符、标量、元组、数组、字符串、结构体、枚举

Rust 的基本语法对于从事底层 C/C++ 开发的人来说多少有些难以理解,虽然官方有详细的文档来介绍,不过内容是相当的多,看起来也费劲。本文通过将每个知识点简化为 一个 DEMO + 每种特性各用一句话描述的形式来简化学习过程,提高学习效率。

2025-04-07 08:00:00 1188 1

原创 Rust 之五 编译工具链、构建过程、交叉编译

Rust 属于编译型语言,因此,使用之前必须使用编译工具链将源码编译为二进制可执行程序。软件的编译过程由一系列的步骤完成,每一个步骤都有一个对应的工具。这些工具紧密地工作在一起,前一个工具的输出是后一个工具的输入,像一根链条一样,我们称这些工具为工具链。现代编译工具链由编译器、链接器、标准库以及一些辅助工具组成。

2025-03-24 08:00:00 2029 2

原创 Rust 之三 项目管理(Package、Crate、Workspace 等)

Rust 编程语言作为后起之秀,针对性的解决完善了以前编程语言的一些问题,例如,项目管理、文档编写、代码规范等等,同时又充分吸收了现代编程语言的一些特性,例如,Rust 有前端编程语言标配的包管理器,类似于前端脚手架的项目管理等。

2025-03-17 08:30:00 1892 1

原创 Rust 之一 组件介绍、版本发布、开发环境搭建

Rust 是一种强调性能、类型安全和并发性的通用编程语言,它强制执行内存安全,使用其特有的所有权机制,而无需传统的垃圾收集器。Rust 不强制执行编程范式,但受到函数式编程思想的影响。

2025-03-11 08:48:02 2054 3

原创 Linux Kernel 之十 详解 PREEMPT_RT、Xenomai 的架构、源码、构建及使用

现在的RTOS基本可以分为Linux阵营和非Linux阵营这两大阵营。非Linux阵营的各大RTOS都是独立发展,使用上也相对独立;而Linux阵营则有多种不同的实现方法来改造Linux以实现实时性要求。本文我们重点关注PREEMPT_RT以及Xenomai3和Xenomai4这两种实时Linux内核的实现方法

2025-01-14 10:03:35 1161

原创 ARM 之十九 详解 Semihosting、SWO 以及在 MDK-ARM、IAR、Eclipse、SEGGER-ES 的使用

在嵌入式系统开发中,我们通常会将标准输入输出作为一个控制台功能添加到我的嵌入式应用程序中。这样我就有了一个命令行接口,可以检查和修改目标系统。在 ARM 架构中,Semihosting 和 SWO 是经常会遇到的两个概念,在调试输出方面也是用的非常多的,今天就来学习一下!

2024-10-14 08:00:00 3609

原创 ARM 之十八 详解 MDK、IAR、Eclipse 的 C 标准库及重定向输入输出

在嵌入式系统开发中,我们通常会将标准输入输出作为一个控制台功能添加到我的嵌入式应用程序中。这样我就有了一个命令行接口,可以检查和修改目标系统。我们最常用的方法就是将标准输入输出进行重定向,今天就来重点学习一下!

2024-09-23 08:00:00 659

原创 开发环境 之十二 详解 J-link、OpenOCD 的 FLASH、RAM 烧写原理、配置、自定义

现在,一些主流的嵌入式仿真器、调试器都提供了自己的 FLASH、RAM 烧写策略,他们不限于 ARM 架构,目前,使用最多的就是 J-Link 和 OpenOCD,今天就来详细学习一下!

2024-07-15 08:30:00 1383

原创 开发环境 之十一 详解 OpenOCD 源码、构建、配合各仿真器使用示例

OpenOCD(Open On-Chip Debugger)是一个开源的跨平台的片上调试器,旨在提供针对嵌入式设备的调试、系统编程和边界扫描功能。其工作方式就是代替了原有那些调试适配器提供的相关工具, 直接通过 USB 驱动访问适配器,进而访问目标硬件。

2024-07-09 10:04:31 2055 2

原创 虚拟化 之七 详解构造带有 jailhouse 的 openEuler 发行版(树莓派 4B)

本文将探索学习通过移植适配 yocto-meta-openeuler 这个 Layer 进而使用 oebuild 直接构建一个适用于 Raspberry Pi 4 Model B 开发板的带有 jailhouse 的 openEuler 发行版。并且通过移植一个独立的 jailhouse.bb 进而不依赖于 openEuler 官方的 MCS 这个框架。

2024-07-08 17:29:17 39

原创 虚拟化 之六 详解构造带有 jailhouse 的 openEuler 发行版(飞腾派)

本文将探索学习通过移植适配 yocto-meta-openeuler 这个 Layer 进而使用 oebuild 直接构建一个适用于飞腾派开发板的带有 jailhouse 的 openEuler 发行版,并且通过移植一个独立的 jailhouse.bb 进而不依赖于 openEuler 官方的 MCS 这个框架(该框架目前本身也不支持飞腾派)。

2024-06-25 10:29:31 217

原创 虚拟化 之五 详解构造带有 jailhouse 的 openEuler 发行版(x86 平台)

对于 x86_64 平台,构造一个默认带有 jailhouse 的 openEuler 系统实际上就是创建一个包含 jailhouse 软件包的 openEuler 发行版,本文我们将重点学习使用 openEuler 官方提供的各种源码以及自己移植 jailhouse 来创建一个带有 jailhouse 的 openEuler 的 ISO 光盘镜像文件。

2024-06-12 15:43:06 143

原创 虚拟化 之四 详解 Jailhouse-gui 的构建、移植、使用

Jailhouse-gui 是一个由 openEuler 提供的配置和管理 Jailhouse 的 GUI 工具。由 Python 语言开发实现,整个软件分为两个部分,一个关注业务和数据处理的核心模块,一个是关注交互和显示的 GUI 模块。

2024-06-12 15:42:08 97

原创 虚拟化 之三 详解 ARM 平台 jailhouse 的移植适配、构建及使用(飞腾派)

本文将探索学习通过在飞腾官方提供的 Buildroot 构建系统移植适配 openEuler 内核以及 jailhouse 源码 Package 进而直接构建一个适用于飞腾派开发板的带有 jailhouse 的 openEuler 发行版。

2024-06-12 15:41:25 510

原创 虚拟化 之二 详解 x86 平台 jailhouse 的移植适配、构建及使用

Jailhouse 是一个依托于 Linux Kernel 的开放性从而直接利用硬件虚拟化技术实现的虚拟化解决方案。因此,要使用 Jailhouse,必须确保硬件是支持虚拟化技术的,同时,所使用的 Linux Kernel 也需要提供对 Jailhouse 支持。

2024-06-12 15:41:06 312

原创 虚拟化 之一 详解 jailhouse 架构及原理、软硬件要求、源码文件、基本组件

Jailhouse 是一种轻量级的虚拟化技术,可以将多个操作系统(或者裸机程序)同时运行在同一台硬件上。它是一个基于 Linux 的静态分区的 Hypervisor,但本身并不改造 Linux 内核,而是利用 Linux 系统的开放性,增加一个或多个实时操作系统,实现多系统在一个多核处理器上运行。

2024-06-11 08:30:00 1848

原创 Yocto 之二 详解 Layer Model、配置文件、Recipes 等

Yocto Project 引入了 Layer Model 这一机制,这也是它区别于其他构建系统的一点。其中,BSP 和 DISTRO 是其 Layer Model 中最具有代表性的两个 Layer。

2024-06-03 08:30:00 750

原创 LwIP 之十 详解 TCP RAW 编程、示例、API 源码、数据流

LwIP 使用一个 struct tcp_pcb 结构来封装一个 TCP 通信实例,一个 tcp_pcb 处理一个 TCP 通信。struct tcp_pcb 封装了通信所需要所有参数,而对于数据包,则通过回调函数的形式传递给用户(由于通信涉及链接,因此涉及的回调比较多 tcp_recv_fn recv;、tcp_connected_fn connected;、tcp_poll_fn poll; 等)

2024-05-27 08:30:00 1324 2

原创 LwIP 之九 详解 UDP RAW 编程、示例、API 源码、数据流

在 LwIP 中,UDP RAW 编程被设计为以 struct udp_pcb 为核心的各种 API。我们通过 LWIP_UDP == 1 就可以启用 /src/core/udp.c 中的相关代码实现,对外的各 API 位于 /src/include/lwip/udp.h 中。

2024-05-13 08:00:00 834

原创 LwIP 之八 详解 IP RAW 编程、示例、API 源码、数据流

在 LwIP 中,IP RAW 编程被设计为以 struct raw_pcb 为核心的各种 API。我们通过 LWIP_RAW == 1 就可以启用 /src/core/raw.c 中的相关代码实现,对外的各 API 位于 /src/include/lwip/raw.h 中。每一个 raw_pcb 都可定制一个特定协议类型的 IP 数据包,如 ICMP 包、TCP 包、UDP 包等。

2024-04-13 08:00:47 1054

原创 Buildroot 之二 详解构建系统架构、构建流程、本地代码、external tree

 Buildroot 是一个运行于 Linux 平台的用于构建完整嵌入式 Linux 运行环境的自动化工具。使用 Buildroot 可以构建出一个完整的可以直接烧写到机器上运行的嵌入式 Linux 配套镜像文件(包含 bootloader、kernel、rootfs 以及 rootfs 中的各种库和应用程序、交叉编译工具链)。而且,所有命令均不需要 root 权限,避免对开发环境中的已有软件包产生影响。

2024-03-11 11:19:11 1206

原创 Buildroot 之四 构建独立交叉编译工具链

手动编译交叉工具链费时又费力,通常,我们会使用 Buildroot 或 crosstool-NG 这两个工具来辅助建立我们自己的交叉编译工具链。其中,Buildroot 基于 uclibc 制作交叉工具链, 而 crosstool-NG 则基于 glibc 制作交叉编译工具链。本文我们来详细学习一下如何使用 Buildroot 构建我们的交叉编译工具链。

2024-03-11 11:09:07 1388

原创 Buildroot 之三 详解移植、配置、构建过程、输出镜像文件、使用验证

Buildroot 是 Linux 平台上的一个用于构建嵌入式 Linux 系统的框架。使用 Buildroot 可以构建出一个完整的可以直接烧写到机器上运行的嵌入式 Linux 配套镜像文件(包含 bootloader、kernel、rootfs 以及 rootfs 中的各种库和应用程序、交叉编译工具链)。Buildroot 中默认并没有对 STM32F769I-EVAL 开发板的支持,移植后就可以直接构建 STM32F769I-EVAL 开发板固件了

2024-03-11 11:08:02 1423

原创 Buildroot 之一 详解总体架构、源码文件、Package 处理流程及新增说明

Buildroot 是一个运行于 Linux 平台的用于构建完整嵌入式 Linux 运行环境的自动化工具。使用 Buildroot 可以构建出一个完整的可以直接烧写到机器上运行的嵌入式 Linux 配套镜像文件(包含 bootloader、kernel、rootfs 以及 rootfs 中的各种库和应用程序、交叉编译工具链)。而且,所有命令均不需要 root 权限,避免对开发环境中的已有软件包产生影响。

2024-03-11 11:07:46 1302

原创 Yocto 之四 详解移植及构建过程、镜像文件介绍及使用验证

我们从 Yocto 官网下载 Poky 仅仅是一个用于构建 Linux 的 DEMO,我们可以选择将这个 Poky(本身定义了可以在 QEMU 中运行的发行版) 进行大改造,也可以根据这个 Poky 从零搭建出一套自己的 Poky。我这里就以 YP CORE - KIRKSTONE 4.0.13 - 2023.10.05 这个版本为参考,从零开始搭建。

2024-03-11 11:07:06 889

原创 Yocto 之一 架构及源码、Toaster、OpenEmbedded、BitBake 详解

Yocto 全称是 Yocto Project(官方简称 YP) 是 Linux 基金会在 2010 年推出的一个开源的协作项目。提供模板、工具和方法以创建定制的 Linux 系统和配套工具,而无需关心硬件体系。主要由 Poky 和 其他一些工具组成。

2024-03-07 09:02:47 1271

原创 ARM 之十七 详解 MDK、IAR、Eclipse 的 Debug 配置、FLASH、RAM 烧写原理及自定义

嵌入式下的调试都需要将程序烧写到目标芯片中,而芯片一般都支持从多种存储介质启动,由于存储介质的物理区别,烧写到不同的介质所使用策略往往差别很大。目前,几大主流的 IDE 都有自己的 FLASH 和 RAM 的烧写策略,今天就俩重点学习一下!。

2024-02-26 09:00:00 1610

原创 ARM 之十六 详解 CMSIS 版本变迁、各组件使用示例

目前,CMSIS 已经发展到了第六版,其目录结构也发生了重大的变化。在不断发展中,很多原来 CMSIS 的组件被不断独立出去,并因此成立了很多开源社区,今天就来学习一下!由于 CMSIS 已经包含了相当丰富的文档,因此,本文重点学习版本之间的变化以及一些实际使用示例。

2024-02-18 13:14:47 1682

原创 FreeRTOS 之九 二值信号量、计数信号量、互斥信号量、递归互斥信号量

无论那种操作系统,信号量都是其中重要的一部分。信号量一般用来进行资源管理和任务同步,FreeRTOS 的信号量包括二值信号量、计数信号量、互斥信号量(简称互斥量)和递归互斥信号量(简称递归互斥量),其中互斥量和递归互斥量可以看成特殊的二值信号量。

2024-02-02 10:42:09 1850

MD5官方规范

博文 常用算法 之 MD5 的附件,主要是 MD5算法 的官方规范文档

2018-11-08

Bus Hound 抓取的U盘的报文

博文USB 之 USB2.0 规范详解 第二部分附件资料,测试报文

2018-04-19

RISC-V SVD 文件生成工具

RISC-V SVD 文件生成工具。详细说明见博文 RISC-V 之一 使用 ARM CMSIS 的 SVD 文件辅助调试 https://itexp.blog.youkuaiyun.com/article/details/127144450

2022-10-03

ISO11898 全套标准文档.7z

ISO11898 全套标准文档。博文 Can 总线 之 简介、特点、发展史、各时期的官方文档 的配套文档

2019-05-26

STM32_USB_DEVICE_CDC

STM32之USB驱动库详解(架构+文件+函数+使用说明+示例程序)对应的代码

2018-05-17

华大 MCU USB 驱动 usb_lib.7z

华大 MCU USB 驱动 华大 MCU USB 驱动 华大 MCU USB 驱动

2021-03-24

can2.0_can_fd.7z

can2.0_can_fd 博文 Can 总线 之 简介、特点、发展史、各时期的官方文档 的配套文档

2019-05-26

STM32_USB_DEVICE_CDC_LOOPBACK_修改版

博文STM32之USB驱动库详解(架构+文件+函数+使用说明+示例程序) 配套的示例源码

2018-05-17

STM32_USB_HOST_MSC

博文STM32之USB驱动库详解(架构+文件+函数+使用说明+示例程序)的示例程序

2018-04-23

STM32_FreeRTOS

博文<> 的附件,使用Keil建立的源代码。

2018-05-16

STM32_FreeRTOS_Tracealyzer

博文 FreeRTOS之Tracealyzer for FreeRTOS(FreeRTOS+Trace) 详解(源码解析+移植)的配套源码

2018-05-16

Preventing bit stuffing in CAN Using bit-stuffing distributions in CAN analysis

博文 CAN 总线 之 BOSCH CAN2.0 比特位填充(编码规则)的参考文档,论文

2019-06-13

SourceInsight 宏

SourceInsight 4.0 常用宏值的完善版本,在目前网上宏的基础上,进行了完善,具体参看博文

2018-11-23

数据手册.7z

Intel 82526 / Philips 82C200 / Intel 82527 数据手册

2019-05-26

STM32_USB_DEVICE_CDC_LOOPBACK

主要是博文 STM32之USB驱动库详解(架构+文件+函数)的示例程序

2018-04-22

ARM_ELF_PDF.7z

ARM 之一 ELF文件、镜像(Image)文件、可执行文件、对象文件 详解 的 各种 参考文档 ARM 之一 ELF文件、镜像(Image)文件、可执行文件、对象文件 详解 的 各种 参考文档

2019-08-24

stm32l4xx_ll_flash.rar

STM32 之十二 FLASH 使用详解 及 LL 库 FLASH 驱动实现 的附件。完全仿照 ST LL库源码风格

2020-05-31

C/C++ 标准文档

C/C++ 标准文档

2017-03-06

ARM 之十一__weak 代码 WEAK.7z

博文 ARM 之十一__weak 和 __attribute__((weak)) 关键字的使用 的测试代码,备用!

2020-07-03

VC/MFC文档-视图-框架体系编程实例

给出了关于VC/MFC文档-视图-框架体系的编程实例,详细介绍了VC/MFC文档编程,视图编程,窗口静态切分和动态切分,多文档和单文档程序设计,包含了(30个实例),可以正常运行

2016-02-20

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

TA关注的人

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