自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小羊苏C的博客

学习笔记

  • 博客(89)
  • 收藏
  • 关注

原创 LinuxPTP在汽车时钟同步网络中的实践

这里列举一些在汽车以太网中使用LinuxPTP的注意点。

2023-12-25 20:00:00 975

原创 Reactor 和 Proactor模式,IO复用与epoll、同步IO,异步IO与协程

Reactor 和 Proactor模式,IO复用与epoll、同步IO,异步IO与协程

2023-12-25 19:00:00 1386

原创 使用Gitlab构建简单流水线CI/CD

如何使用Gitlab实现CI/CD

2023-10-18 19:30:00 2971

原创 如何让 Source Insight 识别 AUTOSAR 宏定义 FUNC

如何更好得读协议栈代码?

2023-10-13 19:00:00 1186

原创 论 SoC上的Linux如何拉动外部I/O

记录如何在SOC/Linux中控制IO。

2023-08-07 22:00:00 421

原创 Linux时间体系与LinuxPTP

linux 时钟,以及linuxptp

2023-07-28 20:30:00 1288

原创 vscode 配置编译调试环境

这里记载一下配置vscode调试和编译的tips。

2023-04-04 19:26:01 1181 1

原创 uprobe 实战

简单的使用uprobe 操作过程记录。

2023-02-16 18:17:40 819 1

原创 State Management SWS 总结

对SM-SWS的一些总结。

2023-02-09 19:41:38 495

原创 Perf使用笔记

softevent有default period 采样的时候是采集到一定的数量报一次(不然报太多了 你看stack有一个给你看就够了)可以通过perf record -vv看具体的。例如: perf record -e Lrdxaxhe-load-misses -c 10000 -ag -- sleep 5。perf probe --add 'tcp_sendmsg size' 加probe同时记录size。-> 使用perf可能会提示安装包含symbols的debug包,多以'--dbgsym'结尾。

2023-02-08 19:30:47 823

原创 《Requirements of State Management》文摘

如:SM要提供标准化接口,SM要能控制APP的状态,SM要能控制APP或Functional Group建立通讯channel等。这意味着,平台软件供应商很难提供货架商品。具体到需求,反而没有扫描具体的需求提出。可以用来控制用户进程在不同的状态下启停。按照需要启停 平台和User应用程序。

2023-02-07 12:44:56 367

原创 R22-11 《Specification of Time Synchronization》文摘

不同类型的TBR等效化设计 归于Synchronized Time Base Manager (TS代替了硬件真实的时钟,由包含TS的StbM提供不同类型的TBR给需要同步时间的APP使用。【Rate Deviation】时间漂移率 可能每个应用对时间飘了的容忍不一样。其他具体使用的接口 状态 和实现机制先不讨论了。--从机根据主机发送的时间戳和接收到的时间戳算本地用的全局时基。【Time Base Status】状态。

2023-02-03 15:15:13 408

原创 USE 方法

100%一般是瓶颈,大于70%可能有问题。2 有的系统资源如disk,占用不可被中断或抢占,也可能排长队。并不是,要注意到利用率表示的是平均情况,可能在某时间内出现超高负载,出现饱和排队。思想: 从提问开始寻找答案, 而不是传统的从指标结果向前寻找。E不是0就值得关注,特别是性能不好,E又持续增长的时候。所有可能被占用,或者争抢的东西。无论软件的还是硬件的。基于硬件功能块画出各块之间的连接图,在总线上标注带宽。所有S都是问题,指标有队长或者排队时间。socket core 等。易于发现数据流方面的瓶颈。

2023-02-01 19:02:44 370

原创 Deterministic Execution in 《Guidelines for using Adaptive Platform interfaces》

APIGetRandom()to provide random numbers ([SWS_EM_01308]). If used from within the worker pool, the random numbers are assigned to specific container elements to allow deterministic redundant execution. 如果你要随机数,也可以给你一个大家都一样的随机数,来得到相同的冗余结果。目标:功能安全&软件复用。

2023-02-01 18:42:12 393

原创 chrt与nice

在top里面 RT进程都显示为优先级负数。chrt给的优先级数值越大,优先级越高。-n 后面接一个数值,范围在-20~19。19最谦让 -20最占CPU。

2023-01-09 15:34:56 355

原创 尝试使用LTTng+TraceCompass分析一下进程周期偏移

我先是在板子里通过LTTng Stream的方式将log保存在了上位机里。然后在上位机中打开TraceCompass分析log。

2022-12-19 19:48:28 1172

转载 宋宝华: 关于Linux进程优先级数字混乱的彻底澄清

普通的讲nice的人相对来说比较简单,我们更关注它的nice值,-20~19之间,nice越低,优先级越高,权重越大,在CFS的红黑树左边的机会大。每次从第0bit开始往后面搜索第一个有进程ready的bit,然后调度这个优先级上面的进程执行,所以在内核里面,Linux进程的调度优先级数字会在好几个地方出现:内核,用户,top命令。对于RT的进程而言,TOP的视角里面的。这说明一点,只有最高优先级的RT进程,才在top里面显示为rt。所以,你会发现,从用户的视角来看,数值变大,优先级变高。

2022-12-19 16:23:30 399

转载 透过Tracepoint理解内核 - 调度器框架和性能

因为学习工作需要,转载一下便于学习:原文地址:透过Tracepoint理解内核 - 调度器框架和性能 - 知乎 (zhihu.com)静态tracepoint预埋在内核的关键位置, 通过这些预埋的tracepoint, 可以比较容易梳理出相关模块的框架及主要流程. 相比于直接钻到scheduler的实现细节中去, 我们先通过tracepoint及其相关工具去理解实现背后的逻辑, 细节总是不停变化, 而分析方法往往相对固定, 也更容易沉淀下来.

2022-12-19 13:20:23 718

原创 Autosar R22-11发布

先睹为快,看看都更新了些什么。虽然之前的文档都没有看完。

2022-12-09 13:36:00 506

原创 LTTng在精简环境中部署的成功实践

无法追踪内核问题解决failed to load kmod library resourcesunable to list kernel events: kernel tracer not available。更改内核后,对应的内核模块大概率(基本上就是)要重新编译,特别是对于加Trace这种操作。不重新编译的话,遭遇到启动过程中脚本加载模块指向非法空地址之类的错误,启动失败。

2022-11-28 09:21:23 262

原创 Crosstool-NG制作GNU工具链

如果是纯纯的应用交叉编译可能还好,如果是和target系统内核之类的相关的工具编译,那可能会太麻烦了。需要引用交叉编译工具链,实现环境和编译上位机的隔离。如果就是针对本机进行编译还好,如果是进行交叉编译,可能还需要带各种各样的参数,提前设好各种路径的环境变量。需要注意的是,configure和Make file都是各个库和工具 的作者自己写的,有一定的规范习惯但是并没有标准,所以每个都不一样!(这条路我最终也放弃了,因为板子里的环境实在是太乱,哪怕我有了C库 头文件和GCC,但是还是会缺少各种其他的库)。

2022-11-24 15:12:14 619

原创 阅读芯片手册及硬件原理图的方法

【代码】阅读芯片手册及硬件原理图的方法。

2022-11-24 15:10:30 1725

原创 Linux 驱动的一些笔记

SDIO 在SD标准的基础上,定义存储卡以外的外设接口,可用于如wifi 蓝牙 GPS等模块。输入数据项,对CAM中所有数据项比较,输出匹配标志和数据地址。用于数据检索和快速匹配。PCIE是点对点串行传输,每个设备都有自己的专用链接,不用向整个总线请求带宽。eMMC,是NAND FLASH和闪存控制芯片及标志接口封装在一起。SD(Secure Digital) Flash卡 与MMC兼容。SDHC(SD High Capacity)大容量卡 32G。电编程熔丝,一次性编程,对芯片和功能进行配置。

2022-11-24 15:08:13 398

转载 How do I build and deploy LTTng to an embedded Linux system?

【代码】How do I build and deploy LTTng to an embedded Linux system?

2022-10-27 19:34:56 258

原创 可持续性踩坑的交叉编译 gcc ./configure 环境变量 及其他

现在遇到一个奇葩问题,交叉编译的时候,先编译完的库在自己的/.lib这种隐藏文件夹下。没有install到我的目录,后面自己编译别的库依赖自己。pkg-config设置地址PKG_CONFIG_LIBDIR到产出的/lib/pkgconfig的文件夹下面 屏蔽上位机的文件。防止Makefile里面搞事情,搜到上位机的库引用进来。下面找/usr/lib和/usr/include。不会用到上位机根目录下的库和头文件了。我觉得可能是和gcc 的–sysroot一样。host 后面跟的是交叉编译器的前缀。

2022-10-26 19:55:33 1318 1

原创 LTTng中使用USDT

我记得之前找到个什么指令,可以查看很多当前板子里有的好像是probe的类型。但是当时我发现板子里只有kernel的没有userspace的然后就没继续了。现在苦苦寻找LTTng使用USDT的描述。在找过stackoverflow和github之后,发现描述在。现在我也就再次不深究了。搜索USDT即可找到。

2022-10-19 16:36:50 181

翻译 【部分文档翻译总结 】EM中的Deterministic Execution

• 为了处理高错误率,ASIL C/D HAD 应用程序需要特定的措施,特别是软件锁步,其中执行是通过两个不同的路径冗余完成的,并且结果被比较以检测错误。对于每个执行周期,软件锁步框架与通信管理合作同步输入数据,确保冗余执行进程的随机数和激活时间戳相同,同步执行的触发,并比较输出以检测故障(在其中一个冗余进程中,由于辐射导致的瞬态处理器内核或内存错误。在内部周期中运行的两个冗余进程通过通信管理(CM)的常规接口在每个周期中获取相同的输入数据,并且由于完全确定性执行而产生(在没有错误的情况下)相同的结果。

2022-10-11 11:50:37 332 1

翻译 【翻译】CLASSIC PLATFORM

AUTOSAR 经典平台架构在最高抽象级别上区分了在微控制器上运行的三个软件层:应用程序、运行时环境 (RTE) 和基础软件 (BSW)。

2022-10-10 12:34:48 189

翻译 【LTTng】lttng-gen-tp — Generate LTTng-UST tracepoint provider code

LTTNG_UST_TRACEPOINT_EVENT() 定义的编写方式与在 LTTng-UST 模板提供程序头文件中编写它们的方式相同。支持 C 注释(/* */ 和 //),以及以 # 开头的行。

2022-09-14 15:26:40 156

原创 【LTTng】核心概念精读

代码运行到观测点的时候,产生事件、事件匹配规则。如果事件满足事件规则,则LTTng emit this event.

2022-09-09 16:54:13 779

原创 LTTng Live

注意,需要在建立session的时候加上“--live”,否则在reader(babeltrace)这边还是无法获取数据,会报错“not a live session”。这里的localhost,我觉得不是绝对的,如果你的Babeltrace和relay-deamon运行不在同一个环境下,这一步关注的应该是relay-deamon宿主机的IP,也就是上面写的“上位机IP”,也就是CTF数据要发给谁。实际使用下来看,live是“直播”,就是在运行Trace的同时,通过数据解析工具,按照一定时间间隔处理数据。

2022-09-08 18:59:17 173

原创 【LTTng】LTTng通过网络发送Trace数据

将Trace数据通过TCP发送走而不是保存在目标板上。

2022-09-07 16:43:13 693

原创 源码部署LTTng和需要添加的环境变量

README中提到,使用./scrtpt/build-in.sh来在内核menuconfig中添加LTTng的配置选项。建议的是kernel module随着内核编译安装,然后先装那5个依赖库,然后再ust, 最后tools。在部署的过程中,发现交叉编译可能会在CMAKE cache之类的地方添加绝对地址,这样可以在SDK编译和部署文件系统的时候一起编译和部署LTTng的内核模块。这是因为默认的编译库放在了/usr/local/lib下面。在编译LTTng module的时候。需要添加两个环境变量。

2022-09-07 12:01:00 212

原创 【kotlin】后台进程 消息机制 刷新 前台控件

但是直接在 imageView 里面写逻辑,编译无法通过。android studio报错说是界面控件的操作时间超时。实际上是这样,你不能在主进程中部署需要执行时间很长的逻辑,这样会导致前台各种控件卡顿。我在做一个功能,就是通过展示图片的形式,播放PPT,来在主界面的图片显示控件上,播放视频。在控件中比如按钮中,唤起后台进程,然后通过消息机制传递给主进程的消息处理handler。然后再通过消息处理函数来更改控件的属性。开启后台进程并使用msg。通过消息处理更新控件。

2022-09-06 13:13:13 821

转载 【LTTng】LTTNG 内核模块手册

涉及到需要支持的内核裁剪选项之类的信息。转载方便阅读。

2022-09-02 14:43:41 272

原创 使用date修改嵌入式子板时间

【代码】使用date修改嵌入式子板时间。

2022-09-02 12:21:21 117

原创 kotlin应对空指针问题

一般来讲,引用传来的指针之前,需要进行空指针检查。很多语言并没有空指针保护,比如C++ java。但是系统复杂,开发人员多了之后,难免会出现引用空指针问题。如果网络检查,引用空指针,系统就会跑飞。但是,Kotlin默认所有参数和变量不可为空,可以杜绝空指针风险。在编译时,就会进行空指针检查。从而修正空指针问题。如果遇到必须使用空指针或者空变量,可以使用类型。可为空类型是在类型类后面加上。例如:。在对声明为的类型进行引用时,IDE会提示进行判空。kotlin还提供了一些判空语法糖。:左侧对象不为空就正在执行

2022-07-06 00:30:00 610

原创 Kotlin面向对象

学习《第一行代码——Android(第3版)》做些笔记示例:实例化用例:类继承允许类被继承,需要加上关键字。抽象类可以不加。可继承类例子:派生类例子:构造上面一节 后面的括号,表示使用的是基类的无参数构造函数。Kotlin涉及到主构造函数、次构造函数的概念。一般只会用到主构造函数,默认不带参数。也可以显式指定参数。主构造函数没有函数体。直接定义在类名后面。 这个的作用就是给参数传值吗?用于在构造时实现一些逻辑操作。根据括号里填写的参数,来’重载’选用构造函数。使用示例:下面一段我不太理解,引

2022-07-05 22:45:00 529

原创 Kotlin基本语法

参考《第一行代码——Android(第3版)》做些笔记1、变量声明常量 只能初始化赋值一次变量 可以多次赋值无须声明类型,可类型推导。使用示例:从这里看出来,kotlin很现代,应该是有很多新语言特性。如果真的颠覆了Java,Java老白兔岌岌可危。注意 不加分号。不看缩进(这就是我讨厌python 的原因)。2、带类型声明类型都封装到类里了,不再是关键字了?那是不是有method可用?常用类型和C/C++一样,不过第一个字母变成大写,变成了类。关键字来声明:可以为空,表示无参数。表示返回值类型,没

2022-07-05 22:00:00 468

原创 addr2line 回复“问号”问题的解决和一些发现

我在尝试使用LTTng的prebuilt user space tracing helper来自动插入trace point来监控函数的进出。这一套东西的原理是利用gcc 的-finstrument-functions参数,在函数的进出口插入hook,动态链接到liblttng-ust-cyg-profile.so来提供被hook的代码用来发射event。在记录的trace log 的field里。是以地址的形式记录进出口位置。例如:[17:58:51.390638416] (+0.00000054

2022-07-01 19:40:26 3620 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除