- 博客(485)
- 资源 (11)
- 收藏
- 关注
原创 卫星的“太空陀螺”:反作用轮如何精准控制姿态?
在距地面500公里的轨道上,一颗遥感卫星正以7.8km/s的速度飞越目标区域。此时星载计算机发出指令:“滚转15°并对准目标点”。短短数秒后,数吨重的卫星如同被无形之手推动般完成转向,镜头稳定锁定地面——这一切的核心执行者,正是被称为“卫星方向盘”的**反作用轮**。
2025-06-04 20:42:06
691
原创 卫星在轨姿态控制技术详解:从自旋稳定到高精度闭环控制
姿态控制是卫星在轨运行的“驾驶技术”,它决定了卫星能否精确指向目标、稳定收集数据并完成预定任务。如果把卫星比作太空中的无人机,那么姿态控制系统就是它的飞控核心——一旦失控,价值数亿的卫星就会沦为太空垃圾。随着遥感、导航、通信等任务对精度要求的不断提高,姿态控制技术也从简单的自旋稳定发展到如今的亚角秒级高精度控制。
2025-06-04 20:29:25
801
原创 星敏感器:卫星姿态测量的“星空导航仪”
在卫星、航天器和深空探测器的姿态控制系统中,星敏感器(Star Tracker) 是最精确的姿态测量设备之一。它通过识别恒星的位置,计算出航天器在惯性空间中的三轴姿态,精度可达 角秒级(arcsecond),是许多高精度任务(如遥感、天文观测、深空探测)的核心传感器。
2025-06-03 20:32:52
934
原创 太阳敏感器:卫星姿态控制的“指南针
在卫星姿态控制系统中,太阳敏感器(Sun Sensor) 是至关重要的光学姿态敏感器之一。它通过探测太阳光的方向,为卫星提供关键的姿态参考信息,确保卫星能够正确调整自身方位,维持稳定的对日定向,保障能源供应和任务执行。
2025-06-03 20:05:13
815
原创 ARM P15协处理器指令详解:架构、编程与应用实践
在ARM处理器架构中,协处理器(Coprocessor)系统是扩展处理器功能的关键机制,其中CP15(即协处理器15)作为系统控制协处理器,承担着内存管理、缓存控制、系统配置等核心功能。本文将全面剖析P15协处理器的指令用法,涵盖Cortex-A/R/M全系列处理器的共性特性和差异实现。
2025-06-01 23:25:36
622
原创 Linux下使用socat将TCP服务转为虚拟串口设备
socat工具可在Linux下将TCP服务转为虚拟串口设备,实现双向数据传输。通过创建伪终端(PTY)并绑定TCP端口,建立/dev/ttyVIRT0虚拟串口与TCP连接间的桥梁。
2025-05-27 18:28:04
566
原创 Linux下的全能网络工具:socat命令详解
socat是Linux下强大的多功能网络工具,支持TCP/UDP/SSL等协议,能实现端口转发、代理、加密通信等功能。该指南介绍了socat的安装方法、基本语法和10个实用场景.
2025-05-27 17:54:18
783
原创 什么是计算机体系结构
计算机体系结构通常用指令系统手册和结构框图来表示, 结构框图中的方块表示计算机的功能模块, 线条和箭头表示指令和数据在功能模块中的流动, 结构框图可以不断分解一直到门级或晶体管级。用硬件描述语言 (如 Verilog)描述的体系结构可以通过电子设计自动化 (Electronic Design Automation, 简称 EDA) 工具进行功能验证和性能分析, 转换成门级及晶体管级网表, 并通过布局布线最终转换成版图, 用于芯片制造。冯·诺依曼结构的存储程序和指令驱动执行原理是现代计算机体系结构的基础。
2025-04-02 14:59:32
855
原创 深入解析libffi:跨语言函数调用的底层引擎
抽象与封装:隐藏不同平台的调用约定差异动态性:运行时决定函数签名可扩展性:支持自定义类型和ABI支持更多新兴架构(如RISC-V)优化WebAssembly环境下的性能增强类型系统的表达能力无论是构建多语言集成的复杂系统,还是开发高性能的脚本语言扩展,理解libffi的工作原理都将为开发者带来显著优势。它的设计理念和实现技巧,也值得所有对系统编程感兴趣的开发者深入研究。
2025-04-02 10:19:47
762
原创 深入解析libreadline:命令行交互的强大引擎
if (!// 初始化// 在main中设置:实现效果:输入"st"后按Tab,会补全"start"/“stop”/“status”libreadline作为命令行交互的黄金标准,其强大功能可以极大提升应用的易用性。媲美Bash的编辑体验智能补全功能跨会话历史记录高度可定制的交互界面无论是开发自定义Shell、数据库客户端还是其他CLI工具,libreadline都是值得信赖的选择。
2025-03-31 14:19:35
397
原创 深入解析libcurl:跨平台网络传输的瑞士军刀
libcurl诞生于1997年,由Daniel Stenberg创建,最初是作为命令行工具curl的底层库发展而来。经过20余年演进,现已成为支持最广泛网络协议的开源传输库,被Apple、Google、Microsoft等巨头深度集成到操作系统和开发工具链中。作为跨平台、多协议、线程安全的网络传输引擎,libcurl解决了三大核心痛点:四层抽象模型:多接口模式:Easy接口:同步阻塞式(适合简单场景)Multi接口:异步非阻塞(支持多路复用)Share接口:跨句柄资源共享2.3 独特优势
2025-03-31 12:15:30
896
原创 深入探索 libarchive
通过本文的深度解析,开发者可以全面掌握libarchive的核心能力。无论是构建新一代包管理工具,还是开发安全的数据处理服务,这个历经20年淬炼的开源库都将是您值得信赖的基石。其优雅的API设计和强大的格式支持,让归档处理从未如此简单高效。
2025-03-28 18:47:31
891
原创 深入解析libsafec:C语言安全编程的守护者
libsafec是一个C语言库,专注于提供安全的函数替代标准C库中容易引发安全问题的函数。防止缓冲区溢出:通过显式指定缓冲区大小,避免越界访问。增强输入验证:提供安全的输入处理函数,防止注入攻击。提高代码可移植性:兼容多种操作系统和编译器。libsafec通过提供一系列安全的函数替代标准C库中的危险函数,帮助开发者编写更健壮、更安全的代码。防止缓冲区溢出:通过显式指定缓冲区大小,避免越界访问。增强输入验证:提供安全的输入处理函数,防止注入攻击。提高代码可移植性:兼容多种操作系统和编译器。
2025-03-24 09:45:27
382
原创 深入解析libsunrpc:构建分布式系统的核心RPC库
RPC是一种通过网络从远程计算机请求服务的协议,其核心思想是让远程调用像本地函数调用一样简单。开发者无需关注底层网络通信细节,只需定义接口即可实现跨进程或跨机器的交互。通信模型:基于客户端-服务器模式,客户端发起调用请求,服务器执行并返回结果。协议分层:跨越OSI模型的传输层和应用层,依赖TCP/UDP作为传输协议。libsunrpc作为经典的RPC实现,为分布式系统提供了可靠的基础设施。跨平台能力:通过XDR和标准化接口支持异构系统。灵活的服务管理:动态端口映射简化了服务部署。可扩展性。
2025-03-24 09:34:18
477
原创 OpenSSH详解:构建安全远程管理的核心技术
在数字化时代,远程管理服务器和数据传输的安全性至关重要。OpenSSH(Open Secure Shell)作为SSH协议的开源实现,通过加密通信、身份验证和数据完整性保护,彻底解决了传统工具(如Telnet、FTP)的明文传输风险。本文将从核心原理、配置实践到高级功能,全面解析OpenSSH的技术细节与应用场景。
2025-03-24 09:22:33
833
原创 探索Mbed TLS:嵌入式系统中的加密与安全通信
Mbed TLS 是一个开源的加密库,旨在为嵌入式系统和资源受限的设备提供安全通信和加密功能。它支持多种加密算法(如AES、RSA、ECC)、哈希函数(如SHA-256)、随机数生成器以及SSL/TLS协议的实现。Mbed TLS 的设计目标是模块化、可移植和易于集成,使其成为嵌入式开发者的首选加密库。Mbed TLS 的模块化设计允许你根据需要启用或禁用特定功能。通过修改config.h文件,你可以自定义库的功能集,以减少资源占用。
2025-03-24 09:16:16
1375
原创 探索Google Test(gtest):C++单元测试的强大工具
在软件开发过程中,单元测试是确保代码质量和可靠性的重要手段。Google Test(简称gtest)是Google开发的一个C++单元测试框架,广泛应用于各种C++项目中。它提供了丰富的断言、测试固件、参数化测试等功能,使得编写和维护单元测试变得更加简单和高效。本文将详细介绍gtest的基本用法和高级特性,帮助你快速上手并充分利用这个强大的工具。
2025-03-24 09:08:40
624
原创 使用 glog 实现高效的日志记录
glog高性能:基于异步日志记录,减少对主线程的影响。灵活的日志级别:支持多种日志级别(如 INFO、WARNING、ERROR、FATAL)。日志文件管理:自动按日期或大小分割日志文件。线程安全:支持多线程环境下的日志记录。跨平台:支持 Linux、macOS 和 Windows 等操作系统。glog广泛应用于 Google 的开源项目(如 gRPC、TensorFlow)以及其他许多 C++ 项目中。glog});glog是一个功能强大且高效的日志库,适用于各种 C++ 项目。
2025-03-18 16:17:20
1005
原创 使用 libmodbus 实现 Modbus 通信
libmodbusModbus RTU:基于串行通信(如 RS-232、RS-485)。Modbus TCP:基于以太网通信(TCP/IP)。:基于 ASCII 编码的串行通信。主站和从站功能:支持 Modbus 主站(Master)和从站(Slave)的实现。libmodbus跨平台:支持 Linux、Windows、macOS 等操作系统。易用性:提供了简洁的 API,方便开发者快速上手。高性能:基于事件驱动模型,支持高并发通信。libmodbus。
2025-03-18 15:38:25
1107
原创 使用 OpenSSL 构建安全的网络应用
对称加密:如 AES、DES。非对称加密:如 RSA、ECC。哈希算法:如 SHA-256、MD5。SSL/TLS 协议:用于安全的网络通信。证书管理:X.509 证书的生成、签名和验证。OpenSSL 广泛应用于 Web 服务器(如 Apache、Nginx)、邮件服务器、VPN 以及其他需要安全通信的场景。OpenSSL 是一个功能强大且灵活的开源库,适用于各种加密和安全通信场景。通过它,开发者可以轻松实现数据加密、SSL/TLS 通信以及证书管理。
2025-03-18 14:41:40
920
原创 使用 libevent 构建高性能网络应用
libevent是一个用 C 语言编写的事件驱动库,旨在提供一种高效的方式来处理 I/O 事件、定时器和信号。跨平台:支持 Linux、macOS、Windows 等多种操作系统。高性能:基于操作系统提供的高效 I/O 多路复用机制(如epollkqueueIOCP等)。易用性:提供了简洁的 API,方便开发者快速上手。可扩展性:支持多种事件类型(如 I/O 事件、定时器事件、信号事件)。libevent被广泛应用于许多知名项目,如 Memcached、Tor 和 Chromium。
2025-03-18 14:03:46
774
原创 使用 gflags 轻松解析命令行参数
gflags是 Google 提供的一个用于解析命令行参数的 C++ 库。简单易用:通过宏定义参数,无需手动解析argc和argv。类型安全:支持多种类型的参数(如字符串、整数、布尔值等)。灵活性:支持默认值、参数描述、验证函数等。跨平台:支持 Linux、macOS 和 Windows 等操作系统。gflags广泛应用于 Google 的开源项目(如 gRPC、TensorFlow)以及其他许多 C++ 项目中。gflags使用宏来定义命令行参数。:定义字符串类型参数。
2025-03-18 11:52:44
1152
原创 【嵌入式英语教程--20】实时操作系统中的内存管理
实时操作系统 (RTOS) 中的内存管理对于确保任务拥有必要的资源以高效执行至关重要。在 RTOS 中,内存通常是动态分配的,这意味着系统会根据需要将内存块分配给任务。这种灵活性允许系统处理不同的工作负载,但也需要谨慎管理,以避免碎片化和内存泄漏。RTOS 使用内存管理器来分配和释放内存。当任务完成时,它使用的内存被归还到池中,使其可供其他任务使用。此外,RTOS 通常采用内存分区等技术,以确保关键任务始终能够访问所需的内存。因此,开发人员必须设计他们的系统,以优化内存使用并防止错误。
2024-08-16 09:50:53
1462
原创 【嵌入式英语教程--19】实时操作系统中的中断
在实时操作系统(RTOS)中,中断对于响应实时事件至关重要。中断是一种信号,它会暂时停止CPU的当前操作以执行特定任务。中断确保系统可以在没有延迟的情况下处理关键事件,例如输入/输出操作、传感器读取或与其他设备的通信。当发生中断时,CPU会保存其当前状态并执行中断服务程序(ISR)。ISR 是一个处理中断的小型预定义程序。有效管理中断对于保持系统的实时性能至关重要。中断延迟是指CPU响应中断所需的时间。在RTOS中,低中断延迟非常重要,因为即使是很小的延迟也可能影响系统满足截止时间的能力。
2024-08-16 09:35:23
800
原创 【嵌入式英语教程--18】实时操作系统信号量
实时操作系统 (RTOS) 中的信号量是一种用于管理资源访问的同步工具。它控制任务如何与共享资源交互,防止冲突。信号量可以是二进制的或计数的。二进制信号量仅允许一个任务在同一时间访问资源。计数信号量允许多个任务访问资源,直到达到定义的上限。当任务完成时,它会释放信号量。通过这种信号传递,确保资源在多任务环境中得到高效、安全的使用。表示一次仅允许一个任务访问资源。是复合名词,表示多任务处理环境。是动名词短语,表示防止冲突。表示任务继续之前的条件。表示任务与资源的交互,表示信号量变为可用,
2024-08-15 09:55:10
1095
原创 【嵌入式英语教程--17】实时操作系统调度特点
实时操作系统 (RTOS) 基于任务的优先级来管理任务。如果有更高优先级的任务准备就绪,系统可以抢占正在运行的任务。总体而言,RTOS 调度设计用于在时间敏感的环境中提供可预测的行为。引导条件从句,表示当高优先级任务准备就绪时,系统可以抢占正在运行的任务。是不定式结构,用来表目的,意指确定任务执行的顺序。表示高优先级任务在低优先级任务之前执行,是被动语态,强调任务被执行的顺序。是时间状语短语,意指任务按时完成,这里指的是需要及时完成的重要任务。是复合名词,表示时间敏感的环境。是副词,表示总体上,
2024-08-15 09:45:41
786
原创 【嵌入式英语教程--16】实时操作系统的线程间通信
在实时操作系统 (RTOS) 中,线程间通信对于协调任务是必不可少的。线程通常需要共享数据或同步其动作。常见的线程间通信方法包括消息队列、信号量和互斥量。消息队列允许线程以结构化的方式发送和接收数据。信号量帮助控制对共享资源的访问,防止冲突。互斥量(或互斥锁)确保一次只有一个线程访问代码的关键部分。有效的线程间通信对于实现实时性能和确保系统稳定至关重要。
2024-08-14 09:47:59
1237
原创 【嵌入式英语教程--15】实时操作系统的线程
在实时操作系统 (RTOS) 中,线程是最小的执行单元。线程在 RTOS 中对于管理需要同时运行的任务至关重要。每个线程都有其自己的堆栈,这是其执行上下文的重要组成部分。RTOS 调度程序根据优先级决定在任何给定时间运行哪个线程。高优先级线程可以抢占低优先级线程,以确保关键任务按时完成。线程可以使用消息队列和信号量等线程间通信机制进行通信。正确的线程管理是实现嵌入式系统中实时性能的关键。
2024-08-14 09:33:46
997
原创 【嵌入式英语教程--14】实时操作系统原理
A Real-Time Operating System (RTOS) is designed to serve real-time applications that process data as it comes in, typically without buffering delays. The primary function of an RTOS is to manage the hardware resources of a computer so that tasks can be exe
2024-08-13 11:34:06
1130
原创 【从零开始一步步学习VSOA开发】VSOA命令行工具vcl
是一个 VSOA 命令监听器,支持订阅来自特定服务器发布的所有数据。以命令-p-dvsoa://http://topic0。
2024-08-09 09:17:25
354
原创 【从零开始一步步学习VSOA开发】VSOA数据报
Datagram 是 VSOA 的一种数据传输类型,通常这种类型用于传输一些不需要确认的数据,例如传输视频流数据或构建 VPN 网络。Datagram 可以简单快速的在网络中传输数据。它即不需要建立连接,也不需要维护连接,因此可以更快地传输数据。客户端和服务端建立连接后,双方均可发送和接收 VSOA Datagram。发送使用直接调用函数方式;而接收使用事件机制,需要绑定一个接收回调函数。
2024-08-09 09:15:18
660
原创 【从零开始一步步学习VSOA开发】VSOA数据流
实际业务中常常存在既有实时命令通信,又有非实时的大数据通信,如文件、音视频传输服务等,如果使用常规的 RPC 或订阅/发布功能来实现,将实时命令和大数据传输混在一起,则会影响 RPC 通道响应的实时性,尤其在需要 RPC 实时控制的应用中就显得极不合理;另一种方式是针对此类大数据的每一个通信,均额外实现对应的服务,但这会给开发者带来额外的编程复杂度,同时增加整个系统的资源开销。VSOA 中提供了全双工高速并行数据流,称为 “VSOA Stream”。
2024-08-09 09:13:41
1112
原创 【从零开始一步步学习VSOA开发】订阅发布变速器
在许多场景中,我们需要控制发布频率。例如,一个 UI 界面不能过快的接收处理信息,而此时发布者的发布频率又非常快。在这种场景下,我们需要改变发布的频率。使用 VSOA Regulator 可以解决这个问题,它既可以使用在服务端,也可以使用在客户端。
2024-08-08 09:21:31
425
原创 【从零开始一步步学习VSOA开发】发布订阅重连时同步
数据同步是指在数据发布与订阅场景中,当客户端因故障断开重连后,需要立即获取当前最新数据的需求。如前面开发示例中的 axis_server 陀螺仪服务,若产生故障断开重连,则需要客户端上线后立即获取/axis的最新状态,以保证数据的一致性。通常情况下,客户端会在断开重连后,主动发起一次 RPC 请求以获取数据的最新状态,但如果需要获取的数据量较大,则会给代码编程带来更多的复杂性。此时,可以使用客户端机器人带有的自动数据同步接口进行处理。
2024-08-08 09:19:30
487
原创 【从零开始一步步学习VSOA开发】发布订阅客户端
相比于 RPC 客户端,订阅发布客户端是被动工作的,其配置更为简单,只需要在vsoa_client_auto_create 中注册订阅回调函数,在vsoa_client_auto_start 中设置订阅 URL 即可。
2024-08-07 09:33:47
295
原创 【从零开始一步步学习VSOA开发】发布订阅服务端
*发布订阅模式(Publish-Subscribe Pattern)**是一种消息传递模式,其中发布者发布消息,而订阅者接收和处理这些消息。它是一种松耦合的通信方式,允许发布者和订阅者在不知道彼此存在的情况下进行通信。发布订阅模式的原理基于消息队列或主题,发布者将消息发布到特定的消息队列或主题中,而订阅者可以订阅这些消息队列或主题以接收和处理消息。发布者和订阅者之间的通信是异步的,这意味着发布者发布消息后,订阅者可以在任何时候接收和处理消息。
2024-08-07 09:25:22
925
原创 【从零开始一步步学习VSOA开发】同步RPC客户端
前面的测试例程都是以异步 RPC 的模式运行的,客户端调用 RPC 请求后无需等待服务端应答即可返回,后面通过回回调方式获取返回结果。同步 RPC 即客户端在发送完毕请求后,函数进入阻塞模式一直等待,直到接受到服务端应答才唤醒并退出该函数,然后通过另外接口获取执行结果。同步 RPC 前首先需要使用创建 RPC 同步器,其次使用进行同步的 RPC 调用,调用结束后,再用vsoa_parser_get_payload 获取服务端返回结果,最后用删除 RPC 同步器。
2024-08-06 17:41:17
540
原创 【从零开始一步步学习VSOA开发】并行RPC服务端
之前 RPC 使用方式中的所有回调函数都是串行执行的,VSOA 为 C 语言开发版本提供了并行处理 RPC 请求的功能,开发者可以通过并发 RPC 相关接口创建线程池并行处理 RPC 请求。并发服务模式通过多线程来实现,能有效提高响应速度,降低排队等待时间。
2024-08-06 17:39:15
350
原创 【从零开始一步步学习VSOA开发】位置服务
VSOA 位置服务器提供了按服务名称查询 VSOA 服务器地址的功能,类似于 DNS 服务器,能有效简化客户端配置服务端地址的操作,并提高灵活性,为后面的故障自动迁移提供必要保证。位置模块 API 在和中。
2024-08-06 17:37:48
1059
RealEvo-Simulator 下的 AMD64 平台磁盘镜像
2024-08-02
sdk-vsoa-v173-x64
2024-08-02
RealEvo-Simulator 下的 AMD64 平台系统镜像
2024-08-02
Hercules系列处理器安全特性介绍.pdf
2018-02-02
RealEvo-IDE快速入门.pdf
2018-02-02
SylixOS下coreutils 软件包工程。
2022-05-11
The SPARC Architecture Manual Version 8
2022-04-16
GNU make中文手册2020.zip
2020-03-24
i.MX RT1050 Processor Reference Manual.pdf
2018-02-02
RealEvo-IDE使用手册.pdf
2018-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人