- 博客(10)
- 收藏
- 关注
原创 iceoryx--iceoryx整体分析
iceoryx是基于共享内存实现通信的中间件,主要目的在于降低通信延迟、增加通信速度、减低目标设备CPU,据官方介绍,iceoryx的通信延迟在1us以内,并且不会随着payload的增加而增加。publisher的发送结构体中保存所有订阅者的数据接收队列地址,当publisher发送对应的数据时,publisher会先将存有数据的chunk存放到subscriber的。中,然后触发响应的条件变量,通知对应的listener接收消息,实现数据传输;
2024-04-30 12:21:39
787
原创 vsomeip支持静态服务发现吗?
即服务的每个单独配置,其中包括了服务所使用的ip地址(或者目标服务所在的ECU的IP地址),TCP端口号,UDP端口,广播地址以及端口、协议、事件组等,配置项。之后,事件组会判断是否通过组播方式(在someip协议中,当一个eventgroup订阅的数量超过一定的阈值,则可以通过组播的方式发送event消息,以降低网络的开销,提高通信效率)。因此从发送端的代码可以看出,vsomeip发送片间消息的一个前提是存在片间的订阅,而通过配置文件,发送端其实是不知道接收端的ip地址和端口号的。这个与实验结果一致。
2024-04-28 12:23:19
303
原创 vsomeip片内源码分析
vsomeip 是 GENIVI 实现的开源 SOME/IP 库,由 C++ 编写,目前主要实现了 SOME/IP 的通信和服务发现功能,并在此基础上增加了少许的安全机制。如图所示,vsomeip 不仅涵盖了设备之间的 SOME/IP 通信(外部通信),还涵盖了内部进程间通信。两个设备通过communication endpoints(通信端点)进行通信,endpoints 确定传输使用的协议(TCP 或 UDP)及端口号或其他参数。
2024-04-25 12:30:52
1901
原创 Jemalloc 源码分析
jemalloc 是由 Jason Evans 在 FreeBSD 项目中引入的新一代内存分配器。它是一个通用的 malloc 实现,侧重于减少内存碎片和提升高并发场景下内存的分配效率,其目标是能够替代 malloc。jemalloc 在 2005 年首次作为 FreeBSD libc 分配器使用,2010年,jemalloc 的功能延伸到如堆分析和监控/调优等。现代的 jemalloc 版本依然集成在 FreeBSD 中。
2024-04-24 12:22:12
1120
原创 DDS SHM通信方式如何确定通信通道已建立?lsof命令告诉你
lsof 是 List Open File 的缩写, 它主要用来获取被进程打开文件的信息,我们都知道,在Linux中,一切皆文件,lsof命令可以查看所有已经打开了的文件,比如: 普通文件,目录,特殊的块文件,管道,socket套接字,设备,Unix域套接字等等,同时,它还可以结合 grep 以及 ps 命令进行更多的高级搜索,这个就看个人的使用习惯以及问题排查思路了。
2024-04-22 12:30:34
550
1
原创 交叉编译后,应用程序无法在QNX系统上执行的问题的排查记录
这个问题给我的一个提示是:交叉编译中,在编译环境中如果通过,而在运行环境中无法运行,说明:编译环境与运行环境存在不一致的情况,这个就需要验证环境的一致性或者。
2024-04-19 12:47:38
1663
1
原创 Linux下调试工具gdb命令行命令介绍
调试的基本就是几个常用的命令,先执行以下几个步骤,然后根据实际需要再决定查看具体的内容。捕捉断点的作用是,监控程序中某一事件的发生时,例如异常、动态库被加载等,程序停止执行。观察断点作用于某一变量或表达式,当该变量(表达式)的值发生改变时,程序暂停。gdb既直接拉起程序,也可以调试正在运行的程序,以及coredump文件。然后attach上去,通过set命令,修改debug变量,然后继续调试。gdb默认跟踪父进程,如果想要在fork时跟踪子进程,需要。当调试函数入口时,可以手动。strip 执行程序。
2024-04-18 12:30:55
935
1
原创 文件IO导致dds write接口block的分析
以上是一个很简单的数据发送-接收-处理的片内数据通信的处理模型,在项目一开始的这个模型我们也测试过(用可能当时测试的比较简单,系统环境不复杂),在fastdds的write接口调用,并不会出现block时间过长的现象,当然也有可能没有注意这个现象,因为测试时候,我们关注更多的是发送周期是否稳定,即发送前一帧与后一帧之间的时间间隔是否稳定。也就说,发送线程出现了阻塞,而运行前,为发送线程配置了RR调度的实时优先级,所以理论上没有更高优先级抢占的话,正常情况下,不会也不应该出现3s多的,真是离大谱了。
2024-04-17 19:14:09
1480
1
原创 cmake学习笔记
1.cmake 常用的一些宏 PROJECT_BINARY_DIR CMAKE_BINARY_DIR 工程二进制文件输出目录 PROJECT_SOURCE_DIR CMAKE_SOURCE_DIR 工程顶层目录 EXECUTABLE_OUTPUT_PATH 可执行文件输出目录 LIBRARY_OUTPUT_PATH 库文件输出目录...
2019-09-17 16:54:02
122
原创 动态规划两个例子总结
最近在刷LeetCode上的算法题,遇到几个感觉比较好的动态规划题目,再次总结一下:1:第一题是关于字符串匹配问题。感觉题目本身就是正则表达式一部分算法的实现。题目内容如下:给定一个字符串(s) 和一个字符模式(p)。实现支持'.'和'*'的正则表达式匹配。'.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。匹配应该覆盖整个字符串(s) ,而不是部分字符...
2019-04-13 22:57:09
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人