自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 【无标题】

vTaskADCvTaskAIxDataMutex在 FreeRTOS 中,任务创建函数的栈大小参数(上述代码中的256512等)的单位是,而非字节(byte)。256512aiRun()sprintfadc_bufaiRun()(Flexible Static Memory Controller,灵活的静态存储器控制器)是STM32微控制器中的一个外设,通过FSMC,STM32可以与SRAM、ROM、PSRAM、Nor Flash和NandFlash等存储器的引脚相连,从而进行数据交换。

2025-09-14 21:43:19 920

原创 FFmpeg及 RTSP、RTMP

协议优点缺点RTSP延迟极低、控制灵活、协议开放标准需配合 RTP/RTCP 使用,实现复杂度高;端口易被防火墙封禁RTMP实现简单(单协议)、传输可靠、生态成熟延迟略高于 RTSP;1935 端口易被封禁;浏览器原生不支持(需插件)

2025-08-22 15:17:05 955

原创 C++11新特性

共享所有权的智能指针,使用引用计数,每赋值给共享指针一次,引用值++:哈希表实现的关联容器,平均查找复杂度为 O (1):固定大小的数组,结合了 C 数组和容器的优点。:固定大小的异质容器,可存储不同类型的数据。:让编译器自动推断变量类型,简化代码书写。使用,不增加引用计数,解决循环引用问题。:禁止编译器生成特定函数(如禁止拷贝):显式声明重写基类虚函数,避免拼写错误。:指定函数不会抛出异常,帮助编译器优化。:获取表达式的类型,常用于模板编程。:独占所有权的智能指针,不可复制。

2025-08-22 15:10:10 382

原创 嵌入式面经集合

面经

2025-08-04 00:14:51 1167

原创 UVC(USB Video Class,USB 视频类)协议

4 根线(VCC、GND、D+、D-)。

2025-07-08 16:11:22 2226

原创 Linux 中断处理:从注册到触发的完整流程

多个设备可共享同一中断号,通过。

2025-07-04 10:13:43 471

原创 使用 WSL 启动ubuntu.tar文件

确保你的 WSL 版本为 2.4.8 或更高版本。:如果还没有将 WSL 2 设置为默认版本,可在命令行执行。:打开 PowerShell 或命令提示符,使用。如果想将该发行版设置为默认运行的发行版,可执行。),并且 WSL 版本满足要求,也可以直接使用。文件的路径,你需要根据实际情况进行修改。命令来启动 Ubuntu,例如。来更新 WSL 到最新版本。命令来安装启动,或者直接双击。,这样以后在命令行只输入。是自定义的发行版名称,:导入成功后,可以使用。文件来完成安装启动1。

2025-06-25 14:55:54 517

原创 Git使用基本指南

该命令会在当前目录下创建一个新的 Git 仓库。通过此命令可以查看哪些文件被修改、添加或删除。

2025-06-23 15:38:18 229

原创 Linux驱动野火版

它是Linux 管理文件系统的最基本单位,也是文件系统连接任何子目录、文件的桥梁。内核使用inode结构体在内核内部表示一个文件。因此,它与表示一个已经打开的文件描述符的结构体(即file 文件结构)是不同的, 我们可以使用多个file文件结构表示。

2025-06-18 20:41:50 944

原创 linux字符设备的驱动框架

字符设备是 Linux 三大设备类型(字符设备、块设备、网络设备)之一,其特点是数据传输以字节流形式进行。主要用于实现像串口、键盘、LED 等以字节为单位顺序访问的设备。

2025-06-17 14:16:35 524

原创 寄存器和总线地址,物理地址,虚拟地址

寄存器和总线地址,物理地址,虚拟地址

2025-06-17 14:05:02 1409

原创 Linux文件系统

Linux文件系统:采用树形结构,以根目录“/”为顶端,分区需挂载到根目录下的目录(如“/home”)才能使用,常见类型有EXT4,具备日志和权限控制机制。- 必需分区,存放系统核心文件(如内核、启动脚本、系统程序),是树形文件系统的根目录。- 可选分区,存放用户个人数据(文档、配置文件等),便于系统重装时保留用户数据。- 可选分区,存放系统启动文件(内核、引导加载程序),若系统启动异常可单独修复。- 可选分区,存放动态数据(日志、邮件、缓存),避免因数据增长影响根分区。2. 交换分区(swap)

2025-06-15 21:46:29 221

原创 Linux内核编译并部署到SD卡

格式:二进制设备树 blob(Binary Device Tree),根据板子型号(如 imx6ull.dtb )生成,描述CPU、外设等硬件连接关系,二进制格式,需与内核镜像配套使用。- boot.scr :脚本文件,定义U-Boot启动流程(如加载内核、设备树),可编译为二进制 boot.scr.uimg (U-Boot脚本格式)。- SD卡准备:使用 fdisk 或图形工具将SD卡分区(通常分为引导区、根文件系统区),格式化为FAT32(引导区)、EXT4(根文件系统区)等格式。

2025-06-15 21:05:08 577

原创 git工具工作流程

为最终结果(删除标记并保留正确代码)

2025-05-29 11:48:21 184

原创 FFMPEG推流器

AVCODECID编码器的ID号,这里的编码器ID包含了视频的编码器ID,如:AV_CODEC_ID_H264、AV_CODEC_ID_H265等等。I/O的上下文,在解封装中由用户在avformat_open_input之前来设置,若封装的时候用户在avformat_write_header之前设置。专门用在视频编码码流的标识符,默认都要添加AV_PKT_FLAG,这指的是每一帧都要添加一个关键帧,否则画面则无法正常解码出来。若存储音频数据的话,则会存储PCM数据,此外还包含了一些重要的相关信息。

2025-05-29 09:56:55 474

原创 RTOS实时操作系统

任务优先级是RTOS中用来决定任务执行顺序的关键因素。任务优先级越高,系统越优先执行该任务。RTOS通常会为每个任务分配一个优先级,调度器根据优先级来管理任务。低优先级的任务只有在高优先级任务空闲时才会得到执行。在一些RTOS中,任务的优先级可以动态调整,允许系统根据任务的重要性来调整调度策略。FreeRTOS使用一个固定优先级的调度模型,并且支持任务优先级的静态配置。

2025-05-28 11:49:20 1005

原创 内存和寄存器

内存(Memory)和寄存器(Register)是计算机系统中两种不同的存储组件,它们在物理位置、访问速度、容量、功能和用途等方面有显著区别。

2025-05-24 13:48:03 779

原创 嵌入式面试总结

表示该变量在程序的整个生命周期内只会被初始化一次,并且在函数调用结束后不会被销毁,其值会一直保持。可以在多次函数中调用之间保持其值。表示该全局变量的作用域被限制在当前文件内,其他文件无法访问该变量。通过这种方式可以实现全局变量的封装,避免被其他文件不小心修改。表示该函数的作用域也被限制在当前文件内,其他文件无法调用该函数。

2025-05-23 20:15:08 1012

原创 音频数据转化

是未经过压缩的音频数据,音频模拟信号转换成数字信号需要经过三大步骤会变成PCM音频数字信号1.采样是我们音频最重要的知识点之一,它指的是把一段连续的模拟信号转换成离散的数字信号,但是没有具体的数值大小2.量化指的是在坐标轴上,把每一个离散数据进行数字化操作。换言之就是把我们每一个采样的点都按照数字化表示出来3.编码就是把每一个量化的采样点存储起来,并以二进制0,1的形式表现出来的过程就是编码。

2025-05-20 21:34:15 254

原创 H264编码

网络带宽有限,需要视频编码(所谓编码就是指压缩)技术来压缩视频:H264、H265编码。H264(HEVC)编码框架中分为两大层,一层是VCL、另外一层是NAL层核心功能是对视频原始数据(如 YUV 像素值)进行编码压缩,生成高效的码流。通过一系列算法去除空间冗余、时间冗余和熵冗余,最终输出压缩后的视频数据。若仅仅考虑帧的数据,不考虑相邻帧和帧之间的冗余数据,这样的方式就叫帧内压缩。在H264中I帧生成的原理就是帧内压缩,帧内压缩可以独立解码出一帧完整的图像而不需要参考任何帧。

2025-05-20 20:49:21 492

原创 RV1126芯片

提供了基础的 Linux 系统、硬件驱动、图像处理和 AI 应用接口。支持多种开发语言。存放着 RK 开发指导文件、平台支持列表、工具使用文档、Linux 开发指南等,自带交叉工具链、文件系统和第三方库。编译了出来的是指包含操作系统、驱动程序、应用程序和系统配置的二进制文件集合,用于烧录到 RV1126 芯片的设备上运行。

2025-05-20 19:34:44 342

原创 APP寄存器和FPGA寄存器的值的区别

FPGA寄存器:需通过总线协议(如AXI、PCIe)跨硬件/软件接口访问,微秒级延迟。APP寄存器:位于软件层(如CPU内存或应用进程空间),由操作系统或应用程序管理。FPGA寄存器:实现硬件逻辑(如状态机、数据流水线)、配置外设或存储实时信号。FPGA寄存器:位于硬件层(FPGA逻辑单元中),直接映射到物理电路。APP寄存器:临时存储计算中间结果或程序状态(如变量、函数参数)。APP寄存器:通过软件指令(如MOV)直接读写,纳秒级延迟。FPGA寄存器:受时钟边沿触发,更新与硬件时钟同步。

2025-03-27 13:47:21 250

原创 网口调试工具

1. 建议将这种调试日志放在关键逻辑分支/寄存器操作前后 2. `__func__` 和 `__LINE__` 能快速定位日志位置 3. 注意输出格式统一(建议保持现有的 `函数名 行号:` 前置格式) 4. 寄存器值推荐同时输出十六进制和十进制形式。

2025-03-26 14:44:01 199

原创 GenICam与GVCP和 GVSP

相机通用接口(Generic Interface for Cameras)是一个标准,旨在为各种工业相机提供统一的接口和配置方法。GenICam 由欧洲机器视觉协会制定,广泛应用于机器视觉和工业成像领域。

2025-03-25 14:19:22 491

原创 ARM 汇编基础详解

ARM 架构最初由英国的 Acorn 计算机公司研发,其前身是用于 BBC Micro 计算机的处理器。随着技术的不断发展,ARM 架构凭借其卓越的特性,逐渐在嵌入式系统、移动设备等领域占据主导地位。ARM 架构采用精简指令集(RISC)设计理念,与复杂指令集(CISC)架构相比,指令长度固定,指令格式种类少,这使得处理器的设计更为简单高效,能够在较低的功耗下实现较高的性能。例如,在移动设备中,ARM 处理器的低功耗特性可显著延长设备的电池续航时间,满足用户对长时间使用的需求。

2025-03-03 15:47:07 1202

原创 CMake 与 CMakeLists.txt

代码到可执行文件的整体流程:详细解释各步骤1. CMake 与 CMakeLists.txt2. Makefile为什么要用CMakeLists.txt

2025-02-26 10:42:51 552

原创 linux线程同步

对互斥锁进行上锁之后,任何其它试图再次对互斥锁进行加锁的线程都会被阻塞,直到当前线程释放互斥锁。比如满足条件时,调用pthread_cond_wait:这个线程调用此函数会自动释放持有的互斥锁 mutex,并进入等待状态,进而去实现另一个线程。当处于写加锁状态时,在这个锁被解锁之前,所有试图对这个锁进行加锁操作(不管是以读模式加锁还是以写模式加锁) 的线程都会被阻塞。这个状态里只有对变量进行读操作,不改变变量并不会有冲突。:一个线程试图对同一个互斥锁加锁两次,该线程会陷入死锁状态,一直被阻塞永远出不来。

2025-02-20 16:10:54 214

原创 文件IO和标准IO

IO

2025-02-12 17:28:22 181

原创 进程和线程

线程池的核心原理是在程序启动时预先创建一定数量的线程,当有新的任务到来时,从线程池中取出一个空闲线程来执行该任务。任务执行完成后,线程不会被销毁,而是返回线程池继续等待下一个任务,从而实现线程的复用。是一种多线程处理模式,它预先创建一定数量的线程,并将这些线程组织在一起形成一个池,用于执行多个任务。多个进程可以在不同的 CPU 核心上并行执行,但进程间的上下文切换会消耗一定的时间和资源。多个线程可以在同一个进程内并发执行,充分利用 CPU 的时间片,提高程序的执行效率。

2025-02-12 17:25:33 147

原创 STM32寄存器

在 GPIOB 的端口输入寄存器(GPIOB_IDR)中,每个引脚对应一个位。PB3 引脚对应寄存器中的第 3 位(从右往左数,最低位为第 0 位)。而这个寄存器的位数是32位(虽然高16位没有用到),这就是32位的单片机的意思。(STM32给不同的寄存器分配了不同的地址,有点像划分了片区,不同相关功能寄存器在不同片区。,所有GPIOB相关的寄存器,都住在0x4001 0C00到0x4001 0FFF范围内。需要某些功能的时候,就要操作这个寄存器硬件的对应位。,所以 GPIOB 的端口输入寄存器地址为。

2025-02-10 17:17:20 401

原创 FreeRTOS 中钩子函数的作用

能监测系统运行状态,如通过空闲任务钩子函数统计空闲时间、用 Tick 钩子函数记录运行时间;还能借助栈溢出钩子函数检测并处理栈溢出错误,记录信息(就是记录运行的信息和错误之类的)应该是放在 FreeRTOS 的各种入口函数里被调用。

2025-01-24 10:49:04 352

原创 机器视觉笔记

FX3 是 USB 3.0 外设控制器,为设备与主机间提供高速数据传输,可在 FPGA 与 USB 接口之间起桥梁作用。FPGA 处理完数据后,可将并行数据通过接口传给 FX3,FX3 再将数据打包成 USB 3.0 协议的数据包,通过 USB 标准接口对外传输。反之,外部设备通过 USB 发送给 FX3 的数据,FX3 也可通过特定接口传给 FPGA。

2025-01-23 18:56:34 394

原创 FPGA, RISC-V ,C语言程序的关系

这些机器码能在 RISC - V 处理器上运行,所以 RISC - V 为 C 语言程序的运行提供了硬件执行基础。借助 FPGA 的调试工具和开发环境,能进行软硬件协同调试,确保 C 语言程序在基于 FPGA 实现的 RISC - V 处理器上正确运行。:FPGA 具有可重构性,开发者能在 FPGA 上实现基于 RISC - V 指令集的处理器软核。:在产品开发初期,使用 FPGA 实现 RISC - V 处理器,然后运行 C 语言编写的程序,可快速搭建起一个包含处理器和周边硬件的系统原型。

2025-01-23 17:56:25 406

空空如也

空空如也

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

TA关注的人

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