自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 PetaLinux 2017.4 实操指南:PREEMPT_RT实时补丁移植+Zynq PL中断UIO用户态配置(超完整避坑版)

解决了版本适配、补丁失效、设备不生成、中断丢失等系列疑难问题。:模块模式手动执行modprobe uio_pdrv_genirq of_id="generic-uio",核对设备树generic-uio字段,重新开启内核UIO驱动。:全网最完整适配2017.4版本的实操教程,包含原理详解、分步操作、全套验证命令、独家避坑方案、报错解决,零基础可复刻,解决99%用户移植失败问题。标准Linux内核为通用分时系统,内核抢占粒度大,存在毫秒级调度延迟,无法满足工业控制、运动控制、高速数据采集等实时场景需求。

2026-07-06 15:01:05 260

原创 【Linux内核】UIO用户态I/O机制超全详解

而UIO(Userspace I/O)机制彻底改变了这一模式,通过内核极简适配+用户态完整业务逻辑的架构,让开发者可在用户空间直接操作硬件寄存器、处理硬件中断。本文将从零拆解UIO核心原理、架构设计、内核源码实现、用户态编程实战,同时对比传统驱动与VFIO,总结适用场景与避坑要点,是全网较全面的UIO系统化实战教程。内核层是UIO的基础支撑,内核已原生实现通用核心逻辑,开发者仅需编写极简的适配层代码,无需改动内核源码。

2026-06-15 11:36:32 225

原创 VME总线详解:原理、架构、时序、协议、迭代、调试与实战应用

VME总线所有知识点,补齐全网绝大多数教程缺失的底层原理、参数细节、工程盲区、标准细则与面试考点,涵盖起源标准、机械/电气架构、总线分层、信号定义、时序原理、传输模式、寻址体系、仲裁与中断、协议规范、版本迭代、性能参数、硬件设计要点、常见故障调试、行业应用及竞品对比,堪称。系统底层辅助总线,承载系统运行必备的辅助信号,包含全局复位、辅助时钟、电源状态检测、背板故障检测、热插拔检测、总线清空信号等,为整个VME系统提供上电、复位、故障监控、异常恢复的基础能力。,实现时序流水线并行,彻底压缩传输延时。

2026-06-11 18:05:47 620

原创 嵌入式完整中断开发流程:注册函数、服务函数、回调函数详解

当外设产生指定事件(按键按下、定时器溢出、串口接收数据)时,会向CPU发送中断请求,CPU立刻暂停当前主程序,跳转去执行中断对应的处理代码,处理完成后,再返回主程序继续执行。// 清除中断标志位。三个核心概念,不清楚三者的分工、调用顺序和完整执行逻辑,导致写代码时流程混乱、程序卡死、中断无法触发等问题。它是对中断服务函数的分层解耦,目的是将「中断入口判断」和「业务逻辑处理」拆分,让代码更整洁、易维护。所有用户需要的中断功能,都写在回调函数中,例如:按键消抖、数据接收、计数累加、状态标记、事件触发等。

2026-06-08 17:29:05 342

原创 VME总线开发详解:mmap内存映射读写与ioctl窗口配置的核心区别(实战对比)

VME总线是工业标准的并行背板总线,支持A16/A24/A32多种地址空间、多数据位宽、自定义总线周期属性。等),用户态可灵活修改VME窗口的使能状态、总线地址、窗口大小、地址空间、数据位宽、总线周期等核心参数,适配不同VME设备的硬件规范。机制,核心是将内核态的VME总线物理地址空间,直接映射到用户态进程的虚拟地址空间。映射完成后,用户程序可以通过。全覆盖,可动态配置:使能、地址、大小、A16/A24/A32、数据位宽、总线周期。,直接复用内核固化的VME窗口参数(地址空间、位宽、窗口大小等)。

2026-05-26 11:13:21 338

原创 示波器的使用

1. 引言1.1 示波器在电子测量中的重要性示波器作为电子测量领域的基础工具,其在电路调试与信号分析中发挥着不可替代的关键作用。无论是教学实验还是工程实践,示波器都能够通过直观的波形显示帮助工程师快速理解信号特性,从而完成对复杂电路的高效调试。在现代电子技术的发展进程中,随着信号频率和复杂度的不断提升,传统测量手段已难以满足需求,而示波器凭借其高带宽、高精度以及多功能集成的特点,成为电子测量领域的核心设备之一。此外,示波器广泛应用于通信、航空航天、医疗设备等多个领域,在科研与生产中展现了卓越的实用价值。例如

2026-05-13 10:49:06 321

原创 SRIO的乒乓测试

摘要SRIO( RapidIO )作为一种高速串行互连技术,在现代电子系统中广泛应用于通信设备、数据中心等场景,对提升系统性能起着关键作用[3][5]。乒乓测试是评估SRIO性能的重要手段,其通过模拟数据交互过程,旨在评估SRIO的带宽、延迟等性能指标,并验证其在长时间、大数据量传输下的稳定性[7][10]。测试方法包括搭建特定硬件环境和配置软件工具,设计不同数据量和传输速率的测试用例。然而,测试过程中可能面临信号完整性问题和同步问题,可通过优化布线、使用信号调理电路以及采用时钟同步技术等手段解决[1][6

2026-05-11 15:59:32 416

原创 Linux系统裁剪

Linux裁剪,本质是基于Linux内核及根文件系统,根据具体应用场景的需求,移除不必要的内核模块、应用程序、库文件、配置文件等冗余内容,保留系统运行所需的最小功能集合,最终生成体积更小、资源占用更低、启动更快、安全性更高的定制化Linux系统。

2026-04-14 08:57:07 570

原创 ARM处理器体系结构

ARM(Advanced RISC Machines)处理器架构,是由ARM公司设计的一种精简指令集(RISC)处理器架构,并非具体的处理器芯片,而是一套规范和标准,定义了处理器的指令集、寄存器结构、总线接口、异常处理等核心规则。与复杂指令集(CISC,如x86架构)相比,ARM架构的核心特点是“精简”——指令集数量少、指令长度固定(多数为32位,部分架构支持16位Thumb指令)、执行效率高、功耗低,非常适合移动设备、嵌入式系统、物联网设备等对功耗和体积敏感的场景。

2026-04-14 08:53:23 537

原创 Uboot编译

UBOOT(Universal Boot Loader,通用引导加载程序)是一款开源嵌入式系统引导程序,由德国开发者Wolfgang Denk发起,基于GPL协议开源,是目前嵌入式领域应用最广泛的引导加载程序之一。其核心作用的是,在嵌入式设备上电后,完成硬件初始化并引导操作系统(如Linux、Android)启动,相当于嵌入式设备的“启动管家”,是嵌入式系统启动流程中不可或缺的核心组件。

2026-04-13 10:29:58 667

原创 SRIO通信总线

c运行。

2026-04-13 10:27:07 382

原创 Linux

该进程是在哪个终端运行的。(3)Korn Shell(简称ksh):Korn Shell由David Korn开发,解决了Bourne Shell的用户交互问题,并克服了C Shell的脚本编程怪癖的缺点。最初开发的目的是改进Bourne Shell的一些缺点,并使Shell脚本的编程风格类似于C语言,因而受到广大C程序员的拥护。while语句先测试后面的命令或表达式,如果为真,则执行一次循环体种的命令,然后再测试该命令或者表达式,还是如果为真则执行循环中命令,直到该命令或表达式的结果为假时退出循环。

2025-04-15 16:01:59 1895

原创 c高级(1)

2)第一个成员在相对于结构体变量起始位置偏移量offset为0的地址处(通俗点来说,就是第一个成员变量的地址与结构体起始位置的地址是相同的),以后每个成员按定义顺序依次存放在offset为该数据成员大小的整数倍的地方,只有double类型存放在4的整数倍的地方(比如int在32位机器位4字节,要从4的整数倍开始存储)。在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。

2025-04-15 15:57:26 1116

原创 第一天,c语言

'\n'换行 \转义字符 '\101'==65 '\x41'==65。gcc test.o -o test(可执行文件,自己命名)gcc test.c -o test(可执行文件,自己命名)替换 s/a1/a2 光标所在行的第一个a1替换成a2。s/a1/a2/g 光标所在行的所有a1替换成a2。mv之后,原来的文件不存在,被移动到了新地址中。mv 要移动的文件/文件夹 目标地址/新名字。底行模式:保存、退出、分屏、查找、替换。命令行模式:复制、粘贴、撤销、光标移动。

2025-03-21 09:28:57 387

原创 第六七日笔记总结

id=1826442630852726174&wfr=spider&for=pc">点我跳转</a> :超链接:页面跳转。<link rel="icon" href="https://www.baidu.com/favicon.ico">:页面抬头图标部分。-- 行标签:设置宽高无效 --> <span> <a href=""><a>/* 圆角 */border-radius:;/* 字体大小 */font-size:;

2025-03-15 09:37:20 135

原创 第五天笔记

FROM子句主要功能是确定数据的来源,通常数据的来源是一张表,表是行列的结合,因此FROM子查询通常的返回结果是多行多列。3. 列出所有部门名称和这些部门的员工信息(人数、平均工资、平均服务年限、最高最低工资),同时列出那些没有员工的部门。4. 列出所有部门名称和这些部门的员工信息(人数、平均工资、平均服务年限、最高最低工资),同时列出那些没有员工的部门。9. 列出工资不等于部门30中的员工的工资的所有员工的姓名、工资和部门名称。2. 列出雇佣日期早于其领导的所有员工的编号,姓名,部门名称,领导名称。

2025-03-13 20:24:24 1425

原创 第四天笔记

即本题的筛选是分组之后的筛选,WHERE的执行顺序在GROUP BY之前,因此WHERE执行时没有分组。之所以选择职位和部门分组,是因为职位和部门有重复出现的人员,分组的前提是某些数据具有相同的特征;【练习】按照部门分组,统计最低工资高于1500的部门信息:部门号、部门的平均工资和最低工资,按照部门号降序排序,如果部门没有人可以不显示部门。【思考】按照职位分组,统计每个职位的平均工资,只显示平均工资高于2000的职位信息。【例子】按照职位分组,统计每个职位的平均工资,只显示平均工资高于2000的职位信息。

2025-03-13 20:14:50 1607

原创 第三天笔记

SQL99语法真正的优势在于适配外连接,为了更好的观察内连接与外连接的区别,需要给emp表中增加一行没有部门的雇员。【例子】查询出每个雇员的编号、姓名、职位、工资、雇佣日期、工资等级,结果按照工资从高到低排序。1. 查询出每个雇员的编号、姓名、职位、工资、雇佣日期、工资等级,结果按照工资从高到低排序。【思考】查询每个雇员的编号、姓名、职位、雇佣日期、工资、工资等级、所在的部门名称和位置。【例子】查询每个雇员的编号、姓名、职位、工资、部门编号、部门名称、部门位置。

2025-03-13 20:12:50 560

原创 第二天笔记

返回值:从输入参数2中提取的制定(格式来自于输入参数1)数据,需要注意返回值的数据类型为字符串类型。儒略日指的是公元前4713年1月1日中午12点,通过下面的函数可以获得与某个日期时间的差。在SQLite中,如果只是验证函数的功能,可以只使用SELECT子句,不需要FROM子句。输入参数2:截取的起始点,从1开始,0也是1,不建议从0开始,会影响参数3。1. 查询出所有雇员的姓名和他们姓名的长度,并且按照姓名的长度倒序排序。输入参数,表示函数执行需要的数据,可能有0个、1个或多个。

2025-03-13 20:09:52 803

原创 第一天笔记

数据库可以认为是程序员使用的Excel,用于记录和管理软件使用过程中的数据,所有的操作均使用一种SQL的语言进行。【练习】查询每个雇员的编号、姓名、职位、年薪,每个雇员每个月有200元餐补、200元交通补助、夏天四个月有每月300元高温补贴,年底多发3个月基本工资。【例子】查询所有雇员的编号(empno)、姓名(ename)、职位(job)、基本工资(sal)。简单查询的结果包含所有的行(记录),唯一能做的是控制简单查询的结果中的列数。不同的数据库分页查询的语法相差较大,因此不纳入标准执行子句的顺序。

2025-03-13 20:09:17 540 1

空空如也

空空如也

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

TA关注的人

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