自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (3)
  • 收藏
  • 关注

转载 Linux串口编程

串口概述常见数据通信方式:并行通信,串行通信UART的主要操作:   >数据发送及接受   >产生中断   >产生波特率   >Loopback模式   >红外模式   >自动流控模式串口参数的配置主要包括:波特率、数据位、停止位、流控协议。   linux中的串口设备文件放于/de/目录下,串口一,串口二分别为"/dev/ttyS0","/dev/ttyS

2012-06-30 09:54:24 877 3

转载 assert()函数用法总结

assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression );  assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badpt

2012-06-30 09:23:04 624

原创 第十二章 POSIX 线程(三)

用互斥量进行同步       另一种用在多线程程序中的同步访问方法是使用互斥量。它允许程序员锁住某个对象,使得每次只有一个线程访问它。为了控制对关键代码的访问,必须在进入这段代码之前锁住一个互斥量,然后在完成操作之后解锁它。#include int pthread_mutex_init(pthread_mutex_t *mutex,  const pthread_mutexattr_t

2012-01-04 21:57:02 660

转载 linux内核中Kconfig文档的作用

linux内核中Kconfig文档的作用2.6内核的源码树目录下一般都会有两个文文:Kconfig和Makefile。分布在各目录下的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成

2011-12-29 11:15:31 646

转载 Linux内核Makefile文件

=== 1 概述     === 2 角色分工     === 3 内核编译文件        --- 3.1 目标定义        --- 3.2 内嵌对象 - obj-y        --- 3.3 可加载模块 - obj-m        --- 3.4 导出符号        --- 3.5 库文件 - lib-y        --- 3.6 目录递归

2011-12-29 11:11:52 205

原创 第十二章 POSIX 线程(二)

信号量      信号量是一个特殊类型的变量,它可以被增加或减少,但对其的关键访问被保证是原子操作,即使在一个多线程程序中也是如此。这意味着若果一个程序中有两个(或更多)的线程试图改变一个信号量的值,系统将保证所有的操作都将依次进行。但如果是普通变量,来自同一程序中的不同线程的冲突操作导致的结果将是不确定的。       信号量--二进制信号量,它只有 0 和 1 两种取值。还有一种更通用

2011-12-27 19:38:03 640

原创 第十二章 POSIX 线程(一)

在一个程序中的多个执行线路就叫做线程(thread)。更准确的定义是:线程是一个进程内部的一个控制序列。        线程有一套完整的与其相关的函数库调用,它们中的绝大多数函数名都是以 pthread_ 开头,为了使用这些函数库调用,我们必须定义宏 _PEENTRANT,在程序中包含头文件 pthread.h ,并且在编译程序的时需要用选项 -lpthread 来链接线程库。pthr

2011-12-21 17:30:42 652

原创 第十一章 进程和信号(三)

一个健壮的信号接口        我们已经对用 signal 和其相关函数来生成和捕获信号做了比较深入的介绍,因为它们在传统的 Unix 编程中很常见。但 X/Open 与 Unix 规范推荐了一个更新和更健壮的信号编程接口:sigaction 。它的定义如下所示:#include int sigaction ( int sig, const struct sigaction *a

2011-12-21 14:57:49 732

原创 第十一章 进程和信号(二)

信号       信号是UNIX与Linux系统响应某些条件而产生的一个事件。接收到该信号的进程会相应地采取一些行动。我们用术语(raise)表示一个信号的产生,使用术语(catch)来表示接收到一个信号。信号是由于某些错误条件而生成的,如内存段冲突、浮点处理器错误或非法指令。他们由 shell 和终端处理器生成来引起中断,它们还可以作为在进程间传递消息或修改行为的一种方式,明确地由一个进

2011-12-20 17:30:07 1514

原创 第十一章 进程和信号(一)

我们可以通过调用fork来创建一个新进程。这个系统调用会复制当前进程,在进程表中创建一个实体,而且与当前进程具有相同的属性。新进程与原始进程几乎是相同的,执行相同的代码,但是具有其自己的数据空间,环境与文件描述符。#include

2011-12-08 18:42:39 742

转载 c语言中 static 用法

static在c里面可以用来修饰变量,也可以用来修饰函数。一、修饰变量变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。int a ;int main(){    int b ;     int c* = (int *)malloc(sizeof(int));}a是全局变量,b是栈变量,c是堆变量。stat

2011-11-17 09:21:58 607

原创 指针与二维数组

一.、二维数组元素的地址         定义如下二维数组:        int a[3][4] = { {0,1,2,3},  {4,5,6,7},  {8,9,10,11} };         a为二维数组名,此数组有3行4列, 共12个元素。但也可这样来理解,数组a由三个元素组成:a[0], a[1], a[2]。而它们中每个元素又是一个一维数组, 且都含有4个元素

2011-11-01 10:37:28 4666

原创 c语言 continue break

#include int main(){ int i; while(1) { printf("ok0\n"); for (i = 0; i < 5; i++) { printf("ok1\n");

2011-09-22 17:36:39 808

原创 指针数组

一个一维指针数组的定义:int *ptr_arry[10]       指针数组中的每一个元素均为指针,即有诸形如 “ *ptr_arry[i] ” 的指针。       由于数组名本身也是一个指针,因此指针数组中的元素亦可以表示为 “ *( *(ptr_ar

2011-09-15 10:10:58 445

原创 基于UDP协议的网络程序

服务器#include #include #include #define MAXLINE 80 #define SERV_PORT 4101 int main(void) { struct sockaddr_in servaddr, cliadd

2011-08-10 11:17:31 509

原创 基于TCP协议的网络程序

服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返

2011-08-10 10:38:11 706

原创 Socket 编程

IPV4套接口地址结构以“sockaddr_in”命名sockaddr_in(在中定义):struct sockaddr_in {short int sin_family; /* Address family */unsigned short int sin_po

2011-08-10 10:29:31 498

转载 C语言内存分配

一、一个经过编译的 C/ C++ 的程序占用的内存分成以下几个部分:1 、栈区( stack ):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。2 、堆区( h

2011-08-09 09:02:44 796

原创 Linux 时间函数

时间类型:Coordinated Universal Time(UTC):世界标准时间,也就是大家所熟悉的格林威治标准时间(Greenwich Mean Time, GMT)Calender Time:日历时间,是用一个标准时间点到此时经过的秒数来表示

2011-08-08 14:47:28 592

原创 access(判断是否具有存取文件的权限)

access(判断是否具有存取文件的权限)相关函数 stat,open,chmod,chown,setuid,setgid表头文件 #include定义函数 int access(const char * pathname,int mode);函数说明 acces

2011-08-08 11:34:43 8698

原创 strcpy strncpy (拷贝字符串)

<br /> <br />strcpy(拷贝字符串)<br />表头文件 #include<string.h><br />定义函数 char *strcpy(char *dest,const char *src);<br />函数说明 strcpy()会将参数src字符串拷贝至参数dest所指的地址。<br />返回值    返回参数dest的字符串起始地址。<br />附加说明 如果参数dest所指的内存空间不够大,可能会造成缓冲溢出(buffer Overflow)的错误情况,在编写程序时请特别留意,或

2011-02-15 11:45:00 1544

原创 strtok(分割字符串)

<br /> <br />strtok(分割字符串)<br /> <br />表头文件 #include<string.h><br />定义函数 char * strtok(char *s,const char *delim);<br />函数说明 strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中              发现到参数delim的分割字符时则会将该字符改为/0 字符。在第一次调用时,strtok()必需

2011-02-14 11:54:00 1304

原创 getenv(取得环境变量内容)

<br />表头文件 #include<stdlib.h><br />定义函数 char * getenv(const char *name);<br />函数说明 getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环<br />             境变量的格式为name=value。<br />返回值 执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。<br />实例:<br />shell脚本 test.

2011-01-13 09:48:00 1813

原创 ubuntu 10.04下建立nfs启动文件系统

一安装nfs    前面的博客里有讲二 配置nfs     yelei@ubuntu:~$ sudo dpkg-reconfigure portmap  (对Should portmap be bound to the loopback address? 选N)     yelei@ubuntu:~$ sudo gedit /etc/default/portmap    (清除 "-i 127.0.0.1")三 配置hosts.deny     yelei@ubuntu:~$ sudo gedit /etc

2010-10-02 15:39:00 1250

原创 ubuntu 10.04 usb转串口

<br />ubuntu 10.04下usb转串口设置<br /> <br />在安装好minicom后<br />1.插入usb转串口线,占到对应的串口<br />yelei@ubuntu:/media$ ls -l /dev/ttyUSB*<br />crw-rw---- 1 root dialout 188, 0 2010-10-02 14:04 /dev/ttyUSB0<br /> <br />2.配置<br />yelei@ubuntu:~$ sudo minicom -s<br />(1

2010-10-02 14:20:00 808

原创 LDD3学习笔记(一) --hello world模块

<br /> <br />Hello world 源程序<br />#include <linux/init.h>#include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "Hello, world!/n"); return 0;}static void hello_exit(void){ printk

2010-09-27 22:13:00 1237

转载 配置文件/etc/inittab详解

二、运行initinit的进程号是1,从这一点就能看出,init进程是系统所有进程的起点,Linux在完成核内引导以后,就开始运行init程序,。init程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件,它有若干行指令所组成。在Redhat系统中,inittab的内容如下所示(以“###"开始的中注释为笔者增加的):  #  # inittab    This file describes how the INIT process should set up  #    

2010-09-08 16:12:00 761

原创 getchar( )与putchar( )

<br />getchar()---由标准输入设备内读进一字符<br />表头文件   #include <stdio.h><br />定义函数   int getchar (void)<br />函数说明  getchar()用来从标准输入设备中读取一个字符。然后将该字符从unsigned char转换成int后返回<br />返回值     getchar()会返回读取到的字符,若返回EOF则表示有错误发生<br />附加说明  getchar()非真正函数,而是gets(stdin)宏定义。<br /

2010-08-16 15:50:00 978

原创 字符串输出函数 puts( ) fputs( ) printf( )

<br />C语言有三个勇于输出字符串的标准库函数 puts( ) fputs( ) printf( )<br />puts( )函数的使用很简单,只需要给出字符串参数的地址。注意,每一个字符串都单行显示,与printf()不同,puts()显示字符串时自动在其后添加一个换行符。<br /> /* put_out.c -- using puts() */#include <stdio.h>#define DEF "I am a #defined string."int main(void){

2010-08-16 15:34:00 2447

原创 字符串输入函数gets( ) fgets( ) scanf( )

<br />C库提供了三个读取字符串的函数:gets( )  fgets( )  scanf( )。<br />gets()---get string 从系统的标准输入设备(通常是键盘)获得一个字符串。因为字符串没有预定的长度,所以gets()需要知道输入何时结束。解决办法是在读字符串直到遇到一个换行符(/n),按回车键可以产生这个字符。它读取换行符之前(不包括换行符)的所有字符,在这些字符后加一个空字符(/0)。它会丢弃换行符。<br />定义函数   char *gets(char *s)<br />返

2010-08-16 15:22:00 5142

原创 字符串

字符串( character string )是以空字符(/0)结尾的char数组。字符串常量(string constant),是指位于一对双引号中的任何字符。双引号里德字符加上编译器自动提供的结束标志/0字符,作为一个字符串被存储在内存里。// strings.c -- stringing the user along#include #define MSG "You must have many talents. Tell me some."

2010-08-16 14:41:00 554

原创 条件运算符?:

<br />         expression1 ? expression2 : expression3<br /> <br />     如果expression1为真(非零),整个条件表达式的值和expression2的值相同。如果expression1为假(零),整个条件表达式的值等于expression3的值。<br /> <br />          x = (y < 0) ? -y : y<br /> <br />     如果y小于0,那么x=-y;否则,x=y。

2010-08-09 11:12:00 96

转载 [转]Android的源代码结构

Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:.|-- Makefile        (全局的Makefile)|-- bionic          (Bionic含义为仿生,这里面是一些基础的库的源代码)|-- bootloader      (引导加载器)|-- build           (build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)|-- dalv

2010-07-23 08:55:00 512

转载 C 语言 implicit declaration of function 错误原因

<br />关于 implicit declaration of function 一点经验之谈<br /><br />用gcc编译c程序的时候 经常会出现<br />implicit declaration of function '...' 的warning<br /><br />偶经过这几天的经验,发现主要有2种情况会产生这种warning<br /><br />1   没有把函数所在的c文件生成.o目标文件<br />2   在函数所在的c文件中定义了,但是没有在与之相关联的.h

2010-07-22 14:23:00 52883

转载 swap分区的知识

swap分区到底有什么用呢?  Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。  Swap的原理是一个较复杂的问题,需要大量的篇幅来说明。在这里只作简单的介绍,在以后的文章中将和大家详细讨论Swap实现的细节。  众所周

2010-07-21 11:30:00 651

原创 ubuntu tftp服务器配置

1、安装相关软件包:Ubuntu tftp(服务端),tftp(客户端),xinetd<br />           yelei@ubuntu: sudo apt-get install tftpd tftp xinetd  2、建立配置文件<br />      在/etc/xinetd.d/下建立一个配置文件tftp<br />          yelei@ubuntu:/etc/xinetd.d$ sudo gedit tftp<br />     在文件中输入

2010-07-20 18:00:00 941

原创 qq for ubuntu 10.04总是掉线

<br />用VI编辑器修改/usr/bin/qq,添加一个环境变量:<br /><br />命令:sudo vi /usr/bin/qq<br />会出现下面的文件:<br />#!/bin/sh<br />cd /usr/share/tencent/qq/<br />./qq<br /><br />我们要向其中添加:export GDK_NATIVE_WINDOWS=true<br /><br />修改后:<br /><br />#!/bi

2010-07-16 09:27:00 1239

原创 QT下应用程序开发

<br />一、应用程序的编辑与编译<br />从最简单也是最著名的Hello Word来学习QT。首先创建helloword.cpp<br />  # mkdir hello<br /># vi helloword.cpp<br />     #include <QApplication>   <br />#include <QLabel>     <br />int main(int argc, char *argv[])   <br />{   <br />           QApplicatio

2010-07-15 14:17:00 1012

原创 QT下触摸屏和键盘接口移植

一、触摸屏移植     1、安装及编译tslib 1.4          将tslib 1.4.tar.ba2复制到/home 目录下解压缩     # cd /home/tslib     # ./autogen.sh     # echo ac_cv_func_malloc_0_nonnull=yes>arm-linux.cache     # ./configure --prefix=/usr/local/tslib --host=arm-linux --cache-file=arm-linux.c

2010-07-15 14:12:00 3574 1

原创 qt-embedded-linux-opensource-src-4.5.2 交叉编译

交叉编译环境搭建1、交叉编译器和QT 版本交叉编译器版本    arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bzQT 版本    qt-embedded-linux-opensource-src-4.5.2.tar.bz22、交叉编译器的安装    # tar jxvf arm-2007q3-51-arm-none-linux-gnueabi-i686.tar.bz –C /usr/local/arm1、  将QT 源码复制到/home目录下解压缩# tar

2010-07-15 10:08:00 2567 1

Hi3519v101 040开发包

Hi3519_V101R001C01SPC040.rar,文件里为百度网盘下载链接

2018-04-03

Hi3519_V101R001C01SPC030

海思 Hi3519平台开发包 Hi3519_V101R001C01SPC030.rar

2018-03-30

Hi3536 V100R001C02SPC060

海思Hi3536平台开发包 Hi3536 V100R001C02SPC060.rar

2018-03-30

空空如也

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

TA关注的人

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