- 博客(73)
- 收藏
- 关注
原创 STM32 SDIO WiFi模块推荐:高速传输、超低功耗,赋能智能硬件!
如果有可以沟通邮箱xlx@xlxwlan.com。threadx/freertos代码可以参考。
2025-01-19 17:31:32
779
原创 Ubuntu 改变字体大小
gsettings set org.gnome.desktop.interface text-scaling-factor 3.0
2024-10-25 21:08:23
250
原创 Azure RTOS/Eclipse ThreadX 系统高性能wifi蓝牙二合一模块介绍
如果有可以沟通邮箱xlx@xlxwlan.com。threadx/freertos代码可以参考。
2024-09-11 11:08:31
698
原创 国产操作系统RT-Thread 高性能 WiFi蓝牙二合一 模块 解决方案介绍
新联鑫威低功耗高性价比sdio wifi/蓝牙combo的模块单频2.4g的CYWL6208,双频2.4g/5g CYWL6312可以应用到一些低延时 高性能 低功耗 联网需求的交流直流充电桩,扭力扳手,agv机器人,目前支持主流的stm32F4/GD32F4 瑞萨 psoc的主控,目前有多家公司已经用到了他们的产品,通过fcc ce等认证,驱动有英飞凌的开源的WHD的驱动可供移植到各种mcu平台,链接地址:CYWL6208 模块参数介绍:CYWL6312 模块参数介绍:
2024-01-30 19:25:01
1033
原创 Linux系统蓝牙WiFi抓包命令
蓝牙抓包hcidump -XVt > sdcard/hcidumplog.txtwifi抓包tcpdump -w -i 接口 xxx.pcap
2022-03-25 12:36:21
834
原创 Linux core 文件分析 如何定位错误
1、vim core_dump_test.c#include <stdio.h>void main(){int stack_of[100000000];int b=1;int* a;*a=b;}2、gcc -g core_dump_test.c -o core_dump_test3、./core_dump_testSegmentation fault (core dumped)4、生成core文件分析4.1、ulimit -c unlimited...
2022-02-24 11:05:03
2855
原创 ftrace使用
static VOS_STATUS find_ie_data_after_fils_session_ie(tpAniSirGlobal mac_ctx, uint8_t *buf, uint32_t buf_len, uint8_t **ie, uint32_t *ie_len){ uint32_t left = buf_l...
2021-12-05 14:08:51
188
原创 Linux 打 patch 和生成 patch
patch打patch: patch -p0 < test.patch -p0 选项要从当前目录查找目的文件 patch -p1 < test.patch -p1 选项要从当前目录查找目的文件,不包含patch中的最上级目录 例如两个版本以a,b开头,而a,b并不是真正有效地代码路径,则这时候需要使用"-p1"参数。 a/src/... b/src/......
2021-12-05 14:06:37
315
原创 usb驱动程序实现
1、代码如下/* * drivers\hid\usbhid\usbmouse.c */#include <linux/kernel.h>#include <linux/slab.h>#include <linux/module.h>#include <linux/init.h>#include <linux/usb/input.h>#include <linux/hid.h>/*
2021-08-15 17:54:46
914
原创 内存泄漏检测工具valgrind神器
1概述1.1 介绍Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构如下图所示:图11.2 工具Valgrind的最新版是3.11.0,它一般包含下列工具:1.Memcheck最常用.
2021-05-07 10:14:51
534
转载 阻抗匹配及Smith圆图简介笔记
在了解阻抗匹配及Smith圆图时,先来了解几个相关参数。 1、反射系数 信号沿传输线向前传播时,每时每刻都会感受到一个瞬态阻抗,这个阻抗可能是传输线本身的,也可能是中途或末端其他元件的。对于信号来说,它不会区分到底是什么,信号所感受到的只有阻抗。如果信号感受到的阻抗是恒定的,那么他就会正常向前传播,只要感受到的阻抗发生变化,不论是什么引起的(可能是中途遇到的电阻,电容,电感,过孔,PCB转角,接插件),信号都会发生反射。 归一化负载阻抗: 所以: 当中的Γ代表其线路
2021-05-07 10:12:56
8878
原创 SDIO电路设计注意事项
SDIO电路设计注意事项SDIO走线速率较高,尽量控制寄生电容CMD、D0~D3走线长度以CLK走线长度为基准±3mil,需要时绕蛇形线CLK走线尽量单独包地,从芯片管脚到SD接口的总长度越短越好,控制在2500mil以内,最好在2000mil以内SDIO走线要保证不跨平面射频走线最为理想的是微带线50Ohm管控,而不是共面波导50Ohm管控;同时射频走线上方能不铺绿油就不要铺绿油电源走线能粗就粗一点,没坏处模组PCB表面工艺一定要沉金1oz,有钱可以尝试2oz,但一定不能喷锡和裸铜板材要
2020-12-06 21:52:12
10950
原创 Linux下如何限制网速
sudo tc qdisc add dev wlx009569eadcc8 root handle 1: htbsudo tc class add dev wlx009569eadcc8 parent 1: classid 1:10 htb rate 10mbitsudo tc filter add dev wlx009569eadcc8 protocol ip parent 1:0 prio 10 u32 match ip dport 5201 0xfff flowid 1:10perf3 -c 1
2020-08-01 20:17:35
816
原创 openssl-1.1.1交叉编译
1、下载地址https://www.openssl.org/source/2、解压openssl-1.1.1d.tar.gz3、修改Makefile 注释掉以下#CNF_CFLAGS=-pthread -m64#CNF_CXXFLAGS=-std=c++11 -pthread -m64#CC=$(CROSS_COMPILE)gcc #注释掉#CXX=$(CRO...
2020-03-01 19:23:54
6208
原创 多线程的两种调试方法 Helgrind 与ThreadSanitizer
Helgrind可以检测下面三类错误: 1.POSIX pthreads API的错误使用 2.由加锁和解锁顺序引起的潜在的死锁 3.数据竞态--在没有锁或者同步机制下访问内存调试命令valgrind --tool=helgrind ./a.outThreadSanitizer用来检测竞争状态命令gcc a.c -fsanitize=thread -g -pthr...
2020-02-03 21:29:00
779
原创 多线程死锁例程的代码调试 如何避免进入死锁
一、调试代码如下 来源 阅码场https://www.yomocode.com/void *child1(void *arg){ while(1){ pthread_mutex_lock(&mutex_1); sleep(3); pthread_mutex_lock(&...
2020-02-03 21:16:32
899
原创 Linux信号量
对posix 信号量的操作函数Posix有名信号量:使用Posix IPC名字标识,可用于线程或进程间同步Posix基于内存的信号量:存放在共享内存区中,可用于进程或线程间的同步sem_init()、sem_destroy函数:#include <semaphore.h>// 初始化一个基于内存的信号量(sem指向的)int sem_init(sem_t *sem...
2020-02-03 12:53:47
322
原创 互斥锁和自旋锁
(1) Mutex(互斥量):pthread_mutex_***(2) Spin lock(自旋锁):pthread_spin_***两种锁的加锁原理互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。两种锁的区别...
2020-02-03 12:26:10
467
原创 linux下的Netfilter&iptables:注册连接跟踪函数流程分析1
初始化函数如下/* Connection tracking may drop packets, but never alters them, so make it the first hook. */static struct nf_hook_ops ipv4_conntrack_ops[] __read_mostly = { { .hook = ...
2020-01-30 20:10:00
288
原创 linux下的Netfilter&iptables:filtile表中如何向链中挂载处理函数
挂载钩子处理函数都是在初始化中做的 filtile表则是在iptable_filter_init函数中将iptable_filter_hook函数注册到NF_BR_LOCAL_IN NF_BR_FORWARD NF_BR_LOCAL_OUT 链上。函数调用关系如下 内核Linux 4.14版本static int __init iptable_filter_init(void)...
2020-01-29 20:20:53
393
原创 Segmentation fault (core dumped)
结构体未初始化出现段错误Segmentation fault (core dumped)uart_buf = (uartBuf_typeDef *)malloc(sizeof(uartBuf_typeDef));//memset(uart_buf, 0, sizeof(uartBuf_typeDef));init_queue(&uart_buf->queue);...
2019-12-10 10:14:57
311
原创 Linux内核中断入门---一个简单中断的分析
本文通过一个简单的中断程序来描述一般中断程序的基本框架。中断程序一般会包含在某个设备的驱动程序中,因此,接下来的程序本质上还是一个内核模块。说到内核模块,你应该知道首先去看什么了吧,就是内核模块加载函数。01 static int __init myirq_init()02 {03 printk("Module is working..\n");04 if(request_irq(ir...
2019-06-11 10:02:47
570
原创 Ctags详细用法
下载地址 http://ctags.sourceforge.net/tarzxvf ctags-5.8.tar.gzcdctags-5.8./configureMakeMake install //需要root权限用户目录下vim ~/.vimrc输入set tags=tags;set autochdir使用方法 进入源码目录,若源码目录是多层
2017-11-18 18:06:38
314
原创 taglist用法
解压:得到doc和plugin两个文件夹Vim版本是7.3sudo cp doc/taglist.txt /usr/share/vim/vim73/doc/sudo cp plugin/taglist.vim /usr/share/vim/vim73/plugin/· 配置vimrc(可选): · vim ~/.vimrc · let Tlis
2017-11-18 18:05:10
682
原创 关于swp文件
关于swp文件:使用vi,经常可以看到swp这个文件,那这个文件是怎么产生的呢,当你打开一个文件,vi就会生成这么一个.(filename)swp文件以备不测,如果你正常退出,那么这个.(filename)swp文件将会自动删除。因此.(filename)swp文件就是你没有正常退出vi或者vim编辑器时留下来的!比如:强行关闭vi或vim时,电源突然断掉,或者你使用了Ctrl-zz。出现
2017-11-18 18:02:26
1390
原创 智能小车stm32(寻迹测速)
1,小车寻迹原理:循迹模块我用的是红外传感器。黑线的检测原理是红外发射管发射光线到路面,红外光遇到白底则被反射,接收管接收到反射光,经施密特触发器整形后输出低电平;当红外光遇到黑线时则被吸收,接收管没有接收到反射光,经施密特触发器整形后输出高电平。程序void SearchRun(void){ //Èý·¶¼¼ì²âµ½ if(SEAR
2017-11-18 17:56:15
15358
24
原创 NFS 文件共享
一、NFS 简介(1) NFS 网络文件系统,主要功能是通过网络让不同的主机系统之间可以共享文件或目录,类似于 Windows 中的网络驱动器映射(2) NFS 客户端可以通过挂载的方式将 NFS 服务器端共享的数据目录挂载到 NFS 客户端本地系统中(3) NFS 网络文件系统一般被用来存储共享视频、图片、附件等静态资源文件,NFS 架构图(4) NFS 客户端是如何知道 NFS
2017-11-17 14:44:26
965
转载 四轴pid详解
转载自----http://blog.youkuaiyun.com/nemol1990/article/details/45131603正文开始:这篇文章分为三个部分:PID原理普及常用四轴的两种PID算法讲解(单环PID、串级PID)如何做到垂直起飞、四轴飞行时为何会飘、如何做到脱控?PID原理普及1、 对自动控制系统的基本要求: 稳、准、快: 稳定性(P和I降低系统稳定性,D...
2017-11-15 15:57:52
7359
原创 中断的详细学习
中断简介中断是微控制器的一个常见特性,中断由硬件产生,当中断产生以后CPU就会中断当前的流程去处理中断程序,Cotex-M内核的MCU提供了一个中断管理的嵌套向量中断控制器。 Cotex-M的NVIC最多可以支持240个IRQ(中断请求),1个不可屏蔽中断(NMI),1个Systick(滴答定时器)定时器中断和多个系统异常。中断优先级分组 当多个中断来临的时候处理器应该相应哪一
2017-10-06 08:51:17
1003
原创 unsigned short A = 10; printf("~A = %u\n", ~A);
unsigned short A = 10;printf("~A = %u\n", ~A); char c=128; printf("c=%d\n",c); 第一题,~A=0xfffffff5,int值 为-11,但输出的是uint。所以输出4294967285第二题,c=0x10,输出的是int,最高位为1,是负数,所以它的值就是0x00的补码就是128,所以输出-12
2017-10-06 00:48:12
2513
原创 volatile的详细用法
volatile 易变、易失的一个定义为volatile的变量是说这变量可能会被意想不到地改变。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。嵌入式编程中经常用到 volatile这个关键字,在网上查了下他的用法可以归结为以下两点: 一:告诉compiler不能做任何优化 比如要往某一地址送两指令: i
2017-10-05 20:20:18
332
原创 系统32位指针变量为4字节系统16位指针变量2个字节
定义 int **a[3][4], 则变量占有的内存空间为:16位系统24.32位系统中是48.PS:公式:3*4*sizeof(int **)
2017-10-05 18:48:58
1691
原创 linux上Git同步到GitHub网站的详细用法
第一步: 安装Git,使用命令 “sudo apt-get install git”第二步: 创建GitHub帐号第三步: 生成ssh key,使用命令 “ssh-keygen -t rsa -C "your_email@youremail.com"”,your_email是你的email第四步: 回到github,进入Account Settings,左边选择SSH Keys,Add
2017-10-04 16:41:22
595
原创 GIT使用错误总结
自从上次学了git之后,很少用。今天在使用 本地仓库使用如下命令初始化:$ git init之后使用如下命令添加远程库:$ git remote add origin git@github.com:hahah/ftpmanage.git然后使用$ git push -u origin master出现如下错误:error: src r
2017-10-04 15:50:04
2189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人