摘要: 转自http://blog.csdn.net/droidphone/article/details/7165482 1. ASoC的由来 ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASo 阅读全文
posted @ 2018-02-09 16:54 zxiaocheng 阅读(374) 评论(0) 推荐(0) 编辑
摘要: completion是一种轻量级的机制,它允许一个线程告诉另一个线程工作已经完成。可以利用下面的宏静态创建completion: DECLARE_COMPLETION(my_completion); 如果运行时创建completion,则必须采用以下方法动态创建和初始化: struct complt 阅读全文
posted @ 2018-01-22 17:19 zxiaocheng 阅读(453) 评论(0) 推荐(0) 编辑
摘要: dmesg 的时间戳处理 dmesg_with_human_timestamps () { $(type -P dmesg) "$@" | perl -w -e 'use strict; my ($uptime) = do { local @ARGV="/proc/uptime";<>}; ($up 阅读全文
posted @ 2018-01-19 15:36 zxiaocheng 阅读(556) 评论(0) 推荐(0) 编辑
摘要: linux popen函数 描述 popen() 函数 用 创建管道 的 方式启动一个 进程, 并调用 shell. 因为 管道是被定义成单向的, 所以 type 参数 只能定义成 只读或者 只写, 不能是 两者同时, 结果流也相应的 是只读 或者 只写. command 参数 是 一个 字符串指针 阅读全文
posted @ 2018-01-15 18:25 zxiaocheng 阅读(1375) 评论(0) 推荐(0) 编辑
摘要: linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 同时, 阅读全文
posted @ 2018-01-15 17:56 zxiaocheng 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 参数说明:-l 是local的缩写,后跟存在于Client的源文件名,或下载Client后 重命名的文件名。 -r 是remote的缩写,后跟Server即PC机tftp服务器根目录中的源文 件名,或上传Server后重命名后的文件名。 -g 是get的缩写,下载文件时用, -p 是put的缩写,上 阅读全文
posted @ 2018-01-15 12:00 zxiaocheng 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 简洁版: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 详细版: 阅读全文
posted @ 2018-01-09 14:05 zxiaocheng 阅读(1197) 评论(0) 推荐(0) 编辑
摘要: Linux监控重要进程的实现方法 不管后台服务程序写的多么健壮,还是可能会出现core dump等程序异常退出的情况,但是一般情况下需要在无 人为干预情况下,能够自动重新启动,保证服务进程能够服务用户。这时就需要一个监控程序来实现能够让服务进程自动重新启动。查阅相关资料及尝试一些方法之后,总结lin 阅读全文
posted @ 2018-01-09 10:36 zxiaocheng 阅读(10137) 评论(0) 推荐(1) 编辑
摘要: 1.start-stop-daemon start-stop-daemon是一个Debian体系里的一个守护进程管理软件,可以用指定的用户启停软件。CentOS有自己的daemon()机制(在/etc/init.d/functions)。但是如果你手上有一个脚本,必须使用start-stop-dae 阅读全文
posted @ 2018-01-09 10:31 zxiaocheng 阅读(1801) 评论(0) 推荐(0) 编辑
摘要: Daemon函数的用法 说明: 让一个程序后台运行。 原型: [c-sharp] view plain copy print? #include <unistd.h> int daemon(int nochdir, int noclose); [c-sharp] view plain copy pr 阅读全文
posted @ 2018-01-08 21:25 zxiaocheng 阅读(471) 评论(0) 推荐(0) 编辑
摘要: 原文:http://zhumeng8337797.blog.163.com/blog/static/1007689142011643834429/ 先装好网卡,连上网线,这是废话,不用说了。 然后开始! 设置linux让网桥运行 配置网桥 我们需要让linux知道网桥,首先告诉它,我们想要一个虚拟的 阅读全文
posted @ 2018-01-04 15:47 zxiaocheng 阅读(1098) 评论(0) 推荐(0) 编辑
摘要: Linux 抽象网络设备简介 和磁盘设备类似,Linux 用户想要使用网络功能,不能通过直接操作硬件完成,而需要直接或间接的操作一个 Linux 为我们抽象出来的设备,既通用的 Linux 网络设备来完成。一个常见的情况是,系统里装有一个硬件网卡,Linux 会在系统里为其生成一个网络设备实例,如 阅读全文
posted @ 2018-01-04 15:46 zxiaocheng 阅读(456) 评论(0) 推荐(0) 编辑
摘要: linux网桥浅析 原文链接:http://hi.baidu.com/_kouu/item/25787d38efec56637c034bd0 什么是桥接?简单来说,桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够 阅读全文
posted @ 2018-01-04 15:42 zxiaocheng 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 定时释放Linux/CentOS缓存的脚本(yl_dropcaches)如下: [python] view plain copy print? #!/bin/bash used=`free -m | awk 'NR==2' | awk '{print $3}'` free=`free -m | aw 阅读全文
posted @ 2018-01-02 10:20 zxiaocheng 阅读(1072) 评论(0) 推荐(0) 编辑
摘要: OpenEmbedded是一些脚本(shell和python脚本)和数据构成的自动构建系统。 脚本实现构建过程,包括下载(fetch)、解包(unpack)、打补丁(patch)、configure、编译(compile)、安装(install)、打包(package)、staging、做安装包(p 阅读全文
posted @ 2017-12-28 10:38 zxiaocheng 阅读(1153) 评论(0) 推荐(0) 编辑
摘要: 在Linux系统下,一个Services的启动、停止以及重启通常是通过/etc/init.d目录下的脚本来控制的。然而,在启动或改变运行级别时,是在/etc/rcX.d中来搜索脚本。其中X是运行级别的number。本文将解释如何启动、关闭和修改服务的运行。当你在Debian下安装一个新的服务,比如A 阅读全文
posted @ 2017-12-28 10:07 zxiaocheng 阅读(1080) 评论(0) 推荐(0) 编辑
摘要: 引言 在上一篇《Linux启动之旅》中,我们了解了Linux启动过程,在该过程的最后一步,init进程拉起/etc/init.d/rcN.d/目录下指定的守护进程(daemon)。假若自定义的一个进程也需要随开机自启动,并随系统一直运行,我们可以怎么设置呢? 利用init进行进程托管 系统启动时,i 阅读全文
posted @ 2017-12-28 10:03 zxiaocheng 阅读(3331) 评论(0) 推荐(0) 编辑
摘要: ubuntu失灵了,怎么都起不来,报一堆错误usb device descriptor read/64, error 110......重启,换kvm的接口,usb键盘鼠标。。。终于在试了下面这个方法之后,Ubuntu成功的启动登陆进入正常轨道。特转载整篇文章留作纪念: How to fix "de 阅读全文
posted @ 2017-12-27 11:51 zxiaocheng 阅读(2280) 评论(1) 推荐(0) 编辑
摘要: 工作队列是另一种将工作推后执行的形式,它可以把工作交给一个内核线程去执行,这个下半部是在进程上下文中执行的,因此,它可以重新调度还有睡眠。 区分使用软中断/tasklet还是工作队列比较简单,如果推后的工作不需要睡眠,那么就选择软中断或tasklet,但如果需要一个可以重新调度,可以睡眠,可以获取内 阅读全文
posted @ 2017-12-19 14:36 zxiaocheng 阅读(10934) 评论(1) 推荐(0) 编辑
摘要: 1 首先看下关于流控相关的几个端口的解释如下图 除了必要的地(GND)要连接外,其它连如下 首先看下关于流控相关的几个端口的解释如下图 除了必要的地(GND)要连接外,其它连如下 步骤阅读 步骤阅读 2 计算机和猫(MODEM)的连接 步骤阅读 步骤阅读 3 计算机和非猫的连接(null modem 阅读全文
posted @ 2017-11-30 11:20 zxiaocheng 阅读(14227) 评论(0) 推荐(1) 编辑
摘要: ALSA音频工具amixer,aplay,arecord ALSA音频工具编译安装 1.官网http://www.alsa-project.org下载alsa-lib和alsa-utils 我的版本:alsa-lib-1.0.27.2.tar.bz2 和alsa-utils-1.0.27.2.tar 阅读全文
posted @ 2017-11-13 11:49 zxiaocheng 阅读(12383) 评论(0) 推荐(1) 编辑
摘要: Binder Android IPC Linux 内核 驱动 摘要 Binder是Android系统进程间通信(IPC)方式之一。Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder具有无可比拟的优势。深入了解Binde 阅读全文
posted @ 2017-11-10 16:59 zxiaocheng 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 几天在嵌入式linux上用到alsa command,网上查的资料多不给力,只有动手一点点查,终于可以用了,将这个使用方法告诉大家,以免大家少走弯路。 0.先查看系统支持哪几个alsa cmd: ll /system/bin/asla* 经查,我的android4.4.2+linux3.10 的系统 阅读全文
posted @ 2017-11-10 16:56 zxiaocheng 阅读(2482) 评论(0) 推荐(0) 编辑
摘要: 其实主要是正则表达式中的一些特殊语法。在网上找的几篇文章,截取相关部分贴在了下面,方便以后翻阅。 参考:http://hi.baidu.com/sei_zhouyu/item/c18e1a950d2e9eb5cc80e558 http://blog.mcuol.com/User/pclli/Arti 阅读全文
posted @ 2017-11-10 10:44 zxiaocheng 阅读(8058) 评论(0) 推荐(0) 编辑
摘要: 前言 目前,linux系统常用的音频驱动有两种形式:alsa oss alsa:现在是linux下音频驱动的主要形式,与简单的oss兼容。oss:过去的形式而我们板子上的uda1341用的就是alsa驱动。alsa概述:因为我们用的是板上系统,用的也是alsa 的一个soc子系统。所以我们直接讲解a 阅读全文
posted @ 2017-11-07 16:00 zxiaocheng 阅读(265) 评论(0) 推荐(0) 编辑
摘要: Audio Clocking音频时钟 This text describes the audio clocking terms in ASoC and digital audio ingeneral. Note: Audio clocking can be complex!本文本总体描述ASoC和数 阅读全文
posted @ 2017-11-07 15:59 zxiaocheng 阅读(428) 评论(0) 推荐(0) 编辑
摘要: POSIX Timer 间隔定时器 setitimer 有一些重要的缺点,POSIX Timer 对 setitimer 进行了增强,克服了 setitimer 的诸多问题: 首先,一个进程同一时刻只能有一个 timer。假如应用需要同时维护多个 Interval 不同的计时器,必须自己写代码来维护 阅读全文
posted @ 2017-11-03 18:14 zxiaocheng 阅读(3534) 评论(0) 推荐(0) 编辑
摘要: 程序1:采用新线程派驻的通知方式 程序2:通知方式为信号的处理方式 #include <stdio.h>#include <time.h>#include <stdlib.h>#include <signal.h>#include <string.h>#include <unistd.h> #def 阅读全文
posted @ 2017-11-03 17:50 zxiaocheng 阅读(3840) 评论(1) 推荐(0) 编辑
摘要: 自定义时间格式 #include <stdio.h> #include <string.h> #include <time.h> #include <sys/time.h> #define SIZE 512int main(){ unsigned char test[SIZE] = ""; time 阅读全文
posted @ 2017-11-03 17:00 zxiaocheng 阅读(2606) 评论(0) 推荐(0) 编辑
摘要: 信号发送函数sigqueue和信号安装函数sigaction sigaction函数用于改变进程接收到特定信号后的行为。 sigqueue()是比较新的发送信号系统调用,主要是针对实时信号提出的(当然也支持前32种),支持信号带有参数,与函数sigaction()配合使用。 sigqueue的第一个 阅读全文
posted @ 2017-11-03 14:50 zxiaocheng 阅读(804) 评论(0) 推荐(0) 编辑
摘要: QMI(Qualcomm MSM Interface,官方名称应该是Qualcomm Message Interface)是高通用来替代OneRPC/DM的协议,用来与modem通信。 QMI协议定义了多个服务: DMS(设备管理Device Management) 提供载入 设备信息的功能 NAS 阅读全文
posted @ 2017-11-03 14:33 zxiaocheng 阅读(8844) 评论(0) 推荐(0) 编辑
摘要: 使用 sigaction 函数: signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受 到了一定的限制。而 POSIX 标准定义的信号处理接口是 sigaction 函数,其接口头文件及原型如下: #include <signal.h> 阅读全文
posted @ 2017-11-03 14:24 zxiaocheng 阅读(1506) 评论(0) 推荐(0) 编辑
摘要: 此前有报道称,工信部正在拟定推动窄频物联网(NB-IoT)标准化,并对NB-IoT模块外形、封装以及针脚定义等提出新规范。业内人士认为,标准出台后将促进物联网规模化商用全面提速,迎来行业成长爆发期。 工信部物联网标准形成,将改变物联网当前碎片化的现状。在电信运营商、芯片厂商的支持下,NB-IoT的商 阅读全文
posted @ 2017-11-03 13:59 zxiaocheng 阅读(1480) 评论(1) 推荐(0) 编辑
摘要: Linux内核为不同驱动的加载顺序对应不同的优先级,定义了一些宏: include\linux\init.h#define pure_initcall(fn) __define_initcall("0",fn,1)#define core_initcall(fn) __define_initcall 阅读全文
posted @ 2017-11-01 16:03 zxiaocheng 阅读(1950) 评论(0) 推荐(0) 编辑
摘要: reference:http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html#Atomic-BuiltinsA built-in function is a coding extension to C and C++ that 阅读全文
posted @ 2017-10-18 09:54 zxiaocheng 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 多线程经常会在Linux的开发中用到,我想把平时的使用和思考记录下来,一是给自己做个备忘,二是分享给可能会用到的人。 POSIX标准下互斥锁是pthread_mutex_t,与之相关的函数有: 初始化锁用pthread_mutex_init,也可以用pthread_mutex_t mutex = P 阅读全文
posted @ 2017-10-18 09:53 zxiaocheng 阅读(2639) 评论(0) 推荐(0) 编辑
摘要: 函数原型 函数原型 #include <time.h> int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); 描述 描述 nanosleep()函数会导致当前的线程将暂停执行,直到rqtp参数所指定的时间间隔。或者在指定 阅读全文
posted @ 2017-10-18 09:51 zxiaocheng 阅读(3851) 评论(0) 推荐(0) 编辑
摘要: REX(Real Time Executive)是一个面向嵌入式应用的,简单高效的,抢先式,多任务实时操作系统,支持基于优先级的任务调度算法(支持优先级反转)。它提供了任务控制,任务同步,互斥,定时器和终端控制等API。 REX所有的函数都在任务上下文环境里执行。 REX只需要少于5k的ROM控件, 阅读全文
posted @ 2017-10-17 20:50 zxiaocheng 阅读(759) 评论(0) 推荐(0) 编辑
摘要: REX是高通开发出来的一个操作系统,起初它是为了在Inter 80186处理器上应用而开发的,到后来才转变成应用在ARM这种微处理器上。他历经了很多版本,代码也越来越多,功能也越来越完善。REX只用不到5k的ROM存储空间,从前REX系统汇编代码和C代码加起来不过一千多行,不过现在已经超过一万五千行 阅读全文
posted @ 2017-10-17 20:49 zxiaocheng 阅读(616) 评论(0) 推荐(0) 编辑
摘要: poll是Linux中的字符设备驱动中有一个函数,Linux 2.5.44版本后被epoll取代,作用是把当前的文件指针挂到等待队列,和select实现功能差不多。 poll()函数:这个函数是某些Unix系统提供的用于执行与select()函数同等功能的函数,下面是这个函数的声明: #includ 阅读全文
posted @ 2017-10-13 14:06 zxiaocheng 阅读(766) 评论(0) 推荐(0) 编辑