自定义博客皮肤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)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android Studio导入其他项目

1.先打开每个 module下的 gradle 文件,即 app 目录下的 build.gradle 以及各个 library 下的 build.gradle ,首先查看 compileSdkVersion 和 buildToolsVersion,因为有些时候你本地的版本和下载的版本不一致,那么就会导致失败。2.检查 gradle-wrapper ,Google 有些时候要求不

2017-10-12 17:35:37 992

原创 linux dup2函数

一.概述      dup和dup2也是两个非常有用的调用,它们的作用都是用来复制一个文件的描述符。它们经常用来重定向进程的stdin、stdout和stderr。二.头文件unistd.h四.函数接口int dup2(int fd, int fd2);dup2函数成功返回时,目标描述符fd2将变成源描述符fd的复制品,换句话说,两个文件描述符现在都

2017-09-22 16:37:56 611

转载 Linux POSIX 消息队列

一.概述      内核经常要推后执行某些代码,如底半部机制就是为了将工作推后执行。timer_list为我们提供一种方式,使工作能够在指定时间点上执行。      定时器使用简单,只须执行一些初始化工作,设置一个超时时间,指定超时发生后执行的函数,然后激活定时器就可以了。      定时器并不是周期运行的,它在超时后就自行销毁,这就是这种定时器被称为动态定时器的原因。动态定时器不断地

2017-07-18 11:17:18 387

转载 linux文件系统启动流程、启动脚本

下面是一张Linux启动流程图:在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为:1. /sbin/init2. /etc/inittab3. /etc/rc.d/rc.sysinit4. /etc/rc.d/rcN.d //这是几个文件夹N代表数字1,2,3,4..5. /etc/fstab1.关于/sbin/init与/etc

2017-06-06 17:07:57 7996

转载 TCP、UDP 发送、接收0字节问题

再论Tcp Udp 发送、接收 0字节问题发送时Tcp建立连接时,3次握手的每个报文都是data区为0字节,所以说发送0字节没有问题。建立连接后,再发送0字节大小也没有问题(api:send,发送后返回值为发包的大小) Udp可以发送0字节大小报文。(api:

2017-05-12 18:03:49 4796

原创 Linux内核定时器-- timer_list

一.概述            信号量是Linux进程间通信的常用方法之一,这里使用POSIX标准的信号量,而不是System V的。二.头文件linux/timer.h二.结构体数据类型struct timer_list { struct list_head entry; //定时器链表的入口 unsigned long expir

2017-04-28 14:05:00 622

转载 Linux信号(signal)

【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。 1       信号本质软中断信号(signal,又简称为信号

2017-03-31 13:14:10 610

原创 Linux IPC - POSIX信号量

一.概述            信号量是Linux进程间通信的常用方法之一,这里使用POSIX标准的信号量,而不是System V的。二.函数接口          1.头文件 #include /* For O_* constants */ #include /* For mode const

2017-03-28 17:16:55 433

转载 Linux下常用头文件释义

定义全局项current ,其指向结构体struct  task_struct    定义结构体task_struct ,只要包含此头文件即可引用当前进程  定义含有可装载模块需要的大量符号和函数      定义初始化和清楚函数    定义错误编码      定义成员访问许可值    定义大部分内核API,包括睡眠函数以及各种变量声明   定

2017-02-23 14:03:57 451

转载 Linux socket本地进程间通信

使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。socket进程通信与网络通信使用的是统一套接口,只是地址结构与某些参数不同。一、创建socket流程(1)创建socket,类型为AF_LOCAL或AF_UNIX,表示用于进程通信:创建套接字需要使用 socket 系统调用,其原型如下:int

2017-02-17 14:58:59 1677 1

翻译 Linux Fastboot Methods

How to define the booting time?The booting time we defined here is from the board be powered up to the main application working and main application be showed directly to the end user, for example

2017-02-15 14:55:43 284

转载 Android 启动性能优化 - kernel篇

题目有点大,其实kernel的启动性能调整和Android基本没什么关系,我想应该适用所有使用Linux的嵌入式设备时间测量说到性能调整,第一件该干的的事就是看下时间到底消耗在哪里。俗话说的好:知己知彼,百战百胜;过度优化,万恶之首因此手头上要有称心如意的时间测试工具,方法。其实我是不太喜欢工具的,工具这东西可遇不可求,而且不如写代码顺手。1. PRINTK_T

2017-02-14 17:37:38 1395

原创 给Qt应用添加外部库文件

要给Qt应用添加外部库文件,需要修改对应工程目录下的 xxx.pro文件1.把libmtdev.a libmtdev.so.1.0.0移动到工程目录下2.在xxx.pro文件中添加如下红色行TEMPLATE = appTARGET = ivi_v2INCLUDEPATH += .QT += widgetsQTPLUGIN += qlinuxfb qevdevto

2017-02-14 10:23:35 3523

原创 Android boot.img的由来

编译完android源码后,以飞思卡尔的IMX6Q为例,生成的镜像在目录out/target/product/sabresd_6dq中     这些镜像包括:boot.img  kernel  ramdisk.img   system.img这里简要分析前三者ramdisk.img通过分析system/core/rootdir/Android.mk 和 build/co

2017-02-08 17:56:46 3135

原创 linux下du查看目录文件夹大小

du -sh 查看当前目录大小du -sh * | sort -n 统计当前目录大小,并按文件大小排序du -sk filename 查看指定文件大小

2017-01-25 10:04:32 812

原创 linux(ubuntu)下FTP的使用

1.安装、配置FTP服务组件sudo apt-get updatesudo apt-get install vsftpd修改ftp的配置文件 /etc/vsftpd.conflocal_enable=YES  write_enable=YES重启FTP服务sudo service vsftpd restart2.命令行FTP操作在shel

2017-01-24 15:39:52 5634

原创 编译安卓 lunch报错 字符格式问题

在准备编译安卓源码前执行lunch报错fanr:$ lunch aosp_arm-eng/bin/bash: build/core/find-jdk-tools-jar.sh: /bin/sh^M: bad interpreter: No such file or directory/bin/bash: build/core/find-jdk-tools-jar.sh: /bi

2017-01-24 10:17:03 1068

原创 编译android源码 lunch错误

按照android源码的编译步骤,执行完envsetup.sh脚本后lunch报错fanr:$ ./envsetup.shfanr:$ lunchNo such file: /home/topeet/.lunchrcGoogle后找到答案:First a control question, when you said you ran envsetup.sh,

2017-01-23 17:38:41 4740

原创 linux下find命令查找文件中包含某字段

查找目录下的所有文件中是否含有某个字符串find .|xargs grep -ri "xxxx"查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名find .|xargs grep -ri "xxxx" -l

2017-01-23 11:34:46 16728

原创 linux下批量替换文件中的字段

要将某目录中所有文件包括子目录下的文件中的 某个字段替换成其他字段比如我这里要将qt目录下 所有文件中的aaa替换成bbbsed -i "s/aaa/bbb/g" `grep aaa -rl ./qt`     格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`其中        -i 表示inplace edit,就地修改文件

2017-01-20 16:29:37 4618

转载 Android文件系统分析

感谢conowen大神原文地址:http://blog.csdn.net/conowen/article/details/72510571、Android文件系统的结构官方Android源码编译后得到的文件如下:其中有system.img,ramdisk.img,userdata.img三个映像文件。其中,ramdisk.img是文件系统,system.im

2017-01-20 11:40:47 1176

原创 chmod 详解

chmod [options] mode files只能是文件属主或root用户才能使用该功能来改变文件属性。mode可以是数字形式或以who opcode permission形式表示。who是可选的,默认是a(所有用户)。只能选择一个opcode(操作码)。可指定多个mode,以逗号分开。options:-c,--changes只输出被改变文件的信息-f,--silent,-

2017-01-18 11:27:18 410

转载 git log命令全解析

git log命令非常强大而好用,在复杂系统的版本管理中扮演着重要的角色,但默认的git log命令显示出的东西实在太丑,不好好打扮一下根本没法见人,打扮好了用alias命令拍个照片,就正式出道了!下面先详细而系统地介绍git log的所有配置知识(用我

2017-01-17 16:38:12 11875

转载 arm架构的初始化过程步骤

1 禁止MMU,关闭中断,禁止cache;2 根据硬件设计配制好处理器时钟、DRAM时钟、定时器时钟;3 根据系统中所用的flash和DRAM芯片容量和电气参数设置它们的起始地址、容量、刷新频率等;4 将固化在flash芯片中的程序搬移到DRAM内存中;5 使能cache,使能MMU,跳转到DRAM内存中运行继续初始化,包括根据具体应用以及系统中的硬件配置初始化各个

2014-12-22 17:13:53 2377

转载 标准IO和文件IO的比较

作者:王姗姗,华清远见嵌入式学院讲师。先来了解下什么是标准IO以及文件IO。标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。标准IO库处理很多细节。例如缓存分配,以优化长度执行IO等。标准的IO提供了三种类型的缓存。(1)全缓存:当填满标准IO缓存后才进行实际的IO操作。 (2)行缓存:当输入或

2014-12-03 09:44:57 985

转载 linux 进程通信之内存共享

共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区。在/proc/sys/kernel/目录下,记录着共享内存的一些限制,如一个共享内存区的最大字节数shmmax,系统范围内最大共享内存区标识符数shmmni等,可以手工对其调整,但不推荐这样做。一、应用共享内存的使用,主要有以下几个API:ftok()、shmget()、shmat()、shmdt()及shmctl()。1

2014-11-26 20:01:09 482

转载 linux进程与线程

进程与线程        为什么对于大多数合作性任务,多线程比多个独立的进程更优越呢?这是因为,线程共享相同的内存空间。不同的线程可以存取内存中的同一个变量。所以,程序中的所有线程都可以读或写声明过的全局变量。如果曾用fork() 编写过重要代码,就会认识到这个工具的重要性。为什么呢?虽然fork() 允许创建多个进程,但它还会带来以下通信问题:如何让多个进程相互通信,这里每个进程都有各自

2014-11-26 15:58:57 400

原创 gcc 编译时的 error trying to exec 'cc1plus': execvp: 没有那个文件或目录问题

今天在source insight上建了一个新文件 文件名为unorderedAB.C 这里的是C用的是大写的c,于是再用gcc编译出现这样的错误 error trying to exec 'cc1plus': execvp: 没有那个文件或目录,命令gcc unorderedAB.C -lpthread 用的是和文件名一样的,查了半天也没找出来。网上的回答基本都是:由于gcc版本过低或者是没

2014-11-25 18:42:45 11196 1

转载 同步通信与异步通信

异步通信”是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便

2014-11-25 16:35:04 394

原创 pthread_join的段错误

运行的时候能够打出三行AAAA

2014-11-24 20:34:07 7779 2

原创 标准IO--fgets()

函数原型  char *  fgets(char * s, int size, FILE *stream);    参数:         s: 字符型指针,指向存储读入数据的内存缓冲区的首地址        1. char s[100];               2.char *s=(char *)malloc(100 * sizeof(char)

2014-11-23 12:17:35 564 1

Linux设备驱动开发详解:基于最新的Linux 4.0内核

Linux设备驱动开发详解:基于最新的Linux 4.0内核 (宋宝华) PDF扫描版 目录齐全

2016-07-19

Java编程思想第4版.pdf (高清,非扫描版,目录齐全)

Java编程思想第4版.pdf (高清,非扫描版,目录齐全)

2015-12-29

空空如也

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

TA关注的人

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