- 博客(65)
- 资源 (12)
- 问答 (2)
- 收藏
- 关注
原创 [Linux] Linux 系统编程之文件系统与进程管理(示例代码)
本文介绍了Linux系统编程中的文件系统与进程管理核心概念。文件系统采用树形结构,主要目录包括/bin、/etc、/home等,支持多种文件类型和权限管理。进程作为资源分配单位,具有创建、就绪、运行等状态,可通过系统调用监控。文件与进程通过文件描述符关联,支持读写和共享操作。文件操作技术涵盖描述符与指针、顺序/随机读写、权限属性管理等。系统调用如open、read、write、close提供了底层文件操作接口。理解这些机制对系统优化和故障排查至关重要。
2025-05-23 22:07:11
654
原创 [Linux]Linux多线程编程技术探讨(代码示例)
本文探讨了Linux多线程编程技术,重点介绍了线程基础、线程控制及同步机制。POSIX线程标准(pthread库)提供了线程创建、同步和销毁等功能的API,开发者可以通过线程标识符和错误处理机制管理线程。其次,线程的生命周期管理包括创建、执行和终止,通过pthread_create、pthread_join和pthread_detach等函数实现。线程属性配置允许开发者设置栈空间、调度策略和分离状态,以满足不同应用场景的需求
2025-05-22 23:12:02
959
原创 [Linux] Linux信号量深度解析与实践(代码示例)
信号量是Linux中用于管理共享资源访问权限的非负整数计数器,主要用于实现进程或线程间的互斥与同步。信号量分为二进制信号量和计数信号量,前者用于互斥锁,后者用于管理有限资源。信号量的操作包括P操作(等待)和V操作(释放),分别用于减少和增加信号量的值。Linux提供了无名信号量、有名信号量和System V信号量三种API,分别适用于线程间同步、进程间同步以及更复杂的信号量集操作。通过信号量的合理使用,可以有效避免资源竞争和数据不一致问题,确保系统的稳定性和高效性。
2025-05-21 23:36:33
930
原创 [Linux] Linux线程信号的原理与应用
Linux线程信号机制是进程间通信和多线程同步的重要工具。线程作为进程内的执行单元,共享地址空间但拥有独立的栈和寄存器状态,这为并发执行提供了基础。信号的生命周期包括生成、传递、处理和终止,信号掩码和未决状态的管理对信号处理至关重要。在多线程环境中,进程级信号随机分发,而线程级信号则精确投递,信号处理函数的线程安全性是主要挑战。常用的信号处理API包括signal()、sigaction()、sigprocmask()、pthread_sigmask()、pthread_kill()等
2025-05-20 22:07:40
1294
原创 [学习]POSIX消息队列的原理与案例分析(完整示例代码)
本文深入探讨POSIX消息队列的原理、特性及其在Linux系统中的应用。通过分析消息队列的核心机制、API函数、异步通知功能及多线程安全特性,结合具体案例展示其在生产者-消费者模型、日志处理系统及实时监控系统中的应用。POSIX消息队列作为进程间通信的重要手段,以其高效、灵活和可移植性在分布式系统中发挥关键作用。消息队列是一种用于进程间通信的机制,它允许不同进程通过发送和接收消息来进行数据交换。与管道、共享内存等IPC机制相比,消息队列具有消息边界清晰、支持优先级排序及异步通知等优点。
2025-05-19 22:28:03
1227
原创 [Linux] Linux线程间通信与同步:原理、方法与实战
Linux多线程编程中,线程间通信(IPC)和同步是解决并发问题的核心。线程共享进程资源,但需应对数据竞争、死锁和资源饥饿等问题。同步机制包括互斥锁、条件变量、信号量、读写锁等,确保资源互斥访问和线程执行顺序。通信机制则涵盖共享内存、管道、消息队列、套接字和信号,支持线程间数据传递。本文通过思维导图和代码示例,详细解析了这些方法的原理与实现,并提供了整合多种机制的C语言Demo,帮助开发者高效处理多线程编程中的通信与同步问题。
2025-05-18 12:03:34
1274
原创 [基础] 卫星轨道模型详解与Python仿真对比(完整代码)
本文系统解析四大类卫星轨道专用模型:GEO采用共轨+J2修正模型,精度达米级;MEO使用导航星历模型,集成相对论修正;LEO应用SGP4大气阻力模型,支持高精度衰减预测;IGSO依赖冻结轨道理论。数学建模涵盖二体问题、J2摄动、大气阻力等动力学方程,Python实现SGP4数值积分仿真并与STK对比验证(误差<500m)。各模型在计算效率与精度上形成梯度:GEO模型效率最高,LEO精度受大气影响显著。仿真代码展示LEO轨道衰减过程,STK验证表明简化模型在短期预报中有效。
2025-05-17 21:33:13
1572
原创 [基础] HPOP、SGP4与SDP4轨道传播模型深度解析与对比
本文深入解析了三种经典的轨道传播模型:高精度轨道预测模型(HPOP)、简化通用摄动模型(SGP4)及其深空扩展版本(SDP4),并对其进行了多维对比分析。HPOP以其高精度和全摄动建模能力适用于精密科学任务,但计算耗时较长;SGP4则以其高效性广泛应用于实时态势感知,尤其在低地球轨道(LEO)场景中表现优异;SDP4在深空探测中通过扩展日月引力摄动模型,显著提升了预测精度。
2025-05-16 22:25:39
1113
原创 [学习]RTKLib详解:tle.c(系列终章)
本文解析了 RTKLIB 中 tle.c 文件的功能与实现机制。该模块用于处理 TLE 格式卫星轨道数据,支持基于 SGP4/SDP4 模型的轨道传播与卫星位置计算。主要功能包括 TLE 文件解析、轨道参数初始化、时间传播及坐标转换。代码流程清晰,通过 tle_propagate 和 tle_get_position 实现核心计算逻辑。关键算法基于轨道力学原理,涉及开普勒方程求解、真近点角推导及坐标系变换。`tle.c` 为 GNSS 辅助定位与多系统卫星轨道预测提供了基础支持,适用于 LEO/GEO 卫星
2025-05-15 22:47:41
1381
原创 [学习] RTKLib详解:rtcm2.c、rtcm3.c、rtcm3e与rtcmn.c
本文详细解析了 RTKLIB 中 rtcm2.c、rtcm3.c、rtcm3e.c 和 rtcmn.c 四个 RTCM 协议处理模块。rtcm2.c 实现 RTCM 2.x 消息解析,支持 GPS 差分校正;rtcm3.c 支持多系统、多频段 MSM 格式校正数据;rtcm3e.c 提供厂商扩展消息兼容接口;rtcmn.c 提供 CRC 校验、时间转换与坐标变换通用函数。每个模块均展示了清晰的流程结构与数学原理,为理解 RTKLIB 的 RTCM 协议解析与差分数据处理提供了理论与实践基础。
2025-05-14 21:51:40
1032
原创 [学习] RTKLib详解:qzslex.c、rcvraw.c与solution.c
本文详细解析了 RTKLIB 中 qzslex.c、rcvraw.c 和 solution.c 三个核心模块。qzslex.c 实现 QZSS LEX 信号的解析,支持星历与电离层校正参数提取;rcvraw.c 提供接收机原始数据的统一解析接口,兼容多种格式;solution.c 采用卡尔曼滤波实现 SPP/RTK 等多种解算模式。每个文件均展示了清晰的流程结构与数学原理,为理解 RTKLIB 的信号处理、数据解析与定位解算提供了理论与实践基础。
2025-05-13 22:23:00
885
原创 [学习]RTKLib详解:ionex.c、options.c与preceph.c
本文解析了 RTKLIB 中 ionex.c、options.c 和 preceph.c 三个核心模块。ionex.c 实现 IONEX 格式电离层数据的读取与插值,支持电离层延迟修正;options.c 提供统一的配置选项管理接口,支持多级参数优先级;preceph.c 处理 SP3 格式精密星历,采用拉格朗日插值法实现高精度轨道与钟差计算。每个模块均展示了清晰的流程结构与关键算法,为理解 RTKLIB 的电离层建模、配置管理和精密定位提供了理论与实践基础。
2025-05-12 22:33:50
1100
原创 [学习]RTKLib详解:datum.c、download.c与lambda.c
本文详细解析了 RTKLIB 中 datum.c、download.c 和 lambda.c 三个核心模块。datum.c 实现了基于七参数法的坐标系统转换,支持高精度基准变换;download.c 提供 HTTP/FTP 协议支持,实现自动化网络数据下载;lambda.c 采用 LAMBDA 方法解决整周模糊度固定问题,包含降相关变换与整数最小二乘搜索。每个文件均展示了清晰的流程结构与数学原理,为理解 RTKLIB 的坐标转换、数据获取与模糊度求解提供了理论与实践基础。
2025-05-12 22:15:38
1011
原创 [学习]RTKLib详解:convkml.c、convrnx.c与geoid.c
本文深入解析了RTKlib中三个关键模块:convkml实现GNSS轨迹到KML的转换,采用ECEF到WGS-84坐标转换,支持正高计算;convrnx处理17种GNSS数据到RINEX的转换,包含观测类型自动识别和多系统时间转换;geoid模块提供EGM96/2008等大地水准面模型,采用双线性插值算法。三者协同工作,convkml依赖geoid进行高程转换,convrnx输出数据可供convkml可视化,形成完整GNSS数据处理链条。
2025-05-11 20:33:33
1399
原创 [学习]RTKLib详解:rtksvr.c与streamsvr.c
文章详细介绍了rtksvr.c和streamsvr.c两个核心模块的功能与工作流程。rtksvr.c负责处理多源输入数据,执行实时动态差分定位解算,并输出高精度定位结果,涉及数据输入、解码、状态更新、定位解算及结果输出等步骤。streamsvr.c则专注于多源数据流的格式转换与分发,支持将输入流转换为指定格式并输出,包括数据流转换、消息生成及周期性输出等功能。文章还提供了函数调用关系图、数学原理与关键数据结构
2025-05-10 20:15:58
1218
原创 [学习]RTKLib详解:sbas.c与rtcm.c
本文详细介绍了RTKLib中的sbas.c和rtcm.c两个模块,对他们的整体作用,工作流程以及关键函数进行了详细介绍,并对关键算法提供了数学原理分析与推导。
2025-05-10 20:14:39
1386
原创 [学习]RTKLib详解:ephemeris.c与rinex.c
本文详细解析了RTKLib中的ephemeris.c与rinex.c模块,ephemeris.c模块负责卫星星历与钟差计算,支持多种卫星导航系统(如GPS、Galileo、北斗等),并通过广播星历、精密星历及SSR校正实现多级精度支持。其核心功能包括卫星位置与速度计算、钟差计算、星历数据选择与验证、坐标系旋转及误差方差建模。文章还详细分析了核心函数的数学原理与实现流程,并探讨了开普勒方程求解、坐标系转换、SSR轨道校正等关键算法。此外,文章还介绍了误差模型及不同卫星系统的特性处理。
2025-05-08 22:19:00
631
原创 [学习]RTKLib详解:ppp.c与ppp_ar.c
本文详细分析了RTKLib中的ppp.c与ppp_ar.c两个代码文件,对实现流程、原理以及和关键函数,进行了详细的说明。
2025-05-07 22:20:00
689
原创 [学习]RTKLib详解:pntpos.c与postpos.c
本文详细介绍了RTKLib中的两个核心模块:pntpos.c与postpos.c两个,对这两个模块的工作流程、关键函数、内部调用关系都进行了详细的说明,并对关键算法进行了数学推导。
2025-05-06 23:27:14
1035
原创 [学习]RTKLib详解:rtkcmn.c与rtkpos.c
rtkcmn.c 是RTKLIB的核心公共模块,是GNSS数据处理的核心,涵盖了从原始观测数据到高精度定位解算的全流程,依赖高效的矩阵运算与数值方法(如卡尔曼滤波),实现动态环境下的实时定位;rtkpos.c 是 RTKLIB 库中实现高精度实时动态定位(RTK)的核心模块,主要负责从原始观测数据到最终位置解算的全流程处理,它实现了 RTK 定位的核心算法,涵盖状态估计、误差修正、模糊度解析及解算验证。代码结构清晰,模块化程度高,支持多频多系统观测数据处理,适用于高精度定位场景。
2025-05-06 20:41:31
1078
原创 [学习] RTKlib详解:功能、工具与源码结构解析
RTKlib 是一款开源 GNSS 高精度定位软件库,支持 RTK、PPP、SPP 等多种模式,兼容 GPS、GLONASS、Galileo、BeiDou 等多系统卫星信号。其核心功能涵盖观测数据解析、差分协议处理、精密星历计算及卡尔曼滤波定位算法。
2025-05-05 16:58:28
1707
原创 [方法论]软件工程中的软件架构设计:从理论到实践的深度解析
本文系统解析了软件架构设计的核心目标、方法论及实践范式。首先,从质量属性(可维护性、扩展性、可靠性等)与架构权衡角度阐述设计目标,强调其需平衡业务需求与技术约束。其次,梳理了架构方法论演进路径:从瀑布模型、模块化分解到领域驱动设计(DDD)、架构决策记录(ADR)及云原生架构,结合案例说明不同场景下的适用策略。随后,深入剖析主流架构风格——单体架构、微服务、事件驱动架构及Serverless的核心特征、技术选型与适用边界,并提供量化评估模型(如技术雷达图、成本收益分析)。
2025-05-04 11:42:34
1457
原创 [方法论]软件工程中的设计模式:从理论到实践的深度解析
设计模式是软件开发中解决常见问题的可复用方案,主要分为三类:创建型(如工厂方法、单例)、结构型(如适配器、代理)和行为型(如观察者、策略)。本文详细介绍了各类模式的核心思想、UML图示、代码示例及适用场景,并探讨了其在现代框架(如Spring、React)中的应用。合理使用设计模式能提升代码可维护性与扩展性,但应避免过度设计。掌握这些模式有助于构建灵活、健壮的软件系统。
2025-05-03 22:55:02
2234
3
原创 [基础] C++throw详解:异常处理的核心机制(示例代码)
本文介绍了C++的异常处理机制,通过简单的实例,对C++异常处理机制进行了通俗易懂的介绍。
2025-05-02 20:40:38
926
原创 [实战] IRIG-B协议详解及Verilog实现(完整代码)
IRIG-B协议通过精密的脉宽调制和帧结构设计,实现了从纳秒级设备同步到广域时间网络的全覆盖。其工程实现融合了数字编码、模拟调制、信号完整性的复杂技术,在电力、航天、通信等领域发挥着不可替代的作用。随着5G、量子技术、AI的发展,IRIG-B协议正从传统的时间基准向智能时间服务平台演进,持续守护着现代社会的时空秩序
2025-04-28 21:04:14
1427
原创 [实战] 卡尔曼滤波:原理、推导与卫星导航应用仿真(完整代码)
卡尔曼滤波(Kalman Filter)是一种利用线性系统动态模型和噪声统计特性,通过递归算法实现最优状态估计的方法。本文从贝叶斯估计理论出发,推导卡尔曼滤波的数学公式,揭示其“预测-修正”两阶段的核心思想。针对卫星导航中的定位误差问题,通过Python仿真验证卡尔曼滤波对动态目标轨迹的优化效果。仿真结果表明,在存在观测噪声和过程噪声的条件下,卡尔曼滤波可将定位误差降低约60%。代码实现涵盖状态建模、噪声协方差配置及可视化分析,完整代码可直接复现实验结果。
2025-04-26 23:13:07
1458
原创 [基础] Windows PCIe设备驱动框架与开发实践深度解析
本文简单介绍了windows PCIE 设备驱动的核心架构,对驱动进行全生命周期剖析,并介绍了部分驱动API。
2025-04-25 21:36:05
579
原创 [实战]zynq7000设备树自动导出GPIO
经过仔细研究linux设备操作,搞清楚了问题的根本原因,他在于设备树只是申明有这么一个设备,但是是不是会使用,取决于驱动,所以现在要想实现自动export还得自己写一段驱动才行。linux sys 接口,对GPIO实行的export操作,是临时性质的,因此每次重启系统,都需要重新进行export。通常可以通过制作脚本,在系统加载后或者用户登录后自动export,但今天,我想借这个事情,聊一条怎么用linux设备树解决这个问题。插入microzed,重启。保存,编译,打包,拷贝到SD卡,启动开发版。
2025-04-23 23:53:26
1413
原创 [学习] C语言数据结构深度解析:八种树结构与应用场景详解(代码示例)
详细描述C语言数据结构中的各种树,并通过实际代码,演示各种树的用途和区别。
2025-04-16 23:00:29
668
原创 [实战] 二分查找与哈希表查找:原理、对比与C语言实现(附完整C代码)
在计算机科学中,高效的数据查找是核心问题之一。本文深入解析两种经典查找算法:二分查找与哈希表查找,从算法原理、时间复杂度、适用场景到完整C语言实现,提供系统化的对比与实践指南。
2025-04-13 18:43:48
1019
原创 [实战]跨平台线程安全FIFO队列实现(完整可用代码)
通过本文的详细解析,读者可以全面理解这个线程安全FIFO队列的实现细节,掌握其设计精髓,并能够根据实际需求进行扩展优化。该实现展示了良好的跨平台设计思想和线程安全实践,是学习并发数据结构的优秀范例。所提供的代码在Ubuntu20.04和win10中都验证通过,并可方便移植到RTOS以及裸机嵌入式中使用。可以作为一些简单通信系统的基础服务模块
2025-04-12 22:28:04
1314
原创 [实战]多天线空域抗干扰技术:原理、数学推导与工程仿真(完整仿真代码)
多天线空域抗干扰技术(Spatial Anti-Jamming)利用天线阵列的空间自由度,通过自适应波束形成(Beamforming)技术,在期望信号方向上增强接收,同时在干扰方向上形成零陷(Null),从而有效抑制干扰。本文详细介绍该技术的原理、数学推导、工程实现方法,并以7阵元均匀线性阵列(ULA)为例进行Python仿真,展示方向图和抗干扰效果。
2025-04-09 23:07:31
1169
原创 [实战] 天线阵列波束成形原理详解与仿真实战(完整代码)
系统性地介绍了波束成形的核心原理与设计方法,涵盖了从基础模型到实际增益计算的完整链路。如需进一步探讨自适应算法(如MVDR)或硬件实现细节,可在此基础上扩展研究。并提给出了完整的仿真代码。
2025-04-08 23:17:13
1153
原创 [实战] linux驱动框架与驱动开发实战
本文系统阐述Linux驱动开发框架与实现方法,重点解析字符设备、PCI总线及DMA核心机制。以Xilinx XDMA驱动为实例,详解开发全流程:从模块初始化、PCI设备探测、资源映射,到字符设备注册、文件操作接口实现,最后通过Mermaid流程图直观展示驱动加载、数据传输(含中断处理)到模块卸载的完整生命周期。文中提供关键API说明、DMA传输代码实例及调试技巧,涵盖零拷贝优化、分散聚集传输等高级特性,为PCIe设备驱动开发提供完整参考范式
2025-04-05 20:16:23
1801
原创 [实战] 深入解析Petalinux下Zynq7000设备树开发:从理论到实战
本文系统解析了Petalinux下Zynq7000设备树开发全流程。从工程目录结构切入,重点剖析system-user.dtsi、pl.dtsi、pcw.dtsi、system_conf.dtsi及skeleton.dtsi等核心文件的定位与作用,其中用户自定义配置通过system-user.dtsi实现,硬件抽象描述由Vivado生成的pl.dtsi承载,system_conf.dtsi定义全局系统参数,而skeleton.dtsi提供基础框架。
2025-04-01 09:19:39
1135
原创 [linux实战]Linux IIO子系统从原理到嵌入式开发实践
工业I/O(Industrial I/O,IIO)是Linux内核中用于处理模拟信号采集与转换的核心子系统,支持传感器(如加速度计、陀螺仪)、模数转换器(ADC)、数模转换器(DAC)等设备的驱动开发与数据交互。本文系统阐述IIO的架构设计、工作原理、用户空间编程方法,并提供AD7606模数转换器的完整开发案例。通过本文,开发者可掌握IIO在嵌入式系统中的配置、调试与优化技巧。
2025-03-30 18:41:14
1156
IRIG-B的Verilog实现
2025-04-28
卡尔曼滤波卫星导航领域应用简单仿真
2025-04-26
二分法查找以及哈希表查找的C语言实现
2025-04-13
hermite插值算法的C语言实现
2025-04-13
ECEF坐标系到ENU坐标系转换的C语言实现
2025-04-13
自适应均衡器完整python仿真代码
2025-04-13
跨平台安全fifo完整C代码
2025-04-12
Spyder 独立安装板目前最新版(截止到2023-12),外网下载太痛苦 板砖给需要的人
2024-01-01
MIPI PHY 协议 官网最新版(截止到2023-12) 外网太慢,转给有需要的人
2024-01-01
NVME协议1.3_1.4.rar
2020-07-19
ARM contex M1 FPGA软核 for xilinx
2019-01-28
关于c/c++返回结构体的问题
2021-06-19
关于PCI-E的几个问题,请高手指点!
2016-01-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人