- 博客(16)
- 资源 (24)
- 收藏
- 关注
转载 backtrace和stack unwind
用户态进程和线程的调试是软件开发过程中经常涉及的活动,通常的调试方法无非是加log,加打印和上调试器,例如gdb。通常,对于C语言编写的软件,用gdb或者log就可以调试了。但是对于C++的OOP的代码而言,有时候gdb和log也不一定足够。例如最近遇到的一个实例,一个C++的多线程软件,软件启动过程中会创建和运行若干个线程来完成相应的操作,结果发现有3个线程未启动,原因未知!上了gdb也未能排查线程的构造函数或者启动函数是如何运行的。鉴于加log的方式比较繁杂,于是乎想起来可以借鉴Linux内核中
2024-11-20 19:50:16
112
转载 cyclonedds使用介绍
DDS(Data Distribution Service for Real-Time Systems)是一种用于分布式系统的中间件协议和API标准,由对象管理组织(Object Management Group, OMG)定义。DDS的主要目标是支持高效、可靠和实时的数据分发,特别适用于对低延迟和高吞吐量有严格要求的应用场景,如工业控制、军事系统、航空电子系统、智能交通系统以及物联网(IoT)应用。
2024-10-25 17:50:46
1273
转载 Linux线程管理:深入探索多线程编程的原理与实践
在Linux操作系统中,线程是轻量级的执行单元,多线程编程允许程序在同一进程内执行多个并发任务,提高程序性能和资源利用率。本文将深入探讨Linux线程管理的相关知识,包括线程的创建、终止与调度,以及线程间通信的实现,旨在帮助读者深入理解多线程编程的原理与实践。
2024-08-29 07:40:22
77
转载 EB corbos Hypervisor: 推动 ECU 架构演进
曾经需要在孤立的 ECU 中才能开发的系统功能如今能够共享一个通用平台,这给以往基本上独立的开发周期和开发环境带来了新的依赖关系。考虑到合并到一个平台上的软件的混合关键性以及越来越多地使用开源软件,诸如功能安全和信息安全这样的系统属性将呈现出新的维度。虽然分区可以在整合车辆 E/E 架构的软件架构中的不同层级实施,但在裸机上运行的微内核 hypervisor 是分区完成的最有效论据。同时,预配置的执行环境可确保开发合作伙伴使用的执行环境能够满足整合车辆 E/E 架构的整体质量、功能安全和信息安全需求。
2024-08-23 07:46:06
107
转载 EE架构大跃进:特斯拉、小鹏引领舱驾融合,从域控融合走向单SoC
智能汽车发展到今天,整车电气架构已经从分布式架构逐渐迈向中央集成式架构,传统的小控制器被集成到按功能划分的大域控里,下一个阶段将是跨域的融合,通过不同功能域的集成实现中央计算平台的最终目标。而智驾和座舱作为智能汽车中最重要的两个功能域,下一阶段的进化方向也将是跨融合,实现舱驾一体。
2024-08-20 19:09:37
166
转载 Linux /proc目录详解
proc目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号,里面包含对应进程相关的多个信息文件。total 0上面列出的是/proc目录中一些进程相关的目录,每个目录中是当程本身相关信息的文件。下面是作者系统(RHEL5.3)上运行的一个PID为2674的进程saslauthd的相关文件,其中有些文件是每个进程都会具有的,后文会对这些常见文件做出说明。total 01.1、cmdline — 启动当前进程的完整命令,但僵尸进程目录中的此文件不包含任何信息;
2024-08-19 15:59:01
333
转载 以太网MAC的pause流控
Pause帧是一种报文类型。在IEEE802.3协议中规定中,pause帧是一种控制帧,用于控制数据流停止发送,在MAC 发送侧产生,在MAC接收侧解析并执行。当此端设备输入数据量过大,无法及时处理时会在此端发送侧MAC产生pause帧,发给对端,要求对端在一定时间内停止发送数据。Pause报文由IEEE802.3协议规定,与标准以太帧格式相似:DA表示目的地址,地址数据固定为0x180c2000001SA表示源地址 地址由发送方确定TYPE为报文类型字段,固定为0X8808。
2024-08-16 13:39:07
429
转载 Unix Domain Socket的性能测试与优化
实验中,我们使用了一个简单的客户端-服务器模型,其中服务器使用Unix Domain Socket监听客户端的连接请求,客户端向服务器发送请求并等待响应。Unix Domain Socket是一种进程间通信机制,它在Unix和类Unix系统上提供了一种高效、可靠和安全的通信方式。相比于传统的TCP/IP网络通信,Unix Domain Socket具有更高的性能和更低的延迟。然而,在实际应用中,我们仍然需要对Unix Domain Socket进行优化,以提高其性能。
2024-08-14 19:08:46
252
转载 一个使用unix domain socket进行IPC的小例子
现实世界中两个人进行信息交流,这个过程称为一个通讯(communication)。通讯的双方称为端点(endpoint)。根据通讯环境的不同,端点可以选择不同的工具进行通讯,如果距离比较近可以直接谈话、手语(特种部队在禁言环境执行任务),如果距离远可以选择写信、打电话。在上述情况中,人们使用一些工具(例如口、手、信件、手机)实现了通讯,这些工具称为socket。
2024-08-13 09:11:50
87
转载 操作系统原理与源码实例讲解:QNX操作系统原理
QNX是一种基于微内核设计的实时操作系统,由Canadian National Research Council(加拿大国家研究院)于1982年开发,后于1990年由Lusio Inc.(现QNX Software Systems)收购。QNX操作系统在自动化、通信、航空和军事领域广泛应用,具有高性能、高可靠性和高安全性等特点。本文将从背景、核心概念、算法原理、代码实例、未来发展趋势等方面进行全面讲解,为读者提供深入的QNX操作系统原理知识。
2024-08-12 08:32:24
321
转载 TCAN4550发送延时补偿TDC和二次采样点SSP配置说明
而因为传输延迟无法避免,所以在CAN FD通讯中引入了发送延时补偿Transmitter Delay Compensation (TDC)和二次采样点 Secondary Sample Point (SSP)的机制,将发送的数据与二次采样点时刻接收到的数据进行比较,从而保证发送与接受的位可以更好地匹配。传统CAN最大传输速率1Mbps,CAN-FD采用两种位速率,BRS到ACK中间(数据传输段)为可变速率,速率最高为8Mbps,其余部分(仲裁段和数据控制段)为原CAN总线用的速率,最高1Mbps。
2024-07-09 13:42:29
772
转载 CAN FD 总线错误帧排查指南
为了CANFD总线网络正常通信,首先网络上各个节点一定要首先进行单节点的物理层测试(包括总线电压、终端电阻、信号跳变沿、地偏移、通信电压范围等测试)、数据链路层测试(位时间、采样点、帧格式等测试)以及应用层测试(报文周期、报文类型、BusOff恢复策略等),然后在整车集成测试时,在功能调试之前对整车网络的通讯进行测试,保证所有节点在线并正常收发报文,在此过程中会遇到各种引起无法正常通信的问题,需要从装配、供电、线束、硬件电路、软件配置等各角度逐步分析排查,希望上述总线问题的排查记录能够对其他同行有所帮助。
2024-07-09 13:25:37
2832
1
转载 VSOMEIP — SOME/IP 开源实现
为了向外部网络提供服务,配置中必须包含提供服务实例的端口,如果没有提供这样的端口配置,服务在设备外部是不可见的。作为客户端,要想告诉 vsomeip 自己想使用这个服务,客户端就需要注册一个回调函数以便在服务可用时获得一个回调,在本例中,回调函数就是 on_availability。,再执行 make。在下面的配置示例中,服务器和客户端程序分别运行在两台 ubuntu 16.04 的虚拟机上,服务端所在虚拟机地址为 192.168.24.132 的设备上,客户端地址为 192.168.24.129。
2024-07-03 18:58:58
1076
3
原创 QNX操作系统简介
QNX是一种商用的分布式、嵌入式、可规模扩展、遵从POSⅨ规范的类Unix实时操作系统。QNX是微内核架构,其核心仅提供4种服务,分别为:进程调度、进程间通信、底层网络通信和中断处理。驱动程序、协议栈、文件系统、应用程序等都在微内核之外内存受保护的安全的用户空间内运行,组件之间能避免相互影响,在遇到故障时也能重启。
2024-07-02 18:57:34
1467
AI视觉工具Stable Diffusion轻松掌握使用入门
2024-08-10
基于OpenMv的跌倒检测算法设计与实现
2024-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人