自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 git 配置

安装 gitapt install git配置 git一. 添加用户明与邮箱 git config --global user.name "XXXX" git config --global user.name "[email protected]"二. 添加ssh密钥1. 查看是否已存在ssh密钥, id_rsa(密钥)和id_rsa.pub(公钥)2. 生产...

2018-04-17 17:25:09 248

原创 新装Ubuntu后的一些配置

一:Ubuntu 16.04 开启root用户和使用root用户登陆1. 编辑/etc/lightdm/lightdm.conf autologin-guest=false autologin-user=root autologin-user-timeout=0 greeter-session=lightdm-gtk-greeter2. 编辑/root/.p...

2018-04-02 07:56:47 344

原创 异或操作

在一个多任务嵌入式系统中,有一个CPU可直接寻址的32位寄存器REGn,地址为0x1F000010,编写一个安全的函数,将寄存器REGn的指定为反转,其他bit不变!void bit_reverse(uint32_t nbit){ *((volatile unsigned int *)0x1F000010) ^= (0x01 << nbit);}...

2018-02-27 16:01:29 742

转载 grep过滤目录或文件方法

在使用grep在指定目录下查找包含指定字符串的文件是,我们想过滤(即不递归查询指定目录)时!可以使用 –exclude-dir 参数单个目录实例搜索.目录但不搜索在.目录下的.svg目录中包含“string”字符串的文件grep -E "string" . -R --exclude-dir=.svg多个目录实例过滤.git,res,bin目录grep -...

2018-02-20 23:59:18 10528

原创 u-boot向2.6之后的linux内核传递启动参数的方法以及常用的参数

待解决!

2018-02-20 22:39:03 559 1

原创 数据高低位交换

刚看到一道面试题:用C语言实现一个数组中char A[n]每个字节内部8bit数据高低调转!在嵌入式中常用蝶式交换算法实现!其中还有查表法(比较占用内存)!蝶式交换算法:data = (data << 4) | (data >> 4);data = ((data << 2)&0xcc) | ((data >> 2)&amp...

2018-02-16 21:58:58 3027

原创 ORTP-0.27.0移植

注意: a. 对于0.27一下版本的ORTP的交叉编译则没有一下依赖库 b. 交叉编译工具链是: arm-linux-gnueabihf-gcc-4.9.1 (4.9版本一下的编译bctoolbox出错)1.依赖库列表ortp-0.27.0移植依赖库: bctoolbox-0.6bctoolbox依赖库: bcunit mbedtls

2017-12-27 20:20:06 1438

原创 jrtplib移植

jrtplib版本:3.11.1jthread版本:1.3.3libsrtp版本:1.6.0jrtplib库有两种编译方式: 1. 使能jthread编译,此方式可使jrtplib自动在后台轮询结束数据, 而不必用户自己调用RTPSession类中的poll方法轮询。(推茅,本例采用) 2. 不使能jthread编译, 这就要用户调用RTPSession类中的pol

2017-11-25 10:26:20 821

翻译 jrtplib库使用简解

RTP有效载荷类型即时间截解释===============================https://www.cnblogs.com/wyqfighting/archive/2013/03/05/2943992.htmlGetting started with the RTPSession class============================================

2017-11-22 17:17:23 1620 1

转载 GNU C中__attribute__

__attribute__基本介绍: 1. __attribute__ 可以设置函数属性、变量属性和类型属性。 2. __attribute__ 语法格式为:__attribute__ ((attribute-list)) attribute-list为相应的__attribute__参数,常见的有 aligned、packed、noreturn 3. __at

2017-11-21 18:10:31 264

原创 D-bus交叉编译

在嵌入式中如果需要Qt系统支持U盘插拔,则需要Qt支持D-bus。 D-bus的交叉编译依赖expat库,此库为XML解析库。交叉编译expat库:#./configure --host=XXX --prefix=XXX #make #make install交叉编译D-bus:#./configure --host=XXX --prefix=XXX CFLAGS=-I(expat头文件incl

2017-10-10 19:00:32 478

原创 linux系统串口编程实例

#include #include #include #include #include #include #include bool set_opt(int fd, int nbits, char nevent, int nspeed, int nstop){ struct termios newtio, oldtio; //检测是否为终端设备描述符

2017-09-27 23:50:52 661

原创 v4l2解析

v4l2的学习建议和流程解析: http://www.cnblogs.com/silence-hust/p/4464291.html

2017-09-23 19:42:08 460

翻译 FILE对象线程安全

根据apue讲述: 标准的IO例程可能从它们各自的内部数据结构的角度出发,是以线程安全的方式实现的!但在线程中,如果标准 IO例程都获取它们各自的锁,那么在做一次一个字符的IO时就会出现严重的性能下降!在这种情况下,需要对每 一个字符的读写操作进行读取锁和释放锁的动作!而如果使用flockfile和ftrylockfile函数获得给定FILE 对象关联的锁,并在fl

2017-09-12 20:04:30 986

原创 jpeg解码库使用实例

jpeg库下载地址: http://www.ijg.org/交叉编译三部曲: A ./configure --host=arm-linux-gcc --prefix=/home/flying/jpeg-install B make C make installjpeg库是解压jpeg/jpg图片或将图片压缩为jpeg/jpg格式所用到的库,使用起来比较简单!jpe

2017-09-09 23:19:44 2134

原创 select函数实例代码

select函数简解: selct 称之为多路复用IO,使用它可以让程序阻塞在select上,而非实际IO函数上. int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); nfds: fd_set描述符集中 {最大描

2017-08-17 16:27:47 498

原创 linux网络编程之断点传输文件

以下载链接“http://www.boa.org/boa-0.94.13.tar.gz”为例:断点续传实验大概步骤:=====================1,使用gethostbyname()获取站点“www.boa.org”的IP地址2,以“boa-0.94.13.tar.gz”为例,构建HTTP请求报文首部: char *httpreq = "GET /boa-0.94.13.ta

2017-08-16 20:03:48 906

原创 Linux网络编程之"获取网络天气信息"

需求分析: 1.需要Linux c 网络编程基础, 2.需要了解 http 协议 3.需要天气信息相关api(可以从阿里云上购买,很便宜的!) 4.需要cJSON解析库(因为获取到的天气信息一般是用cJSON 封装,有的是用xml封装则需要相关解析库)cJSON下载链接:https://github.com/DaveGamble/cJSONcJSON在线

2017-08-15 17:05:04 1240 1

转载 unix环境高级编程一书中部分错误处理函数

#include <errno.h>#include <string.h>#include <stdio.h>#include <stdarg.h>#include <stdlib.h>#define MAXLINE 100static void err_doit(int, const char *, va_list);void err_ret(const char *fmt, ...)

2017-08-09 20:35:03 284

原创 sigqueue与kill详解及实例

/***********************************************************************************************相关函数: #include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig); int sig

2017-08-07 13:09:59 1049

原创 linux下避免僵尸进程的几种方法

linux下我们可以调用fork函数创建子进程,创建的子进程将会得到父进程的数据空间、堆、栈......副本(采用写时复制机制),子进程将会继承父进程的信号掩码、信号处理方式、当前工作目录、会话id、组id......。当子进程退出时父进程应当及时获取子进程退出状态,否则,如果父进程是一直在运行,那么子进程的退出状态将一直保存在内存中,直到父进程退出才释放。我们可以使用如下几种方法避免僵尸进程的产生

2017-08-05 14:52:30 1751

翻译 pthread_cancel函数注意事项

/**************************************************相关函数: #include <pthread.h> int pthread_cancel(pthread_t thread) 成功返回0,失败返回错误码****************************************

2017-08-04 20:49:29 1016

翻译 madplay移植

移植前需求准备: a. 源码包: 1. libid3tag-0.15.1b.tar.gz 2. libmad-0.15.1b.tar.gz 3. madplay-0.15.2b.tar.gz 4. zlib-1.2.3.tar.gz(前三个源码包都依赖于这个包) b.交叉编译工具链: 1. arm-linu

2017-08-03 23:22:51 426

翻译 popen和pclose详解及实例

popen函数是标准c提供的一个管道创建函数,其内部操作主要是创建一个管道,调用fork创建子进程,关闭不需用的文件描述符,调用exec函数族执行popen的第一个参数。然后等到关闭。也就是说我们可以传递一个命令(ls -l......)或一个可执行程序。于pipe对比来说代码相对少很多。**************************************************相关函

2017-08-02 19:32:56 2336

原创 linux中管道(pipe)一谈

/*********************************************** 管道(pipe)是Linux上进程间通信的一种方式,其是半双工(数据流只能在一个方向上流动(还需要经过内核),及要么是接收,要么是发送),并且只能在父子进程 或 具有公共祖先的两个子进程间通信。 管道(pipe)一般是在调用fork函数之前调用pipe函数创建,这样的话,fork后子进程将得到父

2017-08-01 20:01:43 772

原创 c++异常处理--创建自己的异常处理类

复习了一下c++中的异常处理!继承exception类 class myException : public std::exception { public: explicit myException(std::string meg) : message(meg){} //exception类中有一个what()虚函数,重新实现它

2017-03-05 23:44:36 618

翻译 Qt程序启动画面

QSplashScreen类 一些程序使用程序启动画面对缓慢的启动过程进行掩饰。类会在主窗口出现之前显示一个图片,也得以在图片是显示信息以提示程序运行进度。int main(int argc, char **argv){ QApplication app(argc, argv); QWidget *mainWin = new QWidget; QSplashScree

2017-03-04 21:47:27 438

翻译 linux内核--定时器API

/**<linux/timer.h> 定时器结构体struct timer_list { ........ unsigned long expires; --内核希望定时器执行的jiffies值 void (*function)(unsigned long); --定时器到时时执行的函数 unsigned long data; --传入执行函数的参数*//*

2017-03-02 22:35:18 420

转载 定位设备--llseek实现

/**如果llseek实现lseek和llseek系统调用,如果未定义llseek方法,内核默认修改file结构体中的f_pos成员来实现定位,如果是操作一个设备,则需提供自己的llseek方法。不声明llseek方法默认是允许定位的,如果让设备不支持定位,则应在open方法中调用nonseekable_open方法(/include/linux/fs.h)int nonseekable_

2017-03-01 22:40:59 956

翻译 高级字符驱动之堵塞与非堵塞IO

/** *此实例涉及到线程的挂起与竞态,字符IO的堵塞与非堵塞 */struct scull_pipe { wait_queue_head_t inp, outp; char *buffer, *end; char *rp, wp; //int buffersize; int nreaders, nwriters; struct fasync_

2017-02-28 19:25:49 304

原创 c语言中--typeof--关键字用法

C语言中 typeof 关键字是用来定义变量数据类型的。在linux内核源代码中广泛使用。下面是Linux内核源代码中一个关于typeof实例:#define min(x, y) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \ (void) (&

2017-02-27 12:56:24 2295

空空如也

空空如也

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

TA关注的人

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