
linux
文章平均质量分 76
大海方舟
主要从事嵌入式linux软件开发,android软件开发工作
展开
-
嵌入式linux中SPI应用开发
在嵌入式设备中用到spi的器件有很多,目前常见的有刷卡器、蓝牙模块等,都是通过spi总线来通信的。本文来讲解一下SPI应用程序开发的常见模式。一 、 主要结构体linux中,应用开发常用的结构体主要是struct spi_ioc_transfer:struct spi_ioc_transfer { __u64 tx_buf; __u64 rx_buf; __u32原创 2015-12-25 17:18:44 · 4971 阅读 · 1 评论 -
嵌入式Linux中SQLITE数据库的应用
在嵌入式Linux开发中,经常需要各种配置信息和操作记录,将这些保存在文件中将显得比较繁琐,保存在数据库中就比较简单。关于SQLITE数据库的介绍这里就不再讲诉,如果还不知道的可以自己baidu。 SQLITE的下载地址:点击打开链接。我下载的版本是sqlite-autoconf-3080900.tar.gz。下载后需要交叉编译,交叉编译部分csdn中已经有很多文件讲诉了,这里不再累原创 2015-12-22 14:34:22 · 1061 阅读 · 0 评论 -
嵌入式linux中PCM音频编程实践
嵌入式设备中经常需要用的音频,音频设备最原始的数据格式就是PCM,也就是大家常见的WAV,在linux中,音频编程使用最多的就是alsa框架,下面就来看一下pcm音频的编程实例吧。 首先需要包含头文件:#include 定义产量与结构体snd_pcm_t *alsaplayhdl;snd_pcm_t *alsacapturehdl;snd_mixer_t原创 2016-01-11 11:09:08 · 3779 阅读 · 0 评论 -
Linux多线程编程与线程间通信机制
Linux中多线程编程技术被广泛使用,这主要是因为多线程可以提升程序的运行效率和便利性。在现在的比较大一点的linux程序中,没有使用多线程编程技术是不可想象的。有多线程,那么就涉及到线程间的通信问题,简单来说就是线程A怎么把消息传递给线程B。目前线程间通信的用的比较多的主要技术有消息队列、共享内存。本文就来讲讲linux中多线程编程的实现,以及利用消息队列进行线程间通信。 一、线程的创建原创 2016-01-26 17:04:44 · 8897 阅读 · 1 评论 -
嵌入式linux中V4L2应用程序开发
嵌入式linux中有标准的V4L2协议,很多摄像头驱动和应用都是基于V4L2来进行的,一般情况下,摄像头的设备号为/dev/video0#define DEVICE_NAME /dev/video0一 、 打开设备int fd;void open_device(void){ fd = open(DEVICE_NAME, O_RDWR /*| O_NONBLOCK */,原创 2016-01-08 15:36:57 · 982 阅读 · 0 评论 -
嵌入式linux中YUV转换成RGB算法
在图像采集中,经常需要将YUV格式转换成RGB格式,本文例举YUV转RGB的算法void yuvtorgb ( double *rgb,unsigned char *yuv){ int i; rgb[0] = 1.0 * yuv[0] + 0 + 1.402 * (yuv[2] - 128); // r rgb[1] = 1.0 * y原创 2016-01-08 15:31:08 · 1708 阅读 · 0 评论 -
嵌入式linux中MD5的运用
MD5在百度百科里面的的解释是:MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。存在广泛的用途。 一般在文件或是程序的完整性校验方面用的比较广泛,本文主要讲讲MD5在C语言中的实现。/* -- include the following line if the md5.h header file is separate --原创 2016-01-06 10:08:01 · 1021 阅读 · 0 评论 -
嵌入式linux自动更新网络时间NTP实践
嵌入式设备中,有些需要得到实时的比较准确的时间,以和服务器或是设备之间进行时间同步,但是很多嵌入式设备又不能通过人工设置时间的方式来同步时间,需要自动从网络上获取时间,这就需要用到NTP。NTP是网络时间协议(Network Time Protocol)的简称,它是用来同步网络中各个计算机设备的时间的协议。目前有第三方的代码可以支持NTP,本文讲诉ntpclient的用法。 ntpcli原创 2016-01-06 09:42:00 · 2229 阅读 · 0 评论 -
linux网络编程之常连接
linux嵌入式开发中,网络编程是绕不开的,现在设备的IP地址一般都是通过dhcp自动获取的,没有一个固定不变的IP,在和服务器进行通信时就不能才用既是客户端又是服务器的写法。而应采用常连接的方式,即服务器不需特意知道客户端的ip,只需知道一个TCP/IP的连接即可。本文来讲解一下嵌入式设备中的客户端网络编程。一 、网络编程中的常用函数介绍经常使用的函数主要有:(1)g原创 2015-12-28 10:13:34 · 937 阅读 · 0 评论 -
linux简单易用的看门狗程序
看门狗程序是通过“喂狗”的形式不停的给watchdog写入数据,一旦在一定的时间内没有写入,watchdog就会认为程序发生了崩溃,它能够直接出发芯片复位,让linux系统进行重启。在实际的项目中具有重要的作用。 本文讲解linux中标准的看门狗程序,标准指的是设备号为/dev/watchdog,程序如下:void feed_watchdog(){ int wd_fd; w原创 2015-12-28 13:36:47 · 4374 阅读 · 0 评论 -
linux中event按键程序
嵌入式Linux设备中经常会使用按键,如果驱动遵循标准的linux input驱动,那么应用程序中该怎么获得按键的状态和键值呢?本文就来讲讲event input按键应用编程。首先要包含头文件#include 定义设备号#define KEY_EVENT_DEV "/dev/event0"最重要的是struct input_event结构体struct原创 2015-12-28 13:57:22 · 3808 阅读 · 0 评论 -
linux中通用GPIO接口的操作
在linux嵌入式设备开发中,对GPIO的操作是最常用的,在一般的情况下,一般都有对应的驱动,应用程序打开对应的驱动,然后通过ioctl函数就可以对其进行操作。在linux中,其实有一个通用的GPIO驱动,应用通过调用文件的形式来进行读写操作,这个文件是/sys/class/gpio,本文就简单的来讲解一下通用GPIO接口的读写。一、 以echo的形式调用system函数进行操作,这种原创 2015-12-28 14:45:16 · 4369 阅读 · 0 评论 -
linux网卡驱动中mac地址随机数变化
mac地址在一般情况下是从网卡的eeprom中读取的,一般厂商会在出厂的时候固化在eeprom中,在有些时候,厂商为了省钱不会去买一个固定的唯一的mac,而是始终用一个固定的mac地址,这样就会在后续用户使用的时候造成mac地址冲突。本文以qf9700网卡驱动为例,讲解添加mac地址以随机数变化的驱动程序。#define qf9700_AUTOMAC#ifdef qf9700_A原创 2015-12-28 15:31:41 · 3864 阅读 · 0 评论 -
嵌入式linux中mplayer播放视频编程实践
用android或是QT来开发视频播放程序相对来说比较简单,如果是在linux用纯C语言来进行开发,就显得比较麻烦,好在现在有很多开源项目能够帮助我们做什么事情,mplayer就是音视频播放开源项目中典型的例子。 首先需要去mplayer官方网站mplayer下载地址下载源代码,然后使用你的交叉编译工具进行编译,编译完成后会生成一个mplayer执行程序,在命令行执行mplayer就可以原创 2015-12-29 09:09:30 · 9215 阅读 · 1 评论 -
嵌入式linux编程中的一些基本操作
本文总结了一些嵌入式linux开发过程中的常用api,希望对大家有所帮助。一 、 获取系统时间int getlocaltime(struct tm *time){ struct timeval tv; time_t second; struct tm *temp; gettimeofday(&tv, NULL); second = tv原创 2015-12-29 09:35:17 · 742 阅读 · 0 评论 -
搭建Qt界面的OpenCV开发环境(转)
原文:http://blog.youkuaiyun.com/xiahouzuoxin/article/details/41692891OpenCV包含了大量的机器视觉处理算法,虽然也提供了highgui的界面功能,但实在有限(也就是一个窗口,加一些使用像素进行绘图的方法),与用户交互相关的功能极少(比如有Trackbar),貌似连个可视化的用户接口的button也没见过,而Qt正好能弥补OpenC转载 2016-08-10 09:00:21 · 1541 阅读 · 0 评论