- 博客(342)
- 资源 (6)
- 收藏
- 关注

原创 Linux进程间通信:dbus的使用(3)—— 整理关于D-Bus的一些学习笔记和补充
1、移植dbus到开发板的步骤Linux:交叉编译dbus/glib/dbus-glib - iamlinrm.优快云先移植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
5942
1

原创 Linux shell:脚本编写快速入门
形式1:使用function关键字定义# cmd... }形式2:与C语言类似# cmd... }/bin/bashfunc(){func。
2021-02-06 16:47:11
2422
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
9400

原创 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
1966
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
29888
2

原创 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
1961
2
转载 source insight4 行结束符 CRLF转化为LF
显示行结束符: options->preferences->syntax formatting->file types->visiable end of。Windows(CR LF)改成Unix(LF): options->preferences->files->default line endings。
2024-12-30 15:15:26
116
转载 Source Insight 4.0显示Tab键、空格以及Tab键转为4个空格
Source Insight 4.0中显示Tab键、空格、以及用4个空格替换Tab键,如下选择"Options"-->"Preferences"接着选择对应的文件类型,把Tab、空格、以及Tab强制转换为空格都勾选上。
2024-12-19 17:41:56
991
转载 source insight:快捷键设置多行注释与反注释
步骤一:Options--->Key Assignments,如下图步骤二:在Command:中输入Edit:comment,会过滤后出现Edit:Comment Lines和Edit:Un-Comment Lines两行。其中,第一个是注释多上的,第二个是取消多行注释的。步骤三:点击Assign New Key按钮,然后关闭弹出的对话框,由于我喜欢的Ctrl+/已被Lookup Referefce...占用,所以就同时按下Ctrl+Shift+/快捷键。
2024-12-19 17:40:50
531
转载 GNSS NMEA-0183协议解析
最近在做gps相关工作,需要解析gps模组输出的nmea数据,获得经纬度等信息,整理了一下nmea各个字段的含义,供大家参考。GNSS的全称是全球导航卫星系统(Global Navigation Satellite System),它是泛指所有的卫星导航系统,包括全球的、区域的和增强的,如美国的GPS、俄罗斯的Glonass、欧洲的Galileo、中国的北斗卫星导航系统,以及相关的增强系统,如美国的WAAS(广域增强系统)、欧洲的EGNOS(欧洲静地导航重叠系统)和日本的MSAS(多功能运输卫星增强系统)等
2024-11-04 22:00:28
422
转载 音视频知识:H.264中AnnexB和avcC的区别
当我们读取一个 H264 流的时候,一旦遇到 0 0 0 1 或者 0 0 1,我们就认为一个新的 NALU 开始了,因此,这些用来做分隔符的字节,一般也被称为 start code, 起始码。所谓防竞争字节(Emulation Prevention Bytes),就是在给 NALU 添加起始码之前,先对码流进行一次遍历,查找码流里面的存在的 0 0 0,0 0 1,0 0 2,0 0 3 的字节,然后对其进行如下修改。经过这样处理的码流,就不会再和起始码(0 0 1, 0 0 0 1)重复而发生冲突。
2024-10-20 20:48:10
132
转载 音视频知识:H264/H265的两种格式Annex B、AVCC(H264)/HVCC(H265)
H.264 (AVC) 和 H.265 (HEVC) 是两种常见的视频编码标准,它们都有不同的封装格式,即Annex B 和 AVCC(H264)/HVCC(H265) 封装格式。
2024-10-20 20:41:47
681
转载 Linux:设置sudo无需密码【Ubuntu、多种方法】
在日常使用 Ubuntu时,您可能经常需要以管理员身份运行命令,这意味着每次执行sudo命令时都需要输入密码。虽然这是一个安全措施,但在某些情况下,频繁输入密码可能会显得繁琐。本文将介绍如何设置sudo无需密码的多种方法,同时保持系统的安全性。
2024-08-25 22:03:27
3216
1
转载 git:解决git am冲突的方法
【正文】在踩过几次坑之后,大多数工程师都会学会使用patch的形式来保存各个模块/功能的代码改动,这样可以很方便地为相应模块添加或者去除相关功能的代码。但是伴随着主线代码的不断更新,我们在早期保存出来的patch中有部分内容可能已经不能再直接打入现在的代码里了。这种情况下可以使用下面的方法解决冲突:1、执行命令尝试直接打入补丁。因为我们使用的 patch 已经过时了,所以这一步肯定会报错并中断(注意,虽然命令停止执行了,但我们依然处于git am命令的运行环境中,可以通过git命令查看到当前的状态)。
2024-08-24 22:04:01
264
原创 64位Ubuntu运行一个真实存在的可执行程序却报错的解决方法(No such file or directory)
那么是可执行程序(交叉编译的程序除外)与你的PC机运行环境“位数”不一致导致。在64位的Ubuntu机器上运行一个路径真实存在的可执行文件,提示。
2024-08-17 20:08:21
539
原创 编译Linux内核报错:usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x50): multiple definition of `yylloc‘;
gcc版本过高(高于10.0),可通过。
2024-08-17 19:43:28
915
原创 WSL:(Windows Subsystem for Linux) 将启动时默认用户更改为root或其他用户
请注意,以 root 用户工作可能会带来安全风险,因为 root 用户具有对系统的完全访问权限。因此,只有在你确实需要 root 权限时才应该这样做,并且要谨慎操作。在完成需要 root 权限的任务后,建议将默认用户改回普通用户。首先,你需要知道你的 Linux 发行版的名称。请注意,上述命令可能因 WSL 版本和发行版的不同而有所不同。重新打开 WSL 终端窗口,你应该会以 root 用户登录。打开你的命令提示符或 PowerShell。关闭所有打开的 WSL 终端窗口。
2024-07-14 16:35:49
1718
原创 Linux:解决vim打开文件默认为replace模式
Ubuntu打开 vim 默认为 replace 模式。终端的编码设置与目标机器的编码设置不同。修改 vim 配置文件(
2024-07-14 16:14:10
803
转载 Linux shell:/bin/bash和/bin/sh解释器的误用引起的脚本语法错误
GNU/Linux 操作系统中的 /bin/sh 是 bash(Bourne-Again Shell)的符号链接,但鉴于 bash 过于复杂,有人把 ash 从 NetBSD 移植到 Linux 并更名为 dash(Debian Almquist Shell) https://wiki.ubuntu.com/DashAsBinSh ,并建议将 /bin/sh 指向它,以获得更快的脚本执行速度。下面的脚本,在Linux上运行良好,在SUNOS执行的时候报语法错误。一番折腾之后,是脚本解释器的问题.
2024-07-14 12:25:36
385
转载 WSL:修改安装包实际安装位置,最新完整教程_wsl安装路径
如果你将Ubuntu的文件解压并安装到D盘,但WSL本身仍在C盘,则安装的Ubuntu子系统仍会使用WSL的默认存储路径。在 WSL (Windows Subsystem for Linux) 中,默认情况下安装的 Ubuntu 子系统及其文件存储位置是固定的,但你可以更改 WSL 的安装地址,尤其是对于 WSL 2。下面是如何更改安装地址的步骤通过这些步骤,你应该能够成功导出、注销并导入 WSL 发行版到新的位置。版权声明修改wsl安装包实际安装位置,最新完整教程_wsl安装路径-优快云博客。
2024-07-13 23:39:46
4464
转载 编译Linux内核出现:/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x50): multiple definition of `yylloc’
【代码】编译Linux内核出现:usr_bin_ld_ scripts_dtc_dtc-parser.tab.o_(.bss+0x50)_ multiple definition of `yylloc‘;-C。
2024-07-13 23:16:59
307
原创 音视频封装demo:将h264数据和aac数据封装(mux)成TS文件(纯手工,不依赖第三方开源库)
$ make clean && make DEBUG=1$$ ./ts_mux_h264_aacUsage: ./ts_mux_h264_aac avfile/test1_856x480_24fps.h264 24 avfile/test1_44100_stereo.aac out1.ts ./ts_mux_h264_aac avfile/test2_720x480_30fps.h264 60 avfile/test2_48000_stereo.aac out2.ts ./ts_mu
2024-07-09 11:34:32
823
原创 音视频解封装demo:将FLV文件解封装(demux)得到文件中的H264数据和AAC数据(纯手工,不依赖第三方开源库)
目前demo解封装功能正常,所得到的H.264文件与AAC文件均可正常播放。
2024-07-09 11:27:31
789
原创 音视频封装demo:将h264数据和aac数据封装(mux)成FLV文件(纯手工,不依赖第三方开源库)
1、demo使用$ make clean && make DEBUG=1$$ ./flv_mux_h264_aacUsage: ./flv_mux_h264_aac avfile/test1_856x480_24fps.h264 24 avfile/test1_44100_stereo.aac out
2024-07-09 11:22:50
1007
原创 音视频解封装demo:使用libmp4v2解封装(demux)出mp4文件中的h264视频数据和aac语音数据
本demo是使用的mp4v2来将mp4文件解封装得到h264、aac的,目前demo提供的.a静态库文件是在x86_64架构的Ubuntu16.04编译得到的,如果想在其他环境下测试demo,可以自行编译mp4v2并替换相应的库文件(libmp4v2.a)。
2024-07-09 11:16:48
843
原创 音视频封装demo:使用libmp4v2将h264视频数据和aac语音数据封装(mux)成mp4文件
本demo是使用的mp4v2来将h264、aac封装成mp4文件的,目前demo提供的.a静态库文件是在x86_64架构的Ubuntu16.04编译得到的,如果想在其他环境下测试demo,可以自行编译mp4v2并替换相应的库文件(libmp4v2.a)。
2024-07-09 11:13:30
1448
原创 音频demo:使用开源项目LibFLAC来将PCM格式数据和FLAC无损压缩格式相互进行编解码
如果是双声道,那么一个采样点就包含16bit*2channels等于4个字节,单通道就是2个字节(16bit),那么,文件大小/一个采样点的字节数=总的采样点数。另外,从日志里看,这里1帧(frame)是由4096个采样点编码而成,那么我们程序里每次读取1024个采样点传递进去并不是直接进行编码的。
2024-07-09 10:35:00
1000
原创 音频demo:将PCM数据和opus格式相互编解码
解码:在得到编码数据时,先写4个字节标识一下这段数据的大小,方便解码得到这一帧的数据长度。的文件是chatgpt生成的demo,没有实际验证效果,编码:程序可以正常运行,但是编码出来没有播放器可以验证,,不过可以通过下面自己再解码成PCM即可验证是否正常;不好确定设置的码率是否生效。
2024-07-09 10:33:38
1963
3
原创 音频demo:将PCM数据和ogg vorbis格式相互编解码
libogg+libvorbis移植步骤源码下载地址:[https://xiph.org/downloads/](https://xiph.org/downloads/) ```bashtar xzf libogg-1.3.5.tar.gzcd libogg-1.3.5/#./configure --prefix=$PWD/_install --disable-shared --enable-static --with-pic./configure --prefix=$PWD/_instal
2024-07-09 10:31:04
1101
原创 音频demo:将PCM数据和Speex数据进行相互编解码
源码下载地址:[https://xiph.org/downloads/](https://xiph.org/downloads/) 或 [https://www.speex.org/downloads/](https://www.speex.org/downloads/) 或 [https://www.linuxfromscratch.org/blfs/view/svn/multimedia/speex.html](https://www.linuxfromscratch.org/blfs/view/svn
2024-07-09 10:30:27
612
原创 音频demo:使用开源项目libmad来将MP3数据解码出PCM数据
本demo是使用开源项目libmad来将MP3数据解码成PCM(16位有符号小字节序)数据。(环境:x86_64 Ubuntu16.04 64位)
2024-07-09 10:28:20
409
原创 音频demo:将PCM数据和Speex数据进行相互编解码
##### a. libspeex移植步骤源码下载地址:[https://xiph.org/downloads/](https://xiph.org/downloads/) 或 [https://www.speex.org/downloads/](https://www.speex.org/downloads/) 或 [https://www.linuxfromscratch.org/blfs/view/svn/multimedia/speex.html](https://www.linuxfromsc
2024-07-08 20:22:15
1041
原创 音频demo:使用开源项目libmad来将MP3数据解码出PCM数据
本demo是使用开源项目libmad来将MP3数据解码成PCM(16位有符号小字节序)数据。(环境:x86_64 Ubuntu16.04 64位)
2024-07-08 20:18:17
656
原创 音频demo:使用开源项目lame来将MP3数据解码出PCM数据
本demo是使用开源项目lame来将MP3数据解码成PCM数据。(环境:x86_64 Ubuntu16.04 64位)注:在下面【参考文章】中的第1篇里面提到解码出现过异常情况(hip: bitstream problem, resyncing skipping xxx bytes…),或许是因为我屏蔽了main.c中第88行的fseek(…)函数,在目前demo中提供的MP3文件以及网络下载的其他MP3文件解码均未发现此提示。
2024-07-08 19:51:55
750
原创 音频demo:使用开源项目lame来将PCM数据编码成MP3数据
本demo是使用开源项目lame来将PCM数据编码成MP3数据。(环境:x86_64 Ubuntu16.04 64位)
2024-07-08 19:47:08
629
原创 音频demo:将PCM数据与g726数据的相互转换
本demo是将使用了开源项目EasyAACEncoder里的`src/g726.cpp`(demo中的已重命名为`g726.c`)和`src/g726.h
2024-07-08 19:38:55
777
原创 音频demo:将PCM数据与alaw、mulaw、g711数据的相互转换
前言(截图来源:https://blog.youkuaiyun.com/u014470361/article/details/88837776)demo引用了开源代码和,然后在此基础上封装成和,并编写自己的测试程序进行验证。整个demo程序共5个源文件,可以编译到任意环境下使用(非类Unix系统可能需要简单调整中包含的头文件):b. 使用c. demo目录架构2、主要代码片段pcm_aulaw.cpcm_aulaw_wraper.cmain.c3、demo下载地址(任选一个)https:/
2024-07-08 19:31:59
1251
原创 音频demo:使用fdk-aac将PCM数据编码成aac数据
本demo是使用的开源项目fdk-aac将PCM数据编码成aac音频文件。由于提供的.a静态库是在x86_64的机器上编译的,所以默认情况下仅支持该架构的主机上编译运行。$ make。
2024-07-08 18:00:10
918
2
原创 音频demo:使用faac将PCM数据编码成aac数据
本demo是使用的开源项目faac将PCM数据编码成aac音频文件。由于提供的.a静态库是在x86_64的机器上编译的,所以默认情况下仅支持该架构的主机上编译运行。$ make。
2024-07-08 17:11:47
628
audio-pcm-amrwb-enc-dec-master.zip
2024-07-08
mjpg-streamer-1.0.0_有注释.zip
2021-05-05
RK3399 安卓Q适配EC20 4G模块资料
2021-05-01
Linux WiFi调试工具的使用
2021-05-01
交叉编译dbus/glib/dbus-glib
2021-04-15
编译buildroot-2020.02.9.tar.bz2时自动下载所必需的源码
2021-01-30
Linux用户空间“免驱动”读写I2C设备
2020-05-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人