- 博客(215)
- 问答 (5)
- 收藏
- 关注
原创 AutoSAR CP 飞阅TIME
AUTOSARAUTomotiveOpenSystemARchitecture),中文是“汽车开放系统架构”,是一家致力于制定汽车电子软件标准的联盟。他们制定了一套专门用于汽车的开放性的框架和行业标准,它将用作管理将来的应用程序和标准软件模块中功能的基本基础结构。I/O Hardware Abstraction是一组模块,从外围I/O设备(片上或板上)的位置和ECU硬件布局(例如µC引脚连接和信号电平反转)中抽象出来。I/O硬件抽象不会从传感器/执行器中抽象出来!
2023-09-02 16:47:29
988
原创 libbpf-bootstrap开发指南:socket 监测与过滤 - sockfilter
做全网最好的libbpf-bootstrap 开发指南
2023-07-16 16:43:46
1584
1
原创 libbpf-bootstrap开发指南:使用ringbuf 进行通信 - bootstrap
做全网最好的libbpf-bootstrap开发指南
2023-07-15 21:51:43
1341
原创 libbpf-bootstrap开发指南:使用map结构进行参数传递 - minimal_legacy
做全网最好的libbpf-bootstrap 开发指南
2023-07-15 21:47:33
1316
原创 libbpf-bootstrap开发指南:适用于docker等虚拟环境的进程监测 - minimal_ns
最全网最好的libbpf-bootstrap开发指南
2023-07-15 21:45:39
1473
原创 libbpf-bootstrap开发指南:第一个tracepoint 监测demo - minimal
做全网最好的libbpf-bootstrap 开发指南
2023-07-15 21:43:51
1203
1
原创 libbpf-bootstrap 开发指南:概念与如何安装
libbpf-bootstrap 是一个项目,旨在帮助开发者快速启动和开发使用 eBPF (Extended Berkeley Packet Filter) 和 libbpf 的程序。eBPF 是一种可以在 Linux 内核中运行的程序,提供了强大的网络过滤、系统调用监控和性能分析等功能。libbpf 是一个库,用于加载和管理 eBPF 程序和 map。libbpf-bootstrap 提供了一些样例程序和模板,帮助开发者理解如何使用 libbpf 创建、加载、管理 eBPF 程序,并与这些程序进行交互。
2023-07-15 21:41:39
2371
2
原创 FastDDS 源码剖析:DataWriter分析
目录DataWriter分析DataWriter 类分析DataWriterImpl 类分析关键函数分析DataWriter分析DataWriter 类分析DataWriter 类是 Fast DDS 库中的一个重要类,它用于实现 DDS(Data Distribution Service)发布-订阅通信模型中的数据写入功能。用途:DataWriter 类用于向特定主题(Topic)发布数据。它负责将数据写入到该主题,并将数据传输给订阅该主题的数据读取器(DataRea
2023-07-13 11:58:55
1683
2
原创 FastDDS 源码剖析:src/cpp/fastdds 源码结构与Publisher源码分析
●set_default_datawriter_qos()和get_default_datawriter_qos():这些函数用于设置和获取该Publisher创建的DataWriter的默认QoS策略。它们声明类和类的方法。●begin_coherent_changes()和end_coherent_changes():这些函数用于开始和结束应该一起发送的一组更改。●get_listener()和set_listener():这些函数用于获取和设置Publisher的PublisherListener。
2023-07-11 10:08:41
1576
原创 libbpf 开发指南:更新(替换)与给定 eBPF 链接关联的 eBPF 程序
在运行 loader 之后,请打开一个新的终端并运行 dmesg -w。返回值:如果成功,则返回 0;否则返回一个负的错误代码。
2023-07-06 10:27:13
384
原创 libbpf 开发指南:获取与给定 eBPF 链接关联的文件描述符
返回值:一个整数,表示与给定 eBPF 链接关联的文件描述符。如果发生错误,将返回负数。
2023-07-06 10:25:34
213
原创 libbpf 开发指南:打开一个已经固定在文件系统路径上的 eBPF 程序的链接
返回值:一个指向 bpf_link 结构的指针,表示 eBPF 程序的链接。如果打开链接失败,将返回 NULL。
2023-07-06 10:24:49
323
原创 libbpf 开发指南:获取与给定 eBPF 链接关联的固定路径
返回值:一个字符串,表示与给定 eBPF 链接关联的固定路径。如果未固定给定的 eBPF 链接,则返回 NULL。
2023-07-06 10:24:05
552
原创 libbpf 开发指南:自动加载BPF程序所需的内核模块
参数说明:返回值:return 0;if (!obj) {return 1;if (!prog) {return 1;return 0;CC=gccall: testclean:rm -f test./demo。
2023-07-06 10:22:06
487
原创 libbpf 开发指南:将 eBPF 程序固定到一个给定的文件系统路径
在这个例子中,eBPF 程序被固定在 /sys/fs/bpf/my_bpf_prog 路径。请注意,在运行示例时,需要具有适当的权限,因此使用 sudo 运行它。另外,确保 /sys/fs/bpf 目录存在。正常情况下返回 0;如果发生错误,返回负数。
2023-07-06 10:20:57
267
原创 FastDDS 源码剖析: DDS-pub模块分析(Publisher&TAnyDataWriter)
wait_for_acknowledgments(const Duration_t&) 方法的实现原理。这个方法要求 Publisher 等待直到其所有的 DataWriter 对象收到关于它们已发布数据的确认。这意味着所有订阅者都已经成功地接收到了这些数据。源码位置:src/cpp/dds/pub/Publisher.cpp。
2023-07-06 09:34:59
668
原创 FastDDS 源码剖析:DDS部分 - types&DomainParticipant分析
源码主要在 src/cpp/dds/domain/DomainParticipant.cpp 下,在DDS体系结构中,DomainParticipant代表着在特定DDS域中参与发布和订阅数据的应用程序实体。位于src/cpp/dds中的types.cpp文件和位于include/dds/core中的types.hpp文件是FastDDS库的核心实现的一部分。cpp文件是定义空对象的源文件。总之,types.cpp和types.hpp用于定义一个特殊的空对象,该对象表示FastDDS库中的空值。
2023-07-05 10:31:44
1075
原创 libbpf 开发指南:查找具有给定名称和附加类型的内核 BTF(BPF Type Format)类型 ID
参数解释:返回值:return 0;int btf_id;return 1;return 0;CC = gccclean:
2023-07-04 11:01:04
335
原创 libbpf 开发指南:迭代一个 BPF 对象的 BPF 程序
参数说明:返回值:return 0;if (argc!= 2) {return 1;int err;if (err) {return 1;= NULL) {return 0;CC = gccclean:
2023-07-04 10:59:37
283
原创 libbpf 开发指南:根据给定的名称查找 BPF 程序类型和期望的附加类型
例如,BPF_PROG_TYPE_SOCKET_FILTER 类型的 eBPF 程序可用于过滤网络套接字上收到的数据包,BPF_PROG_TYPE_KPROBE 类型的 eBPF 程序可用于在内核函数的入口和出口处附加探针,以收集函数调用的信息。BPF_PROG_TYPE_SOCKET_FILTER, // 用于套接字过滤的 eBPF 程序。BPF_PROG_TYPE_SCHED_CLS, // 用于流量控制分类器的 eBPF 程序。BPF_PROG_TYPE_UNSPEC, // 未指定类型。
2023-07-04 10:59:29
394
原创 libbpf 开发指南:在给定的 BPF 对象中查找具有指定名称的 BPF 程序
在上述示例中,get_object_name 程序加载 BPF 对象(prog.o),然后使用 bpf_object__name 函数获取其名称。// 使用名称查找 BPF 程序。// 加载 BPF 程序。// 关闭 BPF 对象。
2023-07-04 10:55:42
328
原创 FastDDS 源码剖析:src/dds 源码结构分析与异常类
src/cpp/dds/Exception.cpp 和 include/dds/core/Exception.hpp 文件包含了 FastDDS 中异常处理相关的实现。接下来,我们看一下 src/cpp/dds/Exception.cpp 文件。这个文件包含了异常类的实现,主要是构造函数和析构函数。FastDDS中的src/cpp/dds目录包含了dds (Data Distribution Service)标准的实现。我们首先看一下 include/dds/core/Exception.hpp 文件。
2023-07-04 09:27:11
909
原创 FastDDS源码剖析:源码结构分析
examples:包含演示如何在各种场景中使用Fast-DDS的示例代码。third:包含Fast-DDS使用的第三方依赖项和库。src: 包含Fast-DDS库的源代码文件。test:包含Fast-DDS库的单元测试、集成测试和性能测试。include: 包含Fast-DDS的头文件。pcp -fastdds: Fast-DDS公共API的实现。cmake:包含从源代码构建Fast-DDS的cmake构建脚本和配置文件。docs:包含Fast-DDS的文档文件。log: Fast-DDS的日志基础设施。
2023-07-03 11:15:10
1407
原创 FastDDS源码剖析:前置知识梳理(DDS、RTPS、NACK)
DDS 是一种实时数据分发服务协议,由 OMG(Object Management Group)制定。它为分布式系统提供了一种基于发布/订阅(pub/sub)模型的实时、可靠、高性能的数据通信机制。DDS 已经成为自动驾驶、航空航天、工业自动化等许多实时和安全关键领域的通信标准。全称是Real-Time Publish-Subscribe 协议。
2023-07-03 11:07:33
2231
原创 FastDDS 源码剖析:FastDDS 概述
FastDDS 是一个高性能、可扩展的开源实时传输层协议(RTPS)实现,由 eProsima 公司开发。它遵循 OMG(对象管理组织)的 Data Distribution Service(DDS)标准,这是一种面向消息的中间件,支持实时、高效、可靠、可扩展的数据通信。FastDDS 是一种发布/订阅(pub/sub)通信模型的中间件,主要目标是为分布式系统提供高效、可靠的实时数据交换。发布者(publisher)负责生成数据,而订阅者(subscriber)负责在需要时接收数据。
2023-07-03 11:06:25
1958
空空如也
C++ STL学习中遇到的一个问题
2018-02-18
C++使用虚函数表跳过访问权限的做法中存留的疑惑
2018-02-03
C++中关于fstream的二进制读取问题
2018-02-03
关于c++bind的一个语法错误问题
2018-02-01
关于C++ 函数参数为类对象时遇到的bug
2018-01-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人