嵌入式
文章平均质量分 81
再闹东海7
IPC开发
展开
-
嵌入式自动判断是否插入网线的几种方法
在嵌入式产品上,如何让用户选择有线还是无线上网呢?如何让他们判断使用了哪种方式上网呢?我们是这样处理的:优先使用网线上网,稳定。即程序自动判断,如果查了网线,则使用网线上网,如果没有网线连接,则无线上网。 所以,问题的重点是如何判断用户是否插了网线!下面介绍四种方法,仅供参考。方法一:/mnt/wifi$ cat /proc/net/devInter-| Receive ...原创 2018-03-07 11:11:34 · 1629 阅读 · 0 评论 -
ubuntu 编译安装ffmpeg
1.FFmpeg编译1.1.安装yasm这里我是直接通过ubuntu包安装的,当然也可以通过编译源码来安装。sudo apt-get install yasm1.2.下载FFmpeggit clone https://git.ffmpeg.org/ffmpeg.git1.3.配置、编译FFMPEG(1) apt-get install yasm //这儿需要先...原创 2018-07-24 11:00:16 · 4246 阅读 · 0 评论 -
linux下生成core dump文件方法
core dump的概念:A core dump is the recorded state of the working memory of a computer program at a specific time, generally when the program has terminated abnormally (crashed). In practice, other key ...原创 2018-07-24 15:56:50 · 612 阅读 · 0 评论 -
H264编码基础概念+格式分析
一、编码基础概念1、为什么要进行视频编码?视频是由一帧帧图像组成,就如常见的gif图片,如果打开一张gif图片,可以发现里面是由很多张图片组成。一般视频为了不让观众感觉到卡顿,一秒钟至少需要16帧画面(一般是30帧),假如该视频是一个1280x720分辨率的视频,那么不经过编码一秒钟的大小:结果:1280x720x60≈843.75M所以不经过编码的视频根本没法保存,更不用说传...原创 2018-08-11 15:42:14 · 15015 阅读 · 5 评论 -
MPEG2-TS介绍
一:基本概念1.ES--Elementary Streams(原始流)是直接从编码器出来的数据流,ES经过PES打包器之后,转换成PES包。ES仅是包含一种数据内容的数据流,如h.264视频或者aac音频数据。打包之后的PES也是只包含一种的ES,如只含视频ES的PES或者只含音频ES的PES。每个ES都由若干个存取单元(AU)组成,每个视频AU或者音频AU都由头部和编码数据两部分组成,一...原创 2018-08-13 14:16:35 · 1988 阅读 · 0 评论 -
RTP详解
写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。 原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305 1、RTP He...原创 2018-08-13 14:32:30 · 1430 阅读 · 0 评论 -
YUV数据格式
概要:与RGB编码方法类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它是指将亮度参量(Y:Luminance或Luma)和色度参量(UV:Chrominance或Chroma)分开进行表示的像素编码格式。而这样分开的好处就是不但可以避免相互干扰--没有UV信息一样可以显示完整的图像,因而解决了彩色电视与黑白电视的兼容问题;还可以降低色度的采样率而不会对图像质量影响太大,降...原创 2018-08-08 19:02:21 · 331 阅读 · 0 评论 -
samba服务日志文件
1、Samba服务日志文件日志文件对于samba非常重要,它存储着客户端访问samba服务器的信息,以及samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题。在/etc/samba/smb.conf文件中,logfile为设置samba日志的字段。#=======================GlobalSettings==================...原创 2018-08-23 13:54:23 · 14625 阅读 · 0 评论 -
详解linux下的udev
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建的设备文件是动态的。但...原创 2018-08-23 14:58:38 · 329 阅读 · 0 评论 -
ubuntu 更换更新源
1 备份原来的更新源cp /etc/apt/sources.list /etc/apt/sources.list.backup如果提示权限不够就输入下面两行,先进入到超级用户,再备份sudo -scp /etc/apt/sources.list /etc/apt/sources.list.backup2 修改更新源 打开sources.list (这就是存放更新源的文件...原创 2018-08-20 20:32:22 · 676 阅读 · 0 评论 -
uboot源码-MMC分析
一、uboot与linux驱动1、uboot是裸机程序狭义的驱动的概念:操作系统中用来具体操控硬件的那部分代码叫驱动。 裸机中没有驱动的概念,因为没有操作系统。 裸机程序是直接操控硬件的,而操作系统中则是通过驱动来操控硬件。两者的本质区别是分层。2、uboot的虚拟地址对硬件操作的影响(1)操作系统下,MMU是开启的,即linux驱动使用的都是虚拟地址。纯裸机程序不会开启MMU,...原创 2018-08-31 19:01:59 · 903 阅读 · 0 评论 -
linux下的exec命令
shell 中的 exec 两种用法:1.exec 命令 ;命令代替shell程序,命令退出,shell 退出;比如 exec ls2.exec 文件重定向,可以将文件的重定向就看为是shell程序的文件重定向 比如 exec 5</dev/null;exec 5<&-=============================shell的内建命令exec将并不启...原创 2018-08-29 18:37:31 · 130965 阅读 · 5 评论 -
linux 下fcntl()函数
功能描述:根据文件描述词来操作文件的特性。#include <unistd.h>#include <fcntl.h> int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);[描述]fcn...原创 2018-09-06 13:41:24 · 276 阅读 · 0 评论 -
详解FFMPEG API
认识FFmpeg FFMPEG堪称自由软件中最完备的一套多媒体支持库,它几乎实现了所有当下常见的数据封装格式、多媒体传输协议以及音视频编解码器。因此,对于从事多媒体技术开发的工程师来说,深入研究FFMPEG成为一门必不可少的工作,可以这样说,FFMPEG之于多媒体开发工程师的重要性正如kernel之于嵌入式系统工程师一般。几个小知识: FFMPEG项目是由法国人Fabrice B...原创 2018-09-13 13:56:53 · 3463 阅读 · 0 评论 -
循环队列详解
前面分析顺序队的时候,我们知道,顺序队存在”假溢出”的问题,这个问题有时会造成很大的内存浪费,循环队列就是为了解决这个问题而提出地一个很巧妙的办法.循环队列和顺序队列的主要区别在于:循环队列将顺序队列臆造成一个环状空间.在操作上这种异同体现在:相同点:在顺序队列和循环队列中,进行出队、入队操作时,队首、队尾指针都要加 1 ,朝前移动。不同点:1. 在循环队列中当队首、队尾指针指向向...原创 2018-10-07 03:15:51 · 2557 阅读 · 1 评论 -
RTP详解
写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。 原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/39207305 1、RTP He...原创 2018-09-30 11:07:26 · 2856 阅读 · 0 评论 -
linux sqlite3 基本命令操作
备注:本文所有操作均在root用户下进行。1、安装sqlite3ubuntu下安装sqlite3直接在终端运行命令:#apt-get install sqlite3查看版本信息:#sqlite3 -version2 、sqlite3常用命令当前目录下建立或打开test.db数据库文件,并进入sqlite命令终端,以sqlite>前缀标识:#sqlite3 test.db查看数据库文件信息命令...原创 2018-07-12 13:57:22 · 18680 阅读 · 1 评论 -
fopen出错问题
函数介绍:函数原型 FILE * fopen(const char * path,const char * mode); 函数功能 打开一个文件参数: path [in] 名称 mode[in] 打开方式返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。 注:这里只是简单介绍下函数功能和参数,具体参数意思此处不...原创 2018-07-23 19:04:53 · 13589 阅读 · 1 评论 -
嵌入式板端Ping通外网
在我的板子上ping路由上的IP的时候可以ping通,但是ping外网的IP的时候提示“ping: sendto: Network is unreachable”后来使用route命令看了一下# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use If...原创 2018-03-07 16:24:04 · 454 阅读 · 0 评论 -
CJON的使用
使用cJSON创建JSON字符串 在Linux下,使用C语言编程,开始JSON字符串的创建。我们还是一步步来,逐渐由简单到复制。 1,下载源码可以从如下网站来下载:https://sourceforge.net/projects/cjson/ 。2,包含cJSON的源码下载下来,解压后,从里面找到两个文件(cJSON.c、cJSON.h),复制到我们的工程里面。只需在函数中包含头文件(#i...原创 2018-03-12 20:04:11 · 2914 阅读 · 0 评论 -
详解SVN
一、什么是SVNSVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。二、SVN的下载安装下载地址:https://tortoisesvn.net/downloads.zh.html安装完不要忘记重启电脑安装完成后,按下鼠标右键,会看到如下界面:说明SVN已经安装成功了。三、SVN的常用操作1、迁出配置库内容(S...原创 2018-03-27 09:28:46 · 278 阅读 · 0 评论 -
linux使用select实现定时器详解
在编写程序时,我们经常会用到定时器。首先看看select函数原型如下:代码如下:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);参数说明:slect的第一个参数nfds为fdset集合中最大描述符值加1,fdset...转载 2018-04-04 11:37:06 · 1058 阅读 · 0 评论 -
多媒体基础知识之PCM数据
1.什么是PCM音频数据PCM(Pulse Code Modulation)也被称为脉冲编码调制。PCM音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准的数字音频数据。2.PCM音频数据是如何存储的如果是单声道的音频文件,采样数据按时间的先后顺序依次存入(有的时候也会采用LRLRLR方式存储,只是另一个声道的数据为0),如果是双声道的话就按照LRLRLR的方式存...原创 2018-04-24 09:50:47 · 421 阅读 · 0 评论 -
Linux使用dd命令快速生成大文件
dd命令可以轻易实现创建指定大小的文件,如dd if=/dev/zero of=test bs=1M count=1000会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源)。但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢。在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘。则...原创 2018-04-21 10:40:29 · 292 阅读 · 0 评论 -
修改嵌入式Linux设备时区问题
/etc/localtime这个文件用来设置系统的时区,将 /usr/share/zoneinfo/ 中相应文件拷贝到/etc下并重命名为 localtime 即可修改时区设置 一、查看和修改Linux的时区1. 查看当前时区命令 : "date -R"2. 修改设置Linux服务器时区方法 A命令 : "tzselect"方法 B 仅限于RedHat L...原创 2018-04-26 17:10:21 · 1157 阅读 · 0 评论 -
双向链表
1.概念的引入相信大家都使用过各种集合来进行开发,但是较少的人会去研究其内部的存储原理和调用方法,今天我就来带大家一起学习数据结构算法:双向链表首先我们先来了解什么是缓存,以及数据在内存中的存储方式.1.缓存是什么如果cup读取数据时,每次读取都是从内存再到硬盘读取,那么效率就太低了.所以可以预先把数据存到内存,然后cup下次从内存读取即可.1232.数据在内存中的存储方式第1种.线性 ...转载 2018-05-17 16:32:36 · 244 阅读 · 0 评论 -
linux中字符串转换函数
Linux内核中提供的一些字符串转换函数:lib/vsprintf.c [html] view plain copy print? 1. unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int base) 2. unsigned long simple_strtoul(const char ...原创 2018-05-30 14:01:19 · 452 阅读 · 0 评论 -
Iperf使用教程、移植到ARM、移植时遇到的问题解决。
iperf是一个基于Client/Server的网络性能测试工具,可以测试TCP、UDP和SCTP带宽质量,能够提供网络吞吐率信息,以及震动、丢包率,最大段和最大传输单元大小等统计信息,帮助我们测试网络性能,定位网络瓶颈。其中抖动和丢包率适应于UDP测试,二带宽测试适应于TCP和UDP。iperf的好处是纯粹发包和接收,防止硬盘拖后腿,影响测试结果。对于时延,iperf无能无力。但是iperf能够...原创 2018-06-22 13:49:23 · 5145 阅读 · 0 评论 -
C语言配置文件解析库——iniparser
前言:在对项目的优化时,发现Linux下没有专门的供给C语言使用的配置文件函数,于是搜索到了iniparser库,可以像那些面向对象语言一样,使用ini文件进行参数配置。介绍iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。iniparser库有四种下载方式: 1. 官方网站 2. 我的github 3. 我的网盘 4. source code tree基本语法...原创 2018-06-26 20:31:31 · 459 阅读 · 0 评论 -
linux手动释放内存
当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法。那么我来谈谈这个问题。/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。那么我们可以通过调整/...原创 2018-06-20 10:29:03 · 308 阅读 · 0 评论 -
Linux下C语言计算文件的md5值(长度32)
找到了 md5.h 和 md5.c 的源文件,仿照别人的封装了个函数(他那个有问题,和 md5sum 计算出来的都不一样)。废话少说,直接贴 代码 : (再废一句话,如果只想计算字符串的md5值,把字符串传给 MD5Update 函数一次就好)#include "md5.h"#include <stdio.h>#include <stdlib.h>#inc...原创 2018-07-23 10:33:11 · 1566 阅读 · 0 评论 -
指针做形参时应该注意的地方
1. 指针作为形参时,不可以将指针的地址改变,比如调用malloc。2. 只可以对指针指向的值做改变。 首先看以下程序: #include <stdio.h>int *swap(int *px, int *py){ int temp; temp = *px; *px = *py; *py = temp; ret...原创 2018-07-23 18:58:45 · 6242 阅读 · 1 评论 -
RTMP协议详解
前期准备 了解RTMP定义 准备RTMPDump中的librtmp 使用openssl中的libssllibcrypto 推流工作 整体框架图 使用libtrmp提供的API 将streaming封装成为RTMP格式 进阶 RTMP client与RTMP server交互流程 RTMPDump源码分析 握手HandsShak...转载 2018-09-30 11:25:09 · 3839 阅读 · 0 评论