- 博客(6)
- 收藏
- 关注
原创 设置所有PCIe设备的completion timeout脚本
关闭所有设备的completion timeout,如果它支持关闭的话。脚本缺陷:对于不支持配置的设备,直接跳过就是了。
2025-01-10 20:03:36
305
原创 TLP header解析工具使用
用于PCIe AER报错提供的TLP header解析。TLP header本身有标准的定义,手工解析是没问题,但是有工具的话就很方便了。github上有人已经开源了一个:https://github.com/gotoco/tlp-tool,使用rust代码与rtlp库实现。
2025-01-10 19:58:41
367
原创 stream5.10 在ARM64平台上 gcc10默认打开lse指令支持编译无法通过
使用-fopenmp指令的含义是:使用 omp 功能,适应多处理器环境,开启后程序默认线程数为CPU线程数,可以通过环境变量 OMP_NUM_THREADS 指定线程数;而我编译的平台是支持ARMv8.1指令集的,不清楚为什么也会报错,对于编译器的知识积累较少,暂时无法理解编译报错的具体原因。合理推测,多核多线程环境下,就会使用到锁,而报错的打印中,编译器尝试使用lse这个原子指令。lse是在ARMv8.1的时候开始支持的。我使用的是欧拉22系列版本系统,应该也不存在库的问题。gcc版本肯定是支持的。
2024-01-09 15:35:43
1033
原创 python修改二进制文件
比如一些固件里的参数,在没有参数配置工具的时候,知道这个参数的位置,可以直接修改二进制的方法来调整。对python这种跨平台的解释型语言来说,可以很优雅地使用一套脚本,解决大部分环境下的问题。方便地调整二进制文件某个位置的值。
2023-12-06 18:06:52
973
1
原创 grep搜索多行字符串
例如查找edk2下面的protocol的实现代码。找到了protocol,但是不清楚具体的实现在哪个文件中。可以通过搜索protocol的参数,来找到实现。2. 将给定文件内的字符串,一个或多个连续的空格或制表符用"\s+“代替,换行符用”\n代替",特殊字符添加转义字符""用这种方式的话,会打印整个包含所需字符串的文件内容出来。使用grep命令,搜索一个目录(包含子目录)下面的多行字符串。3. 在生成的转义字符前后添加grep命令与搜索的文件路径。搜索关键字"@file"可以找到包含对应字符串的文件。
2023-12-04 17:11:55
1022
原创 飞腾CPU访问16MB以上容量FLASH的方法
本文适用与飞腾服务器平台CPU。在飞腾FT-2000+/64平台上验证可用。1. 默认情况下,无法访问大于16MB空间的原因。飞腾CPU的SPI控制器支持多个片选,读取数据的时候,CPU会按照设置的每个片选的地址空间,来自动切换片选。所以,需要先设置好每个片选的地址范围,防止访问的时候自动切换到其他片选。查看软件编程手册,发现有两个相关的寄存器,默认情况下,每个片选容量设置为16MB,自然无法访问大于16MB的内容。16MB起始的地址为0x1000000,超过3字节,而一般SPI接口、fla
2021-11-02 21:05:27
1740
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人