- 博客(17)
- 收藏
- 关注
原创 C程序内存分配详细解析
代码段:只读,存放程序指令数据段:存放初始化的全局/静态变量BSS段:存放未初始化的全局/静态变量,初始化为0堆:动态分配,手动管理,大小灵活但较慢栈:自动分配,速度快但大小有限内存映射区:用于共享库、mmap等关键建议小数据、短生命周期 → 使用栈大数据、动态大小、长生命周期 → 使用堆全局配置数据 → 使用数据段/BSS段始终检查malloc返回值及时释放内存避免泄漏使用工具(valgrind)检测内存问题。
2025-12-13 11:42:50
723
原创 SoC硬件初始化寄存器操作最佳实践
在大多数情况下,回读-修改-写回是更安全可靠的选择,特别是在复杂的SoC初始化阶段。只有在性能要求极高且能确保安全性的特定场景下,才考虑直接写位域。
2025-11-20 14:26:40
208
原创 PCIe眼图产生原理与软件绘图方法详解
本文系统阐述了PCIe眼图的生成原理与实现方法,重点介绍了三种眼图生成技术:1)基于示波器的硬件测量方法,通过波形捕获、时钟恢复和叠加形成眼图;2)基于软件仿真的预测方法,利用IBIS-AMI模型进行信道仿真;3)创新的固件采集方法,通过扫描电压/相位点构建数据矩阵,经差分、平滑、归一化等图像处理后生成眼图。文章详细剖析了第三种方法的实现流程,包括数据采集、处理算法、轮廓提取和图像渲染等关键步骤,并对比了各方法的优缺点。该方法为嵌入式系统提供了一种低成本、可集成的眼图生成方案,适用于BIST和现场诊断应用。
2025-10-17 17:43:17
745
原创 T32 测试sram ecc纠错机制
静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。测试需要先attach cpu,break之后运行如下脚本,读者可以参考以下脚本,编写到cmm脚本中执行。以下介绍一种通过T32对片内sram地址段进行写读测试,对比一致性来判断ecc校验是否有效。
2024-11-18 16:46:32
318
原创 TRNG GM_T 0005-2021检测工具
本文介绍一个用来检测随机数的工具,符合国标GM_T 0005-2021的测试要求。测试的环境需要安装java,可以自行查看csdn上安装教程。工具的使用在国密随机数检测那个页面上有详细介绍。同样都是有两种测试方法,需要切分随机数的大小。我刚好之前开发了类似的脚本,读者可以参考。
2024-06-27 16:24:45
851
原创 基于表格管理的SOC自动化测试脚本(二)
部分测试:主入口修改debugMode = True,module_list中添加需要测试的模块,多个模块用逗号分隔。将autoTest通过pycharm加载。configs.py:工具配置文件。全量测试:右键执行main.py。testcase:测试模板路径。main.py:工具函数入口。以下是config.py实现。log:存放用例日志路径。utils:工具类路径。
2024-03-12 17:11:52
357
1
原创 基于表格管理的SOC自动化测试脚本(一)
部分测试:主入口修改debugMode = True,module_list中添加需要测试的模块,多个模块用逗号分隔。将autoTest通过pycharm加载。configs.py:工具配置文件。全量测试:右键执行main.py。testcase:测试模板路径。main.py:工具函数入口。log:存放用例日志路径。utils:工具类路径。
2024-03-12 16:55:57
480
1
原创 基于表格管理的SOC自动化测试
表头包含:case name、Pre command、Test command、Post command、Timeout、Test return、loop、Test or not、Result、log path、Build config。一个ARM Soc项目时,Soc包含有cpu、ddr、pcie、mctp、fifo、sm2/3、trng、dma、pwm、gpio、spi等多个模块,我们想在一次执行测试多个模块时就需要自动化脚本去串行多个模块的测试。
2024-03-12 16:46:33
354
1
原创 二进制文件拆分为多个小文件
最近在进行TRNG真随机数的测试,需要获取指定大小的随机数文件。测试是通过串口收集随机数,得到一份日志文件。先日志文件转成一个二进制文件,然后将二进制拆分成多个指定大小的文件。
2024-03-12 11:14:53
429
1
原创 研发内网安装setuptools
有时候我们在内网安装python第三方库的时候会遇到ImportError: No module named setuptools。这时候需要我们安装setuptools。这里介绍下安装setuptools的办法:1,本地下载ez_setup.py和setuptools。wget https://bootstrap.pypa.io/ez_setup.py wget https://pypi.io/packages/source/s/setuptools/setuptools-33.1.1.zip
2022-03-05 11:28:17
659
原创 python列表嵌套合并成一个列表
python列表嵌套合并成一个列表场景描述代码处理举个例子场景描述当我们在数据处理,使用列表推导式结合正则匹配时,会产生一个列表中嵌套多个列表的情况。这样遍历列表元素的时候会比较麻烦。因此将所有元素放到一个列表中。代码处理def extend_list(arg): new_list = [] for i in arg: if not isinstance(i,list): new_list.append(i) else:
2022-03-01 20:03:06
2777
2
原创 python 日志模块的使用
在日常开发中,日志的输出有助于了解测试任务的执行状态。python提供了日志模块logging。废话不多说,直接上代码。MyLogger.py#! /usr/bin/env python3# -*- coding:UTF-8 -*-import loggingimport osimport time# from colorama import Fore, Styleclass TestingLogger(object): def __init__(self, home,
2022-02-23 17:30:26
2573
1
原创 T32自定义菜单栏
在日常debug中,开发了一些小工具,通常是cmm脚本或者exe文件,想随时在菜单栏中打开。T32提供了菜单栏重新编程方法MENU.ReProgram,在这个方法下不仅可以添加自己开发的工具还可以添加小按钮。这里介绍下菜单栏添加工具的方法:启动脚本中添加addMyMenu.cmmaddMyMenu.cmmLOCAL &api_port&api_port = RCL.TCP.PORT()MENU.ReProgram(&+ADD MENU.
2022-02-21 15:38:06
605
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅