- 博客(15)
- 收藏
- 关注
原创 【[IAR]调试模式下进入不了终端】
现象: freertos能够正常进行创建任务,使用freertos自己的延时函数发现会一直卡在空闲任务,systick_handler每个周期不能正常进入。最后发现iar工程是设置的simulator debug模式。换成硬件调试接口即可。背景:”很久没用IAR了,以前没用过iar移植过freertos,一来就给我整了一个大坑。
2024-11-19 15:06:24
210
原创 CAN总线入门
CAN总线(Controller Area Network Bus)控制器局域网总线两根通信线(CAN_H、CAN_L),线路少,无需共地差分信号通信,抗干扰能力强两种模式:高速和低速异步,无需时钟线,通信速率由设备各自约定半双工,可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序11位/29位报文ID,用于区分消息功能,同时决定优先级可实现广播式和请求式两种传输方式应答、CRC校验、位填充、位同步、错误处理等特性。
2024-06-30 23:29:42
736
原创 免费的内网穿透,支持自定义二级域名
loophole是我在youtube上发现的一个免费的反向代理,可让您将本地主机服务公开到互联网。最大的优点就是免费!这里不做介绍,站内资源多多,我用的apache服务器,可以查看https://blog.youkuaiyun.com/IT_Holmes/article/details/115830078。在现在包之前,大家得看清楚自己的cpu是什么架构的,我的树莓派5是arm64,我就下载对于的tar包。输出命令进行内网映射,需要指定端口,地址,自定义域名,之后会获得一个二级域名,直接访问即可。
2024-06-20 23:42:12
1087
原创 USB抓包
一个计算中存在多个usb设备,消息非常多,我们就需要对消息进行筛选,根据usb协议特征,主机会为从机分配一个7字节的地址,因此可以将设备地址作为筛选。下载链接:https://www.uwe-sieber.de/english.html。step2:搜索关键字Connection Information。筛选设备地址:usb.device_address == 10。再安装的时候一定要勾选USBPcap,默认选项是不勾选的。step3:查看device address。使用第三工具UsbTreeView。
2024-05-31 11:43:40
469
原创 [C/C++]音频数据重采样
采样率为单位时间内采样的次数,比如48K,即1秒钟进行48K次采样。常用的采样率8K,16K,44.1K,48K。一般重采样都是对原始数据的采样率降低,倍数之间的转变更加简单,比如48K转18K,相当于每3个采样点去其中一个采样点即可,但是得明白原始数据是怎样交织的。在很多情况化,比如需要裁剪通道,比如说有一个64通道的数据,但是我们只需要发送起始一个或者2和通道的数据,我们就需要对通道进行裁剪。32bit采样值的范围在–1~ +1(float)。常用的采样深度:8bit,16bit,32bit。
2024-05-27 22:54:17
858
1
原创 [C/C++]使用iperf3压测网口吞吐量是否达标
iperf是一个主动测量IP网络上最大可实现带宽的工具。它支持调优与定时、协议和缓冲区相关的各种参数。对于每个测试,它都会报告测量的吞吐量/比特率、损耗和其他参数。这个版本,有时被称为iperf3,是对NLANR/ ast开发的原始版本的重新设计。Iperf3是一个从头开始的新实现,其目标是更小、更简单的代码库,以及可以在其他程序中使用的功能的库版本。Iperf3还具有许多其他工具(如nutcp和netperf)中存在的特性,但这些特性在最初的iperf中是没有的。
2024-04-28 22:38:12
544
1
原创 [C/C++]常用数据校验方法:CRC校验
CRC校验计算速度快,检错能力强,一些芯片支持编码器等硬件电路实现。从检错的正确率与速度、成本等方面,都比奇偶校验等校验方式具有优势。因而,CRC 成为计算机信息通信领域最为普遍的校验方式。一个数据的校验结果要作为下一个数据校验过程中移位寄存器的初值,如此循环往复在数据帧的下一拍就能输出整个数据帧的校验值了。
2024-04-13 20:26:26
1122
原创 [Linux]corddump的使用(RK3588)
在应用程序中,程序崩溃造成的原因往往是出现野指针。往往再多进程多线程的应用程序中,出现程序崩溃,除了日志方式的查看,我们也使用coredump来进行问题定位,生产的core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等。
2024-03-23 23:02:47
533
原创 [C/C++]MD5校验的学习
1. 对输入的数据进行填充对信息进行数据填充,使信息的长度对512取模得448,设信息长度为X,即满足X mod 512=448(x/512d的余数等于448)。根据此公式得出需要填充的数据长度。填充方法是在信息后面填充第一位为1,其余为0。填充完后,信息的长度就为N*512+448(bit)。2. 填入输入信息的长度原信息长度用64位(二进制)表示。如果信息长度大于264,则只使用其低64位的值,即(信息长度对264取模),并且填充到前面一步得到的结果后面。
2024-03-20 22:43:47
916
1
原创 【问题分析】【linux】file format not recognized; treating as linker script
很突然,什么都没修改,再ubuntu中从仓库里拉下来编译代码发现file format not recognized;symlinks = flase ,代表不跟踪符号链接。symlinks = true ,代表保留符号链接。1.检查项目仓库里.git/config配置文件。通过file查看软链接,发送是ASCII格式。不是啥时候增加了想link的配置。
2024-03-08 11:57:38
2429
1
原创 [Python]使用logic逻辑分析仪抓取I2S数据转PCM文件
1.再logic界面选择硬件I2S接口,并配置对应通道。3.将导出的数据表转为PCM文件。
2024-03-06 21:17:01
1373
1
原创 [Linux]kernel调试的两种方法
打印调试信息,类似于printf,最后在终端通过dmsg打印出来消息流。打印调用栈输出到屏幕or串口里,需要包含头文件。
2024-03-06 21:08:56
415
原创 [C/C++]vs2019下使用MQTT,基于库paho.mqtt.c编译并新建工程(使用SSL加密)
MQTT OPENSSL vs vs2019
2023-07-31 21:24:42
2095
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人