自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

转载 Linux 进程间通信 ---- 信号(signal)

本文转载至:https://www.cnblogs.com/hoys/archive/2012/08/19/2646377.html 【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理...

2019-07-30 21:12:02 951

原创 Linux 进程环境 ---- 僵尸进程、孤儿进程

僵尸进程产生的原因: 在UNIX系统中,一个进程结束了,但是他的父进程没有等待(调用wait/waitpid)他,那么他将变成一个僵尸进程。僵尸进程是一个早已死亡的进程,但在进程表(process table)中仍占一个位置。僵尸进程查看方式: 1、通过top命令查看zombie字段,能显示僵尸进程的个数 2、通过ps aux/-ef 参数查看僵尸进程的具体信息,带有...

2019-07-22 19:19:17 176

原创 Linux 进程间通信 ---- 共享内存

共享内存: 共享内存,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到他们自己的地址空间中,所有的进程都可以访问共享内存中的地址。如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。但是他不提供任何同步功能...

2019-07-21 10:38:21 214

原创 Linux 进程间通信 ---- 命名管道(FIFO文件/name pipe)

命名管道出现的背景: 命名管道(FIFO文件/name pipe),之前提到的管道,虽然能够实现进程间的通信,但是局限性也很明显。首先,这个管道只能在具有血缘关系的进程之间通信;第二,他只能实现一个进程写,一个进程读,而如果需要两者同时进行时,就得重新打开一个管道。 为了使任意两个进程之间能够通信,就提出了命名管道命名管道的特点: 1、与管道的区别:提供了一个路径名与...

2019-07-21 10:35:45 927

原创 Linux 进程间通信 ---- 管道

管道(pipe): 常说的管道(pipe)也叫匿名管道,管道的作用于有血缘关系的父子进程或者兄弟进程,通过fork来传递。调用pipe()函数时,会再内核开辟一块缓冲区(称为管道)用于通信,大小为64KB(手动测出来的,只写不读,最多能写65520字节),它有一个读端一个写端,然后通过fd参数传出给用户程序两个文件描述符,fd[0]指向读端,fd[1]指向写端。所以管道在用户程序看起来就像...

2019-07-21 10:31:44 156

原创 Linux 进程环境 ---- 进程组、会话、前台进程组、后台进程组、终端控制

进程组与会话的相关概念: 进程组是一组相关关进程的集合,会话是一組相关进程组的集合。进程都有父进程,父进程也有父进程,这就形成了一个以ini进程为根的家族树。除此以外,进程还有其他乘次关系:进程、进程组、会话。进程组合会话在进程之前形成了两级的层次:进程组是一组相关进程的集合,会话是一组相关进程组的集合。 这样说来,一个进程会有如下ID: .PID:进程的唯一标识。对于多...

2019-07-21 10:29:16 1400 2

原创 Linux 进程环境 ---- 守护进程

守护进程概念: Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程包括系统日志进程syslogd、 web服务器httpd、邮件服务器sendmail和...

2019-07-21 10:20:32 263

翻译 模块学习之————LED驱动

fl2440字符设备led驱动首先要明白字符设备驱动注册的基本流程当我们调用insomd命令加载驱动后,驱动程序从module_init函数开始执行:硬件初始化 -> 申请主次设备号 -> 定义fops(file_operations)结构体 -> 申请cdev结构体并把fops结构体嵌入cdev结构体中与之绑定 -> cdev字符设备的注册。有一点需要明确的是,在Linux内

2016-10-13 03:59:12 831

原创 QT学习之路————QT程序在开发板上显示 中文字体

前言:真的蛋疼,本来是挺简单的,但是久了不用就会忘记,所以写个博客记录一下咯就只有一点:在开发板上执行QT程序的时候加上一个参数:-fn unifont例如:./xatch -qws -fn unifont    这样就能显示中文啦

2016-07-20 13:18:21 1424

原创 QT学习之路————使用QT自带的QSqlDatabase类简单操作sqlite数据库

前言:这是用QT自带的QSqlDatabase类操作sqlite数据库,并且用tabView 显示数据库查询结果一、新建一个QT工程二、在工程里添加一个tabView控件,还有一个Button控件三、下面就是.cpp文件的代码,比较简单就不一步一步介绍了#include "dialog.h"#include "ui_dialog.h"#include

2016-07-19 15:32:42 8419

原创 QT学习之路————C语言操作sqlite数据库

前言:首先在这里并不是用QT自带的QSqlDatabase类来操作数据库,而是用纯C语言操作,因为QT是支持C/C++混合编程的,若想看QSqlDatabase类操作数据库,请查看我的博客。一、新建个QT工程二、在.Pro文件里添加sqlite3库文件链接LIBS     += -lsqlite3三、在.cpp文件中添加头文件#include

2016-07-19 15:17:41 1092

翻译 数据库学习之————sqlite3数据库常用函数

1、打开数据库: API函数: int sqlite3_open( const char *filename, /* 数据库文件路径(UTF-8编码) */ sqlite3 **ppDb /* 输出: SQLite 数据库句柄 */ ); int sqlite3_open16( const void *filename

2016-07-14 13:08:43 1705

原创 Linux嵌入式之————Linux下安装SQLite3数据库

一、安装sqlite31、下载最新版的sqlite3,网址:http://www.sqlite.org/download.html下载sqlite-autoconf-3130000.tar.gz2、下载成功后解压并安装tar -zxvf sqlite-autoconf-3130000.tar.gzcd sqlite-autoconf-3130000./configurem

2016-05-24 22:08:57 2594 1

原创 Linux嵌入式之————网络编程socket

1、socket简介Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。门面模式,用自己的话说,就是系统对外界提供单一的接口,外部不需要了解内部的实现socket起源于Unix,而

2016-04-15 20:40:11 725

原创 QT学习之路————常用控件、常用操作(持续更新中。。。)

TextEdit控件:获取控件中的行数(PS:其实是读取控件中有多少个换行符)int textline=ui->textEdit->document()->lineCount();读取首行内容: QTextCursor txtcur= ui->textEdit->textCursor(); txtcur.setPosition(0); txtcu

2016-03-28 13:53:43 3616

原创 Linux下的时间函数:获取和设置时间的函数

/********************************************************************************* * Copyright: (C) 2016 huangan * All rights reserved. * * Filename: settime.

2016-03-21 21:10:24 448

原创 QT学习之路————重写键盘事件

1、新建Gui工程2、在头文件中添加:#include protected: void keyPressEvent(QKeyEvent * e);3、在.cpp中重写键盘事件void Dialog::keyPressEvent(QKeyEvent *e){ if(e->key()==Qt::Key_NumberSign) ui->BJ->setFocus

2016-03-21 20:44:17 8739 1

原创 CentOS6.5中修改yum源

前面因为yum源的问题,下载东西都下载不了,然后就百度了一下得到一个修改yum源的方法,在这里记录一下1. cd /etc/yum.repos.d2. mv CentOS-Base.repo CentOS-Base.repo.backup3. wget http://mirrors.163.com/.help/CentOS6-Base-163.repo4. mv

2016-03-19 20:36:49 534

原创 QT学习之路————定时器的使用

1、新建一个Gui工程在UI界面上添加一个lable控件2、在头文件中添加如下内容: #include private slots: void timerupdate();3、在.cpp文件的构造函数中添加:QTimer *timer=new QTimer(this); //创建一个定时器connect(timer,SIGNAL(timeout()),th

2016-03-18 15:07:33 3023

原创 QT学习之路————QT窗体去掉标题栏后不能移动的问题

QT程序去掉标题栏后我又哭了,因为它不能移动了,这就有点操蛋了,于是我就百度了一下,参照了别人的做法,最后实现了无标题栏窗口的移动,顺便记录下来。具体方法如下:(1)在头文件中添加如下代码:#include protected: void mousePressEvent(QMouseEvent *e); void mouseMoveEvent(QMouseEvent *e

2016-03-16 20:03:36 4211 2

原创 QT学习之路————QT程序在开发板上旋转

这是一个Transformed:driver not fond1、在虚拟机下搭建QT编译环境(既安装:qt-everywhere-opensource-src-4.6.4)在虚拟机刚开始搭建QT编译环境的时候,记得要在qtconfigure.sh脚本里添加ransformed驱动23 -qt-gfx-transformed \ 24 -qt-gfx-linuxfb \2、在

2016-03-14 22:57:11 1562

原创 QT学习之路————QT界面的美化

1、隐藏窗口的标题栏(包括最小化、最大化、关闭按钮)只需要在构造函数中添加   setWindowFlags(Qt::FramelessWindowHint);  函数即可

2016-03-13 15:16:40 29379 1

原创 QT学习之路————如何创建一个线程

1、简介    Qt中的QThread类提供了平台无关的线程。一个QThread代表了一个在应用程序中可以独立控制的线程,它与进程中的其他线程分享数据,但是是独立执行的。相对于一般的程序都是从main()函数开始执行,QThread从run()函数开始执行。默认的,run()通过调用exec()来开启事件循环。要创建一个线程,需要子类化QThread并且重新实现run()函数。    每一

2016-03-13 14:04:13 13761 1

原创 SIM900B GPRS模块 ————PPP拨号上网

1、编辑内核,使其支持PPP拨号上网Device Drivers ---> Network device support --->

2016-03-13 13:17:43 937

原创 SIM900B GPRS模块————打电话、发短信、接电话

1、简介 SIM900B是一款新型无线模块,属于B2B类型的四频GSM/GPRS模块,采用非常强大的AMR926EJ-S单芯片处理器,可完全兼容于SIM300/340 。其性能稳定,外观小巧,性价比高,能满足您的多种需求。SIM900B采用工业标准接口,工作频率为GSM/GPRS 850/900/1800/1900MHz,可以低功耗实现语音、SMS、数据和传真信息的传输。2、A

2016-03-13 12:03:14 6818 1

原创 fl2440开发板上用其他文件系统格式化除根分区以外的分区————例ubifs文件系统格式化apps分区2、

1、开发板上查看有关mtd和ubi的接口:cat /proc/mtd:可以看到当前系统的各个mtd情况,cat /proc/partitions: 分区信息,有上面的类似ls /dev/*, 查看设备节点2、在开发板上mtd3加载ubifs文件系统(1)ubiattach /dev/ubi_ctrl -m  3 -----将mtd3与ubi建立连接系

2015-11-01 19:10:42 678

原创 在开发板上移植是第三放程序————例lrzsz

移植第三方程序有几种情况一 .如果源码包有Makefile文件,直接改Makefile,修改CC, AS, LD, CFLAGS,INST_PATH..二.源码包没有Makefile文件,但有configure/config文件:1.设置 CC, LD ,AS, LDFLAGS ,AR,RANLIB等环境变量,如下面的lrzsz命令移植中的CC=/opt/build

2015-11-01 15:40:13 518

原创 移植UBI的5号错误————UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 0:512, written 0 byte

UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 0:512, written 0 bytes查阅include/asm-generic/error.h发现5号错误的定义为“#define EIO  5 /* I/O error */”。在http://www.linux-mtd.infradead.org/f

2015-10-31 19:55:22 1984

原创 移植tslib库出现ts_open: No such file or directory

执行./ts_calibrate 时出现ts_open: No such file or directory  ts_open: No such file or directory  那就是环境变量export TSLIB_TSDEVICE=/dev/event0 的路径不对 改好了就行了

2015-10-30 17:46:02 5116

原创 centos安装dropbear ————没有发现zlib库

1.安装dropbear之前,先安装zlib库yum install zlib* gcc make不然会出现missing install zlib

2015-10-30 10:15:03 432

原创 执行做jffs2的build.sh脚本错误————/usr/bin/ld: cannot find -lc

执行gcc静态编译程序时报错:/usr/bin/ld: cannot find -lccollect2: ld returned 1 exit statusmake: *** [gcc_dry2] Error 1原因:程序链接需要静态库,系统没有安装静态库导致报错解决:安装静态库#sudo  yum install glibc-static

2015-10-30 10:12:12 486

原创 QT学习之路(二)————Linux下搭建qt程序编译环境、开发板上搭建qt程序运行环境

为了搭建这个环境,我把我的虚拟机都重装了,最后终于成功!!!!!!人都不不好了。。好了 话不多说,切入正题。。注意:搭建环境之前,先要安装tslib库,安装方法详见我的博客:http://blog.csdn.net/huangan_xixi/article/details/49448929否则会出现错误。。。我用的QT库的版本是:qt-everywhere-opensource-s

2015-10-28 19:12:29 3490

原创 QT学习之路(一)————移植tslib库到开发板

这东西我做了好久, 也出现了很多问题,不把它写到博客上真的是对不起我自己,所以,我一做完就来写博客了!注意:移植tslib库之前要先把开发板的屏幕驱动移植好,屏幕驱动的移植详见我的博客:http://blog.csdn.net/huangan_xixi/article/details/49430807第一步、下载源码我用的是tslib-1.4.gz.bz2版本的(其实我也是在学长的指导

2015-10-27 15:28:33 3024

原创 ARM9开发板FL2440移植Linux-3.0内核————触摸屏的移植

因为内核linux-3.0已经有支持触摸屏的驱动,我们只需要将略做修改使其支持s3c-2440就行了很简单;第一步修改源代码:1、vim arch/arm/mach-s3c2440/mach-smdk2440.c添加头文件  #include 找个合适的位置添加以下结构体/*  Touch Screen driver info add by liucheng

2015-10-26 22:22:25 1318

原创 Linux学习过程中做过的东西总结

1、移植了u-boot;2、制作的根文件系统;3、移植了Linux-3.0内核;4、给内核添加dm9000网卡驱动;5、给内核添加LCD驱动;6、给内核添加MMC支持;7、给内核添加USB驱动;8、给内核添加触屏驱动;

2015-10-26 11:01:29 371

原创 ARM9开发板FL2440移植Linux-3.0内核————MMC和LCD驱动

一、mmc支持很简单,linux内核中提供了,所以直接选上这些选项,重新编译就行了。 Device Drivers  ---> MMC/SD/SDIO card support  --->    MMC block device driver    Samsung S3C SD/MMC Card Interface support二、添加LCD支持

2015-10-25 20:33:23 602

原创 ARM9开发板FL2440移植Linux-3.0内核————dm9000网卡的移植

第一步、修改内核代码vim arch/arm/mach-s3c2440/mach-smdk2440.c#include   //添加DM9000网卡的头文件并添加如下代码/* add DM9000 ethernet drivers ,whitch is bodify by liuchengdeng */#define DM9000_BASE    (S3C2410_

2015-10-25 20:24:03 471

原创 Linux一些命令总结

启动及关闭iptables  设置iptables开机启动chkconfig iptables onchkconfig iptables off即时启动iptablesservice iptables start即时关闭iptablesservice iptables stopdu -h  [文件名]   //查看文件大小

2015-10-25 20:19:38 365

原创 ARM9开发板FL2440移植Linux-3.0内核————添加USB驱动

前言:         本开发板内核版本为Linux-3.0此文章只是介绍USB移植的过程,对于Linux内核自带驱动的移植一般分为两个步骤:1、修改代码,将USB初始化;2、修改Linux内核配置,使其支持USB第一步、对代码的操作进入内核的mach-smdk2440.c  (路径为:linux-3.0/arch/arm/mach-s3c2440/mach-smdk244

2015-10-25 19:14:31 1532 1

socket.zip

简单网络socket编程,用于进程之间通信,在Linux下由客户端连接服务器端获取当前系统时间,压缩包内有两个.C文件,date_time_client.c作为客户端,date_time_server.c作为服务器端,编译运行就好,但是运行后要记得传参数,服务器端记得直接运行,客户端要传本机ip地址

2016-04-15

空空如也

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

TA关注的人

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