自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 【00】PyVSC简介

而在嵌入式软件领域,似乎没有专门的语言用于此,更常规的做法是使用高级语言(比如C/C++)人为构造约束,这往往并不容易且存在一系列问题。PyVSC正是将上述功能嵌入Python语言中,使用其提供的特定语法或者API实现SystemVerilog风格的约束激励生成。PyVSC以两种形式提供此功能:面向对象的模型API和构建在模型API之上的python嵌入式领域特定语言。这允许以编程方式构建覆盖和随机化特性,用用户友好的结构定义,或者使用两者的混合定义。三、Quickstart。一、什么是PyVSC。

2025-12-08 10:41:17 815

原创 PYVSC使用指南

可继承性可用于特定cornor case的生成。

2025-12-08 10:41:05 887

原创 Linux内核学习(五)——驱动与设备

在Linux字符设备驱动开发中,register_chrdev用于注册驱动功能,而class_create和device_create则负责在用户空间创建设备节点,形成完整的驱动框架。register_chrdev仅在内核注册设备操作函数,而后续两个函数通过sysfs和udev自动生成/dev下的设备文件,实现了驱动与设备的解耦。驱动是内核功能实现,设备是用户访问接口,三者配合既保留了传统字符设备驱动的灵活性,又符合现代Linux设备模型标准。这种分层设计支持动态设备创建、热插拔和统一管理,相比手动mkno

2025-07-13 18:18:47 989

原创 Linux内核学习(零)——内核的配置(kconfig)和构建/编译(Makefile)

ps:内容正在快马加编中~

2025-07-10 01:27:53 276

原创 Linux内核学习(四)——内核模块的签名与验证

摘要:Linux内核模块签名与验证机制通过加密签名(X.509证书)确保模块安全性,需配置内核选项(如CONULE_SIG)并生成密钥对。签名流程包括密钥生成、格式转换及模块签名,验证时内核自动检查签名匹配性。常见问题可通过modinfo调试,高级配置支持多证书和自定义哈希算法。该机制有效提升内核模块的完整性与可信性。

2025-07-10 00:59:40 753

原创 Linux内核学习(三)——内核污染

Linux内核污染(Kernel Taint)是指内核检测到不可恢复错误或异常时标记自身的状态,可能导致系统行为不可预测。常见原因包括硬件故障、加载未签名模块、强制卸载模块或API滥用等。污染后果包括影响系统调试、功能受限及稳定性下降。污染状态可通过/proc/sys/kernel/tainted查看,非零值表示污染。临时清除方法为写入0到该文件,长期解决方案需修复硬件或软件问题。调试时可查看系统日志中的污染记录(journalctl或kern.log),这些信息对定位问题至关重要。正确处理内核污染有助于维

2025-07-10 00:37:37 719

原创 Linux内核学习(二)—内核调试

Linux系统日志级别分为8个等级,从紧急到调试(0-7),分别对应不同严重程度的事件。内核空间使用printk函数打印日志,用户空间通过syslog函数记录。可通过/proc/sys/kernel/printk查看和设置日志级别,系统日志通常存储在/var/log目录下。当内核异常时会出现"Oops"错误提示,包含寄存器状态和调用栈信息,可用于定位内核崩溃原因。日志系统是Linux异常跟踪的重要工具,合理设置日志级别有助于系统维护和故障排查。

2025-07-09 23:59:57 586

原创 Linux内核学习(一)—内核模块的框架、编译和运行

本文介绍了宏内核和微内核的区别,宏内核将核心功能集成在内核空间,性能高但稳定性差;微内核仅保留核心功能,模块化程度高但性能可能受影响。还讲解了内核模块的两种加载方式:静态加载直接编译进内核,动态加载允许运行时加载/卸载模块。详细说明了内核模块的代码框架,包括初始化/清理函数、模块元信息等,并提供了Makefile编写、编译、加载/卸载模块的具体步骤。最后涉及模块调试技术、常见问题解决和安全性考虑,为Linux内核模块开发提供了基础指导。

2025-07-07 00:00:16 808

原创 stdout 缓冲机制详解

摘要:stdout缓冲机制是标准I/O库的性能优化手段,分为无缓冲、行缓冲和全缓冲三种类型。stdout的默认缓冲行为取决于输出目标:终端设备采用行缓冲(遇换行符刷新),非终端设备采用全缓冲(缓冲区满或程序结束刷新)。开发者可通过fflush()强制刷新或setvbuf()修改缓冲模式。理解缓冲机制对调试、性能优化和跨平台开发至关重要,特别是在需要实时输出的场景中。缓冲不当可能导致输出丢失或性能问题。

2025-06-28 22:05:37 399

原创 C/C++标准库中的标准输出流-stdout

stdout是C/C++标准库中的标准输出流,默认指向终端屏幕,但可重定向到文件。它通常采用行缓冲或全缓冲机制,需注意缓冲区未刷新可能导致数据丢失。与无缓冲的stderr不同,stdout适合输出常规内容。通过fprintf或printf操作,并支持命令行重定向(如> output.txt)。底层关联文件描述符1,可用dup2重定向。调试时应手动fflush,多线程操作需注意同步。作为基础I/O组件,stdout广泛用于程序输出和日志系统。

2025-06-28 21:50:08 740

原创 ACM模式输入输出操作

第一行输入两个正整数n,k第二行输入一个长度为n的、仅由大写字母组成的字符串。输入字符串保存到变量s中,输出整个s,并逐个输出每一个字符。

2024-05-04 18:06:28 286

原创 TI 毫米波雷达system_printf()打印输出

再调试TI毫米波雷达时,不可避免的需要打印一些信息用于debug,可以使用XDCt调试器的驱动函数。函数时,就能在CCS的窗口中看到打印的信息了。在TI mm-wave SDK中,使用。

2024-03-06 16:51:04 382

原创 非参数自举法

【代码】非参数自举法。

2024-03-06 16:34:26 433

原创 阵列信号处理-DOA估计之Python实现MUSIC算法

【代码】阵列信号处理-DOA估计之Python实现MUSIC算法。

2023-09-08 15:49:55 1014

转载 【转载】线程与进程,你真得理解了吗

进程是一个具有一定独立功能的程序在一个数据集合上依次动态执行的。

2023-08-15 11:43:34 167

原创 ubuntu20.04安装ROS及常见问题

基于ubuntu20.04的ROS安装。给出成功安装的参考资料,以及作者安装过程中遇到的问题及解决办法。

2022-06-17 16:05:57 7068

原创 Matlab将.dat数据转到.csv文件中

Matlab将.dat数据转到.csv文件

2022-05-14 00:11:00 1085

原创 电子工作室培训(一)单片机环境搭建,keil5 新建工程及流水灯

电子工作室培训(一)一、Keil For C51开发环境的搭建1,下载Keil安装包压缩包,链接如下:解压后,找到安装二、常用C语法1、条件分支语句if-elsecase2、循环语句forwhiledo-while3、结构体4、联合5、枚举6、别名,宏7、数据类型intcharunsignedsignedfloatdouble三、数字逻辑及进制转换(1)数字逻辑1、与2、或3、非4、同或,异或(2)进制转换二进制、十进制、八进制、十六进制1、十进制

2020-10-30 19:49:34 3641 1

空空如也

空空如也

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

TA关注的人

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