自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(301)
  • 资源 (6)
  • 收藏
  • 关注

原创 Linux进程间通信:dbus的使用(3)—— 整理关于D-Bus的一些学习笔记和补充

1、移植dbus到开发板的步骤Linux:交叉编译dbus/glib/dbus-glib - iamlinrm.CSDN先移植dbus-daemon后台进程所依赖的xml解析器:tar xjf expat-2.3.0.tar.bz2cd expat-2.3.0./configure --prefix=$PWD/tmp --host=arm-linux-gnueabihfmakemake installcp -rfd tmp/* ~/net/nfs_root/fs/usr/rm -rf

2021-04-19 18:31:01 5109

原创 Linux shell:脚本编写快速入门

形式1:使用function关键字定义# cmd... }形式2:与C语言类似# cmd... }/bin/bashfunc(){func。

2021-02-06 16:47:11 1791 1

原创 Linux:命令行调试WiFi(iwlist/iwconfig/iw/wpa_supplicant/wpa_cli/dhcp/hostapd/hostapd_cli的使用方法)

文章目录1、编译步骤2、iwlist3、iwconfig4、iw5、wpa_supplicant5.1 wpa_supplicant —— 连接AP热点5.2 wpa_cli —— wpa_supplicant的客户端6、动态获取IP地址6.2 方式1:使用busybox自带的udhcpc工具(推荐)6.2 方式2:dhclient7、hostapd7.1 hostapd —— 创建AP热点7.2 hostapd_cli —— hostapd的客户端8、动态分配IP地址8.1 方式1:使用busybox自带

2020-07-21 20:54:28 7339

原创 Linux:MQTT通信协议之一 -- mqtt基本概念、apt-get命令搭建mosquitto服务器及简单测试

MQTT1、MQTT是什么2、MQTT通信模式3、MQTT发布服务质量4、MQTT遗嘱消息5、MQTT主题筛选6、Ubuntu安装mosquitto7、测试(默认配置)8、设置服务器端密码 / 端口9、测试(密码连接)10、参考文章11、附加内容(相关参数说明)1、MQTT是什么Message Queuing Telemetry Transport是一个基于TCP/IP的轻量级、灵活的即时通讯协议,多用于IOT物联网开发(这里假设你已经了解过MQTT是怎样的一个协议了,所以只是简单说明一下,想了解更多可

2020-06-04 17:11:47 1723 1

原创 Linux多线程编程:pthread线程创建、退出、回收、分离、取消

文章目录Linux线程1、简单了解一下线程2、线程创建:pthread_create3、线程传参注意事项4、线程退出:pthread_exit5、线程回收:pthread_join6、线程分离:pthread_detach7、线程取消:pthread_cancel8、线程其他函数9、线程注意事项Linux线程1、简单了解一下线程  线程也被称为轻量级进程,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,因为进程切换时需要更新cache和tlb,而线程就不用。由于多个线程访问的都是同一地址空间

2020-05-12 10:32:55 20846 1

原创 C语言:结构体大小及其成员分布的探究(结构体内存对齐问题)

文章目录1、基础成员大小2、为什么要内存对齐?3、联合体的大小4、32位环境下的结构体大小4.1 成员的起始地址偏移4.2 以最宽基础成员大小对齐4.3 同样地以最宽基础成员对齐:结构体包含结构体4.4 自定义内存对齐值#pragma pack(n)4.5 位域1、基础成员大小在不同机器上,编译器处理基础类型占用内存字节不尽相同,如表所示:更正: 评论区指出LP32和ILP32之间的区别。上面表格是常用的系统环境下的数据类型,但是不同的系统环境有不同的数据模型,见下表。(注:后续的测试都是建立在

2020-05-03 20:05:43 1809 2

转载 openssl编译出错解决办法

版权声明:本文为CSDN博主「WanAnZaiQingChen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/WanAnZaiQingChen/article/details/81507557。修改Makefile ,若有-m32或-m64 字段,直接删除即可。是mipsel-linux没有提供GNU C的ucontext库。config 配置时添加 no-async。然后 make install。

2024-01-03 12:29:36 324

转载 libevent库使用之二:深入理解使用

介绍libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libevent based,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。Libevent是基于事件的网络库。说的通俗点,例如我的客户端连接到服务端属于一个连接的事件,当这个事件触发的时候就会去处理。

2023-09-13 22:42:52 498

转载 libevent库使用之一:(快速入门)介绍与简单应用

Libevent是开源社区的一款高性能的I/O框架库,使用Libevent的著名案例有:高性能的分布式内存对象缓存软件memcached,Googlo浏览器Chromium的Linux版本。跨平台支持 Libevent支持Linux、Unix和Windows统一事件源 Libevent对I/O事件、信号和定时事件提供统一的处理。线程安全 Libevent使用libevent_pthread库来提供线程安全支持基于Reactor模式的实现。

2023-09-13 22:18:46 908

转载 C语言:dirent.h使用详解

LINUX下历遍目录的方法一般是这样的打开目录 -> 读取 -> 关闭目录相关函数是好了,三个函数都出来了,原型就是上面。opendir用于打开目录,是类似于流的那种方式,返回一个指向DIR结构体的指针,参数*dirname是一个字符数组或者字符串常量;readdir函数用于读取目录,只有一个参数,就是opendir返回的结构体指针,或者叫句柄更容易理解些吧。这个函数也返回一个结构体指针 dirent *;DIR结构体定义dirent的结构如下定义结构体中。

2023-08-29 22:17:35 944

转载 C语言:自己实现scandir函数

在C语言课程的后端,讲完指针和标准文件IO处理,我会做出一个难度较大练习,题目就是,。这个题目看起来简单,实现难度相当大,主要采用复杂指针的操作。我第一次拿出来测试,全班大约只一二名实现80%的功能,其余很多觉得无从下手。程序很容易就会出现段错误。基本上短时间内正确的做出来的人可以划归专业级的程度了。有兴趣的人可以先不看后面内容,自行实现一下。首先看一下man的scandir 接口定义从定义来看就不是一个简单的函数,形参里,出现一个三级指针,二个函数指针。

2023-08-29 22:11:31 138

转载 C语言:Linux内核中经典双向链表 list_head 常见使用方法解析

做内核驱动开发经常会使用linux内核最经典的双向链表list_head, 以及它的拓展接口(或者宏定义): list_add , list_add_tail, list_del , list_entry ,list_for_each , list_for_each_entry ......每次看到这些接口,感觉都很像,今天专门研究了一下内核,对它们做一些总结,希望为后续开发提供方便。首先找到list_head 结构体定义,kernel/inclue/linux/types.h 如下:struct。

2023-08-14 14:41:23 713

转载 Linux shell:查看线程运行状态的几种方法

在调试程序时需要查看各个线程的状态,方便定位问题。

2023-08-07 15:42:47 504

原创 Linux驱动:移植内核暂未支持的exFAT驱动

下面就以编译成ko驱动模块的方式为例(当然也可自行参考Linux内核源码fs目录下Kconfig和Makefile,仿照FAT文件系统进行修改实现menuconfig的可视化配置)。Linux内核由于版权问题默认不支持exFAT文件系统,不过开发者可以根据实际情况自行移植驱动进行添加。

2023-08-03 18:24:24 359

原创 Linux mkfs、fsck等文件系统相关工具移植:dosfstools(FAT32)、exfatprogs(exFAT)、e2fsprogs(ext2、ext3、ext4)

【代码】Linux mkfs、fsck等文件系统相关工具移植:dosfstools(FAT32)、exfatprogs(exFat)、e2fsprogs(ext2、ext3、ext4)

2023-08-03 15:01:04 1105

原创 for:Windows中类似Linux的find命令

【代码】for:Windows中类似Linux的find命令。

2023-07-31 19:27:43 154

转载 findstr:Windows中类似Linux的grep命令

使用Chrome发现访问google总是向香港那边跳转,估计配置文件中google网站映射的地址是www.google.com.hk,便想着改配置文件,但不知道配置文件在哪儿。找到了Chrome浏览器默认的目录C:\Users\zxy\AppData\Local\Google\Chrome,还是无处下手,Linux下的个grep命令用于查找字符串,windows也应该提供一些操作方法啊,于是搜了一下,有findstr命令。findstr的命令参数及其意义如下所示在文件夹内输入命令。

2023-07-31 17:53:03 521

原创 音视频知识:MPEG-4、H264、MP4、AAC之间的关系

MPEG-4标准目前分为27个部分,统称为ISO/IEC14496国际标准。2000年,MPEG-4标准出现后,AAC重新集成了其特性,加入了SBR技术和PS技术,为了区别于传统的MPEG-2 AAC又称为MPEG-4 AAC。结合上方MPEG-4简单介绍,【H.264】=【MPEG-4 Part 10】=【ISO/IEC 14496-10】=【MPEG-4 AVC】。MPEG-2标准第三部分-ISO/IEC 13818-3,Audio:音频,描述与MPEG-1音频标准反向兼容的音频编码方法。

2023-07-30 20:32:22 2690

转载 音视频知识:MPEG-4、MPEG-4 AVC、H.264之间的联系与区别

当你在网上下载视频时,经常会看到MPEG-4、h.264等等词汇,它们之间有什么关系吗?在视频编解码技术定义方面有两大标准机构。一个是国际电信联盟 (ITU) 致力于电信应用,已经开发了用于低比特率视频电话的 H.26x 标准,其中包括 H.261、H.262、H.263 与 H.264;另一个是国际标准化组织 (ISO) 主要针对消费类应用,已经针对运动图像压缩定义了 MPEG 标准。MPEG 标准包括 MPEG1、MPEG2与 MPEG4。

2023-07-30 19:05:52 1175

转载 关于手机使用中信号强弱 网速快慢 频段的相关常识

先给大家普及下国内三大运营商4G 5G频段的相关知识移动: FDD-LTE:B3、B8; TDD-LTE:B34、B38、B39、B40; 联通: FDD-LTE:B1、B3、B8; TDD-LTE:B40、B41; 电信: FDD-LTE:B1、B3、B5; TDD-LTE:B40、B41; 总结起来,其实一共就下面这么几个频段: FDD-LTE:B1、B3、B5、B8; TDD-LTE:B34、B38、B39、B40、B415G频段手机在相关页面或者官网就可以查询到支持的频段。类似 其实一般友友使用手

2023-06-28 20:05:33 3148

转载 Linux:服务器两块网卡路由优先级冲突 Metric值

为路由指定所需跃点数的整数值(范围是 1 ~ 9999),它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。执行 route -n 查看路由的情况,就能看到修改的Metric值发生了变化。重启网络服务,配置的临时路由信息会失效。的方式来让udhcpc调用时设定优先级。我这里配置的是eth0的优先级高。修改网卡配置文件,如果没有就加上。再分享一下添加路由的命令。另外,嵌入式可以通过修改。

2023-06-25 21:26:19 1587

转载 Linux进程:如何在进程间加锁(实现互斥)

【Linux】初识进程间通信:建议先读完这篇。进程之间如何加锁,今天我们需要实现一个售票系统,我们需要对同一个num变量++。以往我们写过类似的代码,只需要用这把锁就可以实现一个进程内多个线程互斥。但是我们这里改变需求,假设是你和你的同学需要抢一张票,你们在不同的主机的相同进程抢票,那么要怎么做呢?mmap实际上我个人偏向于mmap的这种方式,因为当进程crash的时候,mmap可以保存到文件,但他和shm面临着共享内存被锁上无法使用的问题。

2023-05-03 22:12:41 1618 1

转载 Linux shell:fsck命令使用方法

fsck(file system check)命令作用为检查文件系统并尝试修复错误。当文件系统发生错误四化,可用fsck指令尝试加以修复。注:千万不能在运行的系统上面直接执行fsck,特别是RHEL6.0以下ext3的文件系统 否则100%损坏根文件系统,使用fsck -y /dev/sdb1 修复磁盘时,必须先将sdb1分区umount掉。命令格式:fsck [-aANPrRsTV] [ -t ] [文件系统…]命令参数:-a 自动修复文件系统,不询问任何问题。

2023-03-12 21:57:45 485

转载 Linux网络编程:getaddrinfo return system error导致设备无法连接外网,DNS解析失败

一、现象:最近在设备上开发新功能,使用一份物联网设备端的SDK,出现了一个问题,设备从一个WiFi A切换到另一个WiFi B,无法连接外网,导致和服务器的通讯失败1、查看串口信息后发现异常时getaddrinfo返回system error;2、问题出现时,在设备上使用ping命令,能够ping通外网;3、每次从WiFi A切换到WiFi B都会出现相同的问题;4、将设备从WiFi A切换到WiFi C,能够正常连接外网;5、设备已经量产多年,以前未曾出现过这种问题;

2023-03-05 12:20:26 612

转载 Linux进程控制:fork与vfork的区别

fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别:1. fork ():子进程拷贝父进程的数据段,代码段vfork ( ):子进程与父进程共享数据段2. fork ()父子进程的执行次序不确定vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用exec或exit 之后父进程才可能被调度运行。3. vfork ()保证子进程先运行,在她调用exec 或exit 之后父进程才可能被调度运行。如果在。

2023-03-04 22:44:45 322

转载 Linux进程相关:为什么需要谨慎使用system函数

在君正Zeratul_T31_开发指南中明确规范,禁止在主程序中使用system 等系统调用接口函数,需要在另外的一个守护进程中去实现system函数的功能。

2023-03-04 21:03:12 1694

原创 gitee提交报错: 413 Request Entity Too Large

将上传方式HTTPS改为SSH。

2023-02-27 22:37:49 325

转载 Linux shell:dd命令的使用

dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:if=文件名:输入文件名,缺省为标准输入。即指定源文件。of=文件名:输出文件名,缺省为标准输出。即指定目的文件。ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。

2023-02-19 23:58:52 648

转载 ARM的发展历史

1978年12月5日,物理学家赫尔曼·豪泽(Hermann Hauser)和工程师 Chris Curry,在英国剑桥创办了CPU公司(CambridgeUnit),主要业务是为当地市场供应电子设备。1979年,CPU公司改名为Acorn计算机公司。据说,还有一名创始人叫 Andy Hopper。Andy Hopper是Acorn的研究主管,但为了顾及自己在剑桥大学的本职工作,他刻意保持低调,而将代表公开露面的机会留给了另外两位创始人。

2023-02-19 22:43:27 911

原创 Linux Makefile:如何增加一些调试打印信息

那么我们如果想在不依赖于“目标”的地方进行打印的话,就可以使用下面的语句来进行打印输出。

2023-02-19 14:46:23 1286

转载 windows下CMD常用命令

作为一个开发者,我们用的最多的就是windows,但是对于cmd,我不知道大家熟不熟,反正我是一直不怎么熟悉。平时操作linux比较多,反而忽视了cmd相关命令,这里大致总结一些常用的命令,作为记录。

2023-02-15 23:14:21 189

转载 嵌入式系统中常用的文件系统

嵌入式系统中常用文件系统包括cramfs、jffs2、NFS、initrd、ext4、squashfs、ubifs等。它们的特点如下:1、cramfs 和 jffs2 具有好的空间特性,很适合嵌入式产品应用。2、cramfs 与 squashfs 为只读文件系统,目前只有 SPI Nor FLASH 支持这两种文件系统。3、squashfs 压缩率最高。4、jffs2 为可读写文件系统。5、NFS 文件系统适用于开发初期的调试阶段。6、initrd 采用 cramfs 文件系统,为只读。

2023-02-15 23:02:00 1173

转载 编译U-Boot报错:Error:You must add new CONFIG options using Kconfig

在u-boot/scripts/config_whitelist.txt中增加新检测到的config. “CONFIG_ADC”。注意根据字母排序顺序加入正确的位置。

2023-02-11 23:06:44 618

转载 Linux进程僵死原因排查思路

正常情况下脚本执行时间几秒完成,如果超过很长时间执行完成,可能是进程等待某些资源引起阻塞(假死状态)。场景:xx.perl读取文件并发送邮件现象:执行脚本的进程僵死(卡住)排查:ps -ef |grep “perl xx.perl”跟踪:strace -p 16634 (跟踪进程执行时的系统调用和所接收的信号(即它跟踪到一个进程产生的系统调用,包括参数、返回值、执行消耗的时间),卡在read(3,位置查看进程文件描述符目录:查看3进行的是socket操作,也就是卡在通信。

2023-02-08 21:01:23 980

转载 串口流控(CTS/RTS)使用详解

硬流控的RTS 、CTS :RTS (Require ToSend,发送请求)为输出信号,用于指示本设备准备好可接收;CTS (Clear ToSend,发送清除)为输入信号,有效时停止发送。假定A、B两设备通信,A设备的RTS 连接B设备的CTS;A设备的CTS连接B设备的RTS。前一路信号控制B设备的发送,后一路信号控制A设备的发送。对B设备的发送(A设备接收)来说,如果A设备接收缓冲快满的时发出RTS信号(高电平)(意思通知B设备停止发送),B设备通过CTS 检测到该信号,停止发送;

2023-01-30 22:10:30 3078 1

转载 UART串口的H4协议和H5协议

链接于3线串口和5线串口,它们之间有什么差别呢?对于3线串口,它只有三条线:TxD、RxD、GND。5线串口比三线串口多了两条线:CTS、RTS,用来控制流量。使用三线串口和无线串口传输同一个数据时,它们使用的协议不一样。假设图中红色的部分就是要发送的数据,当使用三线串口时可能给它加上头部、尾部后再发送给硬件,当使用五线串口时可能将数据直接发给硬件。从这个地方可以产出,无论是三线串口还是五线串口,它们的底层硬件操作都是一样的。因此在硬件的这一层,又抽象出了一个结构体:uart_driver。

2023-01-30 21:49:25 810

转载 GPRS模块中CSQ信号值相关

我们一般用AT指令去查询模块的信号强度如:命令:AT+CSQ返回:+CSQ: **, ##其中:**应在 0 到 31 之间(99表示无信号),数值越大表明信号质量越好;##为误码率,值在 0 到 99 之间。否则应检查天线或 SIM 卡是否正确安装测试结果:AT+CSQ一般来说:CSQ范围在1-31之间,31信号最好。CSQ < 11 ,不容易附着网络。11 < CSQ < 18 在此区间网络不稳定会导致误码较多。CSQ > 18,能稳定通信。

2023-01-30 15:57:14 3124

转载 C语言:宏定义中#和##的使用

#被称为连接符(concatenator),用来将两个Token连接为一个Token,##符是把传递过来的参数当成字符串进行替代。这样每次divider(除数)为0的时候便会在标准错误流上输出一个提示信息。例二:Canopen协议中对象字典和相关变量的关联。

2022-11-27 17:07:24 1195

转载 Linux内核报错:SQUASHFS error: xz decompression failed, data probably corrupt

平台:Allwinner H3系统:OpenWrt linux出错特点: reboot 后概率出现,下次启动又正常。

2022-11-23 16:32:08 2469

转载 关于WiFi DFS和WiFi自适应的介绍

1.关于WIFI DFS介绍 DFS(Dynamic Frequency Selection)动态频率选择,这个概念只针对具有5G频段的产品,比如802.11a和802.11ax标准。DFS是为了使无线产品主动探测军方使用的频率,并主动选择另一个频率,以避开军方频率的一个功能。欧洲在军用雷达普遍使用5G频段,若民用5G产品和军方存在抢波段的行为,则会对军事雷达和通讯产生干扰,因此欧盟法规规定在欧洲出售的无线产品必须具备DFS功能。这个功能是属于强制性的,不符合标准的产品将不会获得欧盟的上市许可

2022-09-24 21:54:36 6228

bluez协议栈移植.zip

bluez协议栈移植.zip

2024-01-03

Linux WiFi调试工具(含多种编译方法)

Linux WiFi调试工具(含多种编译方法)

2024-01-03

mjpg-streamer-1.0.0_有注释.zip

mjpg-streamer开源项目里面包含很多Linux软件编程知识,包含so动态库的操作、线程的创建与同步、UDP网络编程、V4L2应用编程.... 压缩包内容包如下: mjpg-streamer-1.0.0.tar.gz mjpg-streamer-1.0.0_有注释.zip README.txt

2021-05-05

RK3399 安卓Q适配EC20 4G模块资料

压缩包内包含以下内容: logcat -b radio -v time.log(适配成功的log) Quectel_Android_RIL_Driver_User_Guide_V1.9.pdf Quectel_Android_RIL_Driver_V3.2.2_master_beta.tgz Quectel_WCDMA&LTE_Linux_USB_Driver_User_Guide_V1.8.pdf reference-ril Rockchip_Introduction_4G_Module_Configuration_CN&EN.pdf

2021-05-01

Linux WiFi调试工具的使用

wifi_debug_tools ├── dhcp-4.2.6.tar.gz ├── hostapd-2.9.tar.gz ├── iw-3.11.tar.gz ├── libnl-3.2.25.tar.gz ├── openssl-1.1.1g.tar.gz ├── README.txt ├── wireless_tools.29.tar.gz └── wpa_supplicant-2.7.tar.gz 使用方法见README。

2021-05-01

交叉编译dbus/glib/dbus-glib

. ├── dbus-1.12.20.tar.gz ├── dbus-glib-0.106.tar.gz ├── expat-2.3.0.tar.bz2 ├── glib-2.34.1.tar.xz ├── libffi-3.3.tar.gz ├── README └── zlib-1.2.11.tar.gz

2021-04-15

编译buildroot-2020.02.9.tar.bz2时自动下载所必需的源码

编译buildroot-2020.02.9.tar.bz2过程中自动联网下载到dl目录下的源码,使用这里的源码放到dl目录下可以大大减少编译时间。 book@book-VirtualBox:~/buildroot-2020.02.9$ tree dl/ dl/ ├── acl │   └── acl-2.2.53.tar.gz ├── attr │   └── attr-2.4.48.tar.gz ├── autoconf │   └── autoconf-2.69.tar.xz ├── automake │   └── automake-1.15.1.tar.xz ...

2021-01-30

Linux用户空间“免驱动”读写I2C设备

一般来说,用户空间操作硬件设备都需要驱动的支持,但是在Linux环境中可以从用户空间访问适配器上的所有设备,它是内核的一个通用驱动,所以我们不需要手动写对应的设备驱动也可以访问。 直接从用户空间访问的前提是内核里面配置了i2c-dev,如何判断呢?在命令行里面输入ls /dev/i2c-* 查看是否有对应的设备,如果没有就需要去配置内核kernel,位置如下: Device Drivers ---> -*- I2C support ---> I2C device interface

2020-05-01

空空如也

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

TA关注的人

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