编程语言
文章平均质量分 79
viewsky11
这个作者很懒,什么都没留下…
展开
-
简易恋爱游戏程序 C++
#include#includeusing namespace std;class Boy{public:bool House;int Age;char Name[20];public:Boy(char *name);bool Gift(char gift);int AnnualSalary(int salary);}; Boy::Boy(c原创 2012-04-21 10:02:13 · 2023 阅读 · 0 评论 -
深入分析 Linux 内核链表
本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和原创 2013-11-12 17:38:22 · 610 阅读 · 0 评论 -
open和fopen
open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大原创 2016-09-22 11:29:21 · 445 阅读 · 0 评论 -
基本线程编程(多线程编程笔记)
线程库下面简要论述了特定任务及其相关手册页。创建缺省线程如果未指定属性对象,则该对象为NULL,系统会创建具有以下属性的缺省线程: ■ 进程范围 ■ 非分离 ■ 缺省栈和缺省栈大小 ■ 零优先级 还可以用pthread_attr_init() 创建缺省属性对象,然后使用该属性对象来创建缺省线 程。 pthread_create语法 使用pthread_create(3C) 可以向当前原创 2016-12-01 10:56:44 · 4723 阅读 · 0 评论 -
基本线程编程(多线程编程笔记)
线程库下面简要论述了特定任务及其相关手册页。创建缺省线程如果未指定属性对象,则该对象为NULL,系统会创建具有以下属性的缺省线程: ■ 进程范围 ■ 非分离 ■ 缺省栈和缺省栈大小 ■ 零优先级 还可以用pthread_attr_init() 创建缺省属性对象,然后使用该属性对象来创建缺省线 程。 pthread_create语法 使用pthread_create(3C) 可以向当前原创 2016-12-01 10:58:14 · 798 阅读 · 0 评论 -
线程属性(多线程编程笔记)
线程属性前篇介绍了使用缺省属性创建线程的基本原理。本章论述如何在创建线程时设置 属性。 注– 只有pthreads 使用属性和取消功能。本章中介绍的API 仅适用于POSIX 线程。除此 之外,Solaris 线程和pthreads 的功能大致是相同的。属性对象通过设置属性,可以指定一种不同于缺省行为的行为。使用pthread_create(3C)创建 线程时,或初始化同步变量时,可以指定属原创 2016-12-01 14:53:08 · 2587 阅读 · 0 评论 -
makefile模板
模板# 下面的变量可以在shell 的环境变量里面指定。# 也可以象下面这样在 Makefile 里面指定。# CC=gcc # 编译器# CFLAGS=-Wall -Werror -g # 编译器参数# LD=gcc原创 2016-11-21 14:49:53 · 316 阅读 · 0 评论 -
用同步对象编程(多线程编程笔记)
同步对象是内存中的变量,可以按照与访问数据完全相同的方式对其进行访问。不同 进程中的线程可以通过放在由线程控制的共享内存中的同步对象互相通信。尽管不同 进程中的线程通常互不可见,但这些线程仍可以互相通信。 同步对象还可以放在文件中。同步对象可以比创建它的进程具有更长的生命周期。 同步对象具有以下可用类型: ■ 互斥锁 ■ 条件变量 ■ 读写锁 ■ 信号 同步的作用包括以下方面:原创 2016-12-04 18:23:46 · 547 阅读 · 0 评论 -
使用条件变量(多线程编程笔记)
条件变量属性使用条件变量可以以原子方式阻塞线程,直到某个特定条件为真为止。条件变量始终 与互斥锁一起使用。 使用条件变量,线程可以以原子方式阻塞,直到满足某个条件为止。对条件的测试是 在互斥锁(互斥)的保护下进行的。 如果条件为假,线程通常会基于条件变量阻塞,并以原子方式释放等待条件变化的互 斥锁。如果另一个线程更改了条件,该线程可能会向相关的条件变量发出信号,从而 使一个或多个等待的线原创 2016-12-06 12:27:56 · 4686 阅读 · 0 评论 -
多线程编程实例练习
pthread_join使一个线程等待另一个线程结束。代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。#include <pthread.h> #include <stdio.h> #include <stdlib.h>原创 2017-01-12 21:11:30 · 2479 阅读 · 0 评论 -
Linux内核中的双向循环链表学习
Linux内核中的双向循环链表学习原创 2013-11-12 17:31:31 · 906 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植---添加触摸屏驱动程序
在内核中添加触摸屏驱动程序编者:linux2.6.32并没有带S3C2440触摸屏驱动程序,需要自己实现。而在此的触摸屏驱动程序时作为一个输入设备来实现的。在linux中,对于输入设备而言,内核专为其设计了输入子系统,由核心层处理公共的工作。因为对于输入设备而言,只是中断、读键值/坐标值是与设备相关的,其余的如输入事件的缓冲区的管理以及字符设备驱动的file_operations接口则是输原创 2013-09-20 14:12:01 · 1268 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植 ---W35型LCD驱动移植
编者注:本移植主要步骤还是按照手册来,里面讲解了一些有用的基础知识。但书册上提供了集中屏幕的方案,我们这里主要就用一种,也就是开发板自带的W35型号。液晶驱动的源程序在src/drivers/video/目录下,主要是s3c2410fb.c这几个文件,详细的讲解可以参照《linux设备驱动开发详解》一书。对于这里的移植,一般是实现为platform形式,所以,对platform_device这个结原创 2013-09-20 14:02:00 · 1414 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植----- RTC移植
激活RTC 驱动编者:RTC时钟在S3C2440上的移植非常的简单,因为linux已经支持了,仍以platform的形式来实现,只要把RTC的platform_deivce进行注册,对内核进行简单配置就好。但对于RTC的驱动的实现,很有值得研究的地方。这一驱动典型的使用了,linux内核中驱动分层设计的思想,对这驱动的研究,有利于理解linux内驱动的布局。对于一般的驱动,比较复杂的,很难原创 2013-09-20 13:54:46 · 1131 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植---LCD背光控制
编者:lcd的背光控制,其实就是一个I/O口的驱动,其和led控制如出一辙,甚至更是简单,因为一般都是同时控制几个LED,这里就这是一个。标准的入门级驱动。这个不多说,按照手册来。这里的I/O端口是GPG4. 1 LCD 背光控制原理在mini2440/micro2440 开发板中,LCD 背光是通过CPU 的LCD_PWR 引脚来控制的,从原理图中可以看出,它对应于GPG4,原创 2013-09-20 13:59:29 · 1383 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植--修改linux开机logo
修改Linux LOGO 编者:linux的开机默认logo是一只可爱的小企鹅。这里我们可以把它换成我们自己喜爱的图片,只要将linux-2.6.32.2/drivers/video/logo/linux_logo_clut224.ppm替换成自己的图片即可。方法很简单,照着操作基本就没问题。以下按照手册介绍两种方法。注意在进行图片的转换时候,一定要先注意图片的大小,要和使用的液晶屏的大小原创 2013-09-20 14:04:07 · 1371 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植 --添加ADC驱动程序
添加ADC驱动程序编者:由于内核没有支持S3C2440的ADC驱动,在这里增加ADC驱动。友善的手册对这个介绍的还算相当详细,所以直接按照手册进行。里面的代码也有详细的注释。ADC驱动属于字符型设备,在这里以杂项设备也有的翻译为混杂设备,进行实现。 1 、关于S3C2440 的ADC 和触摸屏接口Linux-2.6.32.2 内核并没有提供支持S3C2440 的ADC原创 2013-09-20 14:08:23 · 1207 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植---触摸屏工作原理以及驱动程序详细分析
编者:这部分还是比较长的,因此没有放在上个移植里面。这里主要说触摸屏的工作原理,以及对上述驱动程序代码的简单分析。分析中参考了网上的很多资料。感谢原作者的无私奉献,因为涉及多篇,在此就没有注出原作的链接。 本文分为三个部分,第一部分讲叙硬件知识,包括触摸屏的原理以及SCC2440 SOC 上的触摸屏是如何工作的。第二部分分析输入设备子系统的框架,并进行相应的代码分析。第三部分利原创 2013-09-20 14:15:40 · 953 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植 --配置USB外设
编者:因为LINUX内核对S3C2440的Host驱动的已经支持,而且支持的外设相当的丰富,所以这一部分只是进行配置就可以使用。因为配置的东西较多,没有给出详细的截图,看手册上介绍的就很明白。 1 配置和测试USB 键盘、扫描器和鼠标 在内核源代码目录的终端输入:make menuconfig,依次选择如下子菜单项: Device Drivers --->原创 2013-09-20 14:19:13 · 1261 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植----移植Nand驱动并修改分区信息
1 Linux-2.6.32.2 内核所支持的Nand Flash 类型Linux2.6.32.2 已经自带了大部分Nand Flash 驱动, 在linux-2.6.32.2/drivers/mtd/nand/nand_ids.c 文件中,定义了所支持的各种Nand Flash 类型。2 修改Nand Flash 分区表但是系统默认的分区不是我们所需的,所以要自已修改,除此之外,原创 2013-09-20 13:42:38 · 939 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植----移植yaffs2
1、获取yaffs2 源代源码现在大部分开发板都可以支持yaffs2 文件系统,它是专门针对嵌入式设备,特别是使用nand flash 作为存储器的嵌入式设备而创建的一种文件系统,早先的yaffs 仅支持小页(512byte/page)的nand flash,现在的开发板大都配备了更大容量的nand flash,它们一般是大页模式的(2K/page),使用yaffs2 就可以支持大页的na原创 2013-09-20 13:46:42 · 1273 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植--移植DM9000 网卡驱动
1 设备资源初始化Linux-2..6.32.2 已经自带了完善的DM9000 网卡驱动驱动(源代码位置:linux-2.6.32.2/drivers/net/dm9000.c),它也是一个平台设备,因此在目标平台初始化代码中,只要填写好相应的结构表即可,具体步骤如下:首先添加驱动所需的头文件dm9000.h:#include 再定义DM9000 网卡设备的物理原创 2013-09-20 13:49:22 · 1101 阅读 · 0 评论 -
rpcgen的简单讲解及例子程序
rpcgen 简介rpcgen可以自动生成RPC服务器程序的大多数代码,它的输入为一个规格说明文件,它的输出为一个C语言的源程序。规格文件(*.x)包含常量、全局数据类型以及远程过程的声明。Rpcgen产生的代码包含了实现客户机和服务器程序所需要的大部分源代码。他包括参数整理、发送RPC报文、参数和结果的外部数据表示以及本地数据表示的转换等。不过在由rpcgen生成的源文件中,没有过程的具体实...原创 2018-05-28 11:14:33 · 3793 阅读 · 0 评论