自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(215)
  • 资源 (3)
  • 收藏
  • 关注

转载 进程通信之共享内存 shmget()、shmat()、shmdt()、shmctl()

特别提醒:共享内存并未提供同步机制,也就是说,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取,所以我们通常需要用其他的机制来同步对共享内存的访问,例如信号量。对于一个共享内存,实现采用的是引用计数的原理,当进程脱离共享存储区后,计数器减一,挂架成功时,计数器加一,只有当计数器变为零时,才能被删除。(1)优点:我们可以看到使用共享内存进行进程之间的通信是非常方便的,而且函数的接口也比较简单,数据的共享还使进程间的数据不用传送,而是直接访问内存,加快了程序的效率。

2023-08-16 20:41:38 329

转载 服务器系统升级到了 Ubuntu 22.04 LTS Buildroot 2020.08 的 Fakeroot 版本过旧导致的兼容性问题

进一步,我在 Docker 镜像中手动下载并编译 fakeroot 1.20.2、1.21 和 1.25.3,都可以复现这个问题,编译 1.29 版本则没有问题。,进一步定位到 upstream/1.26 和 upstream/1.27 版本都是正常的。进一步二分,找到修复的 commit 是。可以看到,正常情况下,mknodat 系统调用被拦截,由 fakeroot 来创建空文件;而错误的 fakeroot 版本下,没有拦截成功,就出现了 EPERM。的方法可以解决编译的问题,但是还是出现 EPERM。

2023-08-14 20:19:27 345 1

原创 如何在不重启应用程序的情况下使asound.conf得配置生效?

所以只要在cloase 声卡后,再执行以下命令,重新打开声卡,asound.conf的更新就会生效。

2023-08-11 20:29:09 366

原创 github版面混乱加载不出的解决办法

最近出现打开github 界面加载不成功,网页访问乱码,打开chrome的检查发现 github的github.githubassets.com 拒绝访问,解法:1.先打开hosts文件所在的目录2.右键点击hosts文件-选择用记事本或者Notepad++打开该host文件3.在该hosts文件新增如下IP信息(直接把如下内容复制黏贴到hosts文件)

2023-08-09 11:41:17 10547 14

原创 PRId32、PRIu64 、 %z使用介绍

在这张图片中我们可以看出在数据类型long中,32位操作系统分配4个字节,而64位系统分配了8个字节,这同时导致了它们不同的取值范围,而实际上C语言标准只制指定了 每种数据结构类型的最小范围,而不是确定的范围,我们也可以选择大多数机器上的标准表示兼容的数据类型,但是这也不能表示可移植性。3. %z 使用,当要打印的数据类型是size_t时,在32位跟64位系统,这个数据类型的大小是不一样的,可以使用%z进行格式化。因此使用宏能保证:无论代码是如何被编译的,都能生成正确的格式字符串。

2023-07-17 14:28:34 647

原创 dbus-send控制bluez蓝牙的一些操作

原文链接:https://blog.csdn.net/tianlai1009/article/details/112870777。版权声明:本文为CSDN博主「TE_ET」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。dev_xx_xx_xx_xx_xx_xx蓝牙是设备地址是用手机的mac地址,而不是板子端蓝牙的地址。基于bluez5.38。

2023-06-26 17:46:44 430

原创 进程与线程栈大小的调整(vsz 虚拟内存大小)

程序是一个多线程的程序,而且有不少的线程是由线程再次创建的,系统环境是linux2.6.32的内核。因此想到可以通过使用Posix Pthread库的pthread_attr_setstacksize接口来修改线程栈的大小,于是将20多个线程的栈的大小修改为512KB,虽然有点麻烦,但是再次运行,VSZ的确大幅地减少为30MB左右。所以20多个线程的程序在默认8M的栈大小设置下,会使用到200M左右的虚拟内存空间,包括程序的所有栈空间以及数据内存、堆内存和代码内存。未经作者同意不得转载。

2023-06-08 15:21:04 640

原创 FFmpeg 自定义IO CONTEXT实现音频解码,以及seek函数

关于是否要实现avio context中的seek函数,需要看需要解码什么格式,大部分格式不需要seek,但是有些格式需要,比如apple开发的ALAC格式,这个格式的音频有的时候它的头文件moov信息是在文件的结尾,这就很坑,一般都是在开头,所以在获取音频的时候需要先seek到文件的结尾,获取moov的信息,然后再seek回来继续解析格式并解码。如果你不想实现seek,有没有办法直接把音频文件的moov信息从结尾提到开头呢?通过这个命令转换后再去解码,文件信息就在开头,就可以不用seek了。

2023-04-28 11:08:39 1064 1

转载 分析一下logwrapper的原理

logwrapper

2022-10-13 17:48:22 351

原创 linux 配置C/C++代码静态分析工具cppcheck+git

linux 配置C/C++代码静态分析工具cppcheck+git

2022-07-05 17:10:34 613

转载 Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录

一般情况下,我们可以通过 samba 协议挂载远程服务器上的文件夹。然而,并非所有服务器都开放了 samba 端口,特别是在外网情况下,通常只会开放一个 ssh 端口。而 sshfs 是通过 ssh 协议模拟的方式,实现将远程服务器上的硬盘挂载到本地。也就是说,只要你的服务器支持ssh连接,你就可以将服务器的硬盘挂载到本地,然后采用本地的方式来操作硬盘里的文件。目前 sshfs 的实现有两种方案,其中第一种方案 winfsp + sshfs-win,目前还在持续维护更新,更加建议使用;第二种 win-s

2022-05-11 23:23:04 2740

转载 维纳滤波与维纳-霍夫方程

引用维基百科中关于维纳滤波的一段表述:“仅仅在频域进行滤波的滤波器,仍然会有噪声通过滤波器。维纳设计方法需要额外的关于原始信号所包含频谱以及噪声的信息,维纳滤波器具有以下一些特点:1、假设:信号以及附加噪声都是已知频谱特性或者自相关和互相关的随机过程2、性能标准:最小均方差3、能够用标量的方法找到最优滤波器 "在求解维纳-霍夫方程时,第一个假设就具体为以下两项:1、期望信号s(n)与观测数据x(n)的互相关函数Rxs(n)2、观测数据的自相关函数Rxx(n)下面推导维纳霍夫方程..

2021-09-14 17:25:16 2337 1

转载 递归修改当前目录下所有文件/文件夹3个时间戳

Touch命令:1 命令功能: 创建文件和修改文件或者目录的时间戳2 命令语法: touch 【选项】 【文件名或者目录名】3 命令参数: -a 只修改文件的access(访问)时间. -c 或--no-create  不创建不存在的文件。 -d 使用指定的日期时间,而非现在的时间 -m 指修改Modify(修改)时间,而不修改access(访问)时间 -r file 使用指定file文件的时间戳(access,...

2021-03-24 20:27:12 641

转载 uboot下内存操作指令mw和md

md指令uboot下输入指令md,会提示md的用法,memory display,即内存显示。U-Boot-PetaLinux> mdmd - memory displayUsage:md [.b, .w, .l] address [# of objects]b:8位w:16位l:32位(默认值)示例:上述0x10000000是要显示内存的那个地址,后面的数字是输出的个数,注意是16进制的。直接输入md来显示,默认是以32位为单位输出 。mw指令uboot下输.

2021-01-15 16:57:33 981

转载 C++中this与*this的区别

别跟我说, return *this返回当前对象, return this返回当前对象的地址(指向当前对象的指针)。 正确答案为:return *this返回的是当前对象的克隆或者本身(若返回类型为A, 则是克隆, 若返回类型为A&, 则是本身 )。return this返回当前对象的地址(指向当前对象的指针), 下面我们来看看程序吧:[cpp]view plaincopy#include<iostream>usingnamespaces...

2021-01-07 15:23:08 569

原创 检查更新时出错:无法启动更新检查(错误代码为 3: 0x80040154)

chrome 浏览器无法更新,原因:使用了第三方应用商店,我用的是360软件管家安装的,安装后不会检查更新解决方案:从官网上安装https://www.google.cn/chrome/

2020-12-16 10:51:28 14075 1

原创 gerrit git提交代码到远程分支失败(you are not allowed to upload merges)

git提交代码到远程分支失败(you are not allowed to upload merges)从一个另一个分支merge过来,然后解决冲突之后再提交到远程仓库,遇到提交失败(you are not allowed to upload merges)原因:gerrit用户推送代码到远程仓库有不同的权限,一般的本地修改 git push 只需要普通的push权限,但是当你是从别的分支merge过来的代码,修改了冲突,然后提到远程仓库,此时还需要PushMergeCommits 权限才能提...

2020-12-14 20:08:02 1830

转载 C语言的头文件是必须的吗?使用了未声明的函数会怎么样?

N年前学习C语言开始,就被老师教导,要记得包含头文件。自己也养成了二话不说就#include的习惯。从来没有静下信来想想,C语言必需要有头文件吗?头文件到底起到什么的作用。 最近一段时间做了一些静态库和动态库相关的东西,一些内容在上一篇博文中,阅读上一篇博文的看官可以看出,我的静态库和动态库都没有对应的头文件,可是我的应用程序调用了库,没有包含头文件,一样是正常地编译执行。意识到这个问题的时候,我还有一阵恐慌,不知道怎么解释这个现象。因为我们常规都会包含头文件,比如调用多线程库,都会 ...

2020-12-07 16:03:27 3563

原创 mount --bind 绑定挂载

mount --bind是将一个目录(或文件)中的内容挂载到另一个目录(或文件)上,用法是# mount --bind olddir newdir或者#mount -B olddir newdir这样在一个挂载点上可以访问其它挂载点的文件或目录卸载命令:#umount newdir2. 改写只读文件内容当一个文件不可写,而我们又需要改写它, 就可以用这个命令了。例如:1)cp /readOnly/abc /readWrite/2)vi /readWrite...

2020-09-17 14:43:59 3965

原创 设置git 提交commit内容的默认模板

// 配置文件存放在当前项目的根目录里(全局配置,文件位置随意)git config commit.template <filename>git config --global commit.template <filename>// examplegit config -g commit.template gitcommit_template.txt

2020-08-21 16:48:18 1903

转载 linux启动是自动加载的几个文件说明bashrc等

(1)/etc/profile全局(公有)配置,不管是哪个用户,登录时都会读取该文件。(2)/ect/bashrcUbuntu没有此文件,与之对应的是/ect/bash.bashrc它也是全局(公有)的bash执行时,不管是何种方式,都会读取此文件。(3)~/.profile若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。另外,图形模式登录时,此文件将被读取,即使存在~/.ba

2020-07-23 16:15:31 937

原创 c++字符串前几位,后几位的截取

string str = "hello world";str.substr(0, str.length() - 3);str.erase(0, 5);substr: 截取开始到结束长度的子字符串,上面的例子截取的是str除去末尾三个字符的剩余子字符串erase: 表示删除固定长度的字符串,上面的例子是删除字符串开始的五个字符的剩余子字符串。这两个函数的返回值都是删除之后的子字符串...

2020-05-07 20:12:14 13604

转载 shell脚本无法使用source的原因及解决方法

现象:shell脚本中source aaa.sh时提示 source: not found例如:$ source aaa.sh-sh: source: command not found1 2原因:通过使用一下命令来检查ls -l `which sh`1会提示如下信息:lrwxrwxrwx 1 root root 4 Apr 21 13:57 /bin/sh ...

2020-04-10 21:56:15 2040

转载 安卓手机抓取APP log的方法(adb)

首先在PC上下载软件软件网站:http://adbshell.com/downloads输入“Win+R”调出cmd界面把手机连接入电脑,注意手机要进入usb调试模式(不同品牌有不同的进入方法请自行查阅)PC端进入刚下载的软件的位置先输入路径名,然后输入命令adb devices如下图所示:然后输入命令 adb logcat -v time > my.log...

2020-04-09 20:16:53 1834

原创 如何理解拉格朗日乘子法?

马同学的专栏:https://www.matongxue.com/madocs/939.html

2020-04-01 22:03:28 199

转载 如何理解超平面?

超平面的公式首先明确几个定义:(1) 超平面是指n维线性空间中维度为n-1的子空间。它可以把线性空间分割成不相交的两部分。比如二维空间中,一条直线是一维的,它把平面分成了两块;三维空间中,一个平面是二维的,它把空间分成了两块。(2) 法向量是指垂直于超平面的向量。在空间中,假如有法向量正在上传…重新上传取消,过原点的平面内任意原点出发的向量正在上传…重新上传取消必然与之满足正在上传…重新...

2020-03-29 13:57:22 1490 1

转载 基于madplay库linux应用编程实现音乐播放器

基于madplay库linux应用编程实现音乐播放器该系统可实现:播放、暂停、继续、停止、上一首、下一首、音量调节及退出等功能。用madplay库实现一个简单的音乐播放器,可以播放本地的音频文件并具备基本的音乐操作处理功能主菜单效果图:函数相应功能文件名 函数名 返回值类型 功能描述main.c main() int 该程序的主函数remi...

2020-03-13 15:53:58 1180

原创 让终端支持播放mp3,移植mp3解码库libmad和madplay到嵌入式linux

libmad简介官网:https://www.underbit.com/products/mad/MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3)。LIBMAD 提供 24-bit 的 PCM 输出,完全是定点计算,非常适合没有浮点支持的平台上使用。使用 libmad 提供的一...

2020-03-13 15:45:40 973

转载 【ALSA】 asound.conf 插件讲解

Alsa-lib层,为不同的驱动提供统一的接口alsa API,简化了开发人员对于驱动层的调用开发。接口定义地址:https://www.alsa-project.org/alsa-doc/alsa-lib/关于asound.conf的配置,可以参考官网解释:https://www.alsa-project.org/main/index.php/Asoundrc详细的插件讲解,官网...

2020-01-02 11:00:31 1591 1

原创 python ssl.CertificateError: hostname 'manifest.googlevideo.com' doesn't match either of '*.facebook

在用youtube.dl下载数据库时,一直遇到这样的错误导致数据下载中断。证书不匹配问题ssl.CertificateError: hostname 'manifest.googlevideo.com' doesn't match either of '*.facebook1.对于python自带的 urllib库 解决办法import sslssl.match_hostnam...

2019-11-18 13:28:16 2019

转载 代码详解:运用Numpy实现梯度下降优化算法的不同变体

全文共14118字,预计学习时长30分钟或更长想了解如何使用numpy在tensorflow或pytorch中实现优化算法,以及如何使用matplotlib创建精美的动画?本文将讨论如何实现梯度下降优化技术的不同变体,以及如何使用matplotlib将用于这些变体更新规则的运作可视化出来。本文的内容和结构基于 One-Fourth Labs。梯度下降是优化神经网络最常...

2019-11-17 12:03:05 371

转载 git cherry-pick的使用

概述git cherry-pick可以理解为”挑拣”提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。 当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。用法git cherry-pick [<options>] <commit-ish&gt...

2019-11-08 14:46:17 407

原创 git 查看某一个文件的(提交/修改)记录

获取该文件的提交记录1. git log filename可以看到fileName相关的commit记录或者git log --pretty=oneline 文件路径会显示commit和提交信息git log --pretty=oneline 文件路径2. git log -p filename可以显示每次提交的diff3. 只看某次提交中的某个文件变化,...

2019-11-06 09:52:38 16380 1

转载 linux spi 设备节点 读写

本文记录spi设备节点的操作方法。SPI总线设备文件名通常为/dev/spidevN.P(N=0、1、2……,P=0、1、2……),其中N表示第几路SPI总线,而P表示在该路SPI总线中使用哪个CS信号线。参考链接:  http://www.wzaobao.com/p/l5079K.html  http://www.emcraft.com/stm32f429discovery/...

2019-09-27 16:37:25 2594

原创 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误

在学习requests库爬取网页的时候,出现了“解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误”的错误。# -*-coding:utf-8-*-import requestsfrom bs4 import BeautifulSoupimport bs4def getHTMLText(...

2019-08-28 12:12:45 589

转载 perf stat 输出解读

perf stat 输出解读原文链接:http://zhengheng.me/2015/11/12/perf-stat/ task-clock:用于执行程序的CPU时间,单位是ms(毫秒)。第二列中的CPU utillized则是指这个进程在运行perf的这段时间内的CPU利用率,该数值是由task-clock除以最后一行的time elapsed(也就是wall time,真...

2019-08-15 15:52:02 2031

转载 android cat /proc/meminfo 字段分析

cat /proc/meminfo 字段分析:/ $ cat /proc/meminfoMemTotal: 877368 kB :所有可用RAM大小(即物理内存减去一些预留位和内核的二进制代码大小)(HighTotal + LowTotal),系统从加电开始到引导完成,BIOS等要保留一些内存,内核要保留一些内存,最后剩下可供系统支配的内存就是MemTotal。这个值在系...

2019-07-31 15:58:34 671

原创 mac下安装pyaudio

在mac上安装pyaudio时,出现src/_portaudiomodule.c:29:10: fatal error: 'portaudio.h' file not found#include "portaudio.h" ^1 error generated.error: command 'cc' failed with exit status 1需要先安装po...

2019-07-15 14:15:47 1463 1

转载 ESP8266 SoftAP模式 Station模式 SoftAP+Station模式说明

一、ESP8266模块工作模式ESP8266模块可以工作在多种模式下实现不同的功能。(1)SoftAP模式(软路由模式)在此模式下,模块本身相当于一个路由器,其他设备可链接到该模块发送的信号,主要应用在主从设备的主机部分。(2)station模式(客户端模式)在此模式下,模块相当于一个客户端,可以链接到其他路由器发出的WIFI信号。主要应用在网络通信中。(3)So...

2019-07-11 09:58:23 4260

转载 Linux环境下用C语言实现socket 通信---简单代码

Socket编程实例:服务器端:一直监听本机的8000号端口,如果收到连接请求,将接收请求并接收客户端发来的消息,并向客户端返回消息。客户端:client.c/* File Name: client.c */ #include<stdio.h> #include<stdlib.h> #include<string.h> #in...

2019-07-03 09:51:47 1024

cmake practice

CMake是一个工程构建工具,能够自动生产makefile文件,方便构建编译文件,链接库,安装文件等

2018-09-12

vivado license

在2037年之前的任何Vivado版本(包括HLS、ISE、AccelDSP、System Generator、软硬CPU、SOC、嵌入式Linux、重配置等等功能)都可以永久破解,使用,使用本license文件时文件名不能有汉字和空格,在vivado2017.4 vivado2016.2 win7 x64及2014.4 win7 x86亲测可用

2018-02-13

基于单片机的简易逻辑分析仪设计论文资料

基于单片机的简易逻辑分析仪设计论文资料.

2015-12-08

空空如也

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

TA关注的人

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