上一页 1 ··· 3 4 5 6 7
摘要: 13个人围成一圈,从第一个人开始顺序报数1,2,3。凡报到3者退出圈子。找出最后留在圈子中的人原来的序号。#include<stdio.h>#include<stdlib.h> //malloc要用到 struct node{int data;struct node *next;};node *create(int n){node *h,*r,*p;h=(node *)malloc(sizeof(node));h->data=1; //从1开始r=h;int i;for(i=2;i<=n;i++){p=(node *)malloc(sizeof(node)) 阅读全文
posted @ 2011-09-19 08:39 auleaf 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减运算的意义是不一样的。例如: 例二: 1。 char a[20]; 2。 int *ptr=a; ... ... 3。 ptr++; 在上例中,指针ptr的类型是int*,它指向的类型是int,它被初始化为指向整形变量a。接下来的第3句中,指针ptr被加了1,编译器是这样处理 的:它把指针ptr的值加上了sizeof(int),在32位程序中,是被加上了4。由于地址是用字节做单位的,故ptr所指向的地址由原来的变量a的 地址向高地址方向增加了4个字节。由于char类型的长度是一个字节,所以,原来ptr是指向数组a的第0 号单元. 阅读全文
posted @ 2011-09-19 08:29 auleaf 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 方法1:#include<stdio.h>#include<string.h>int main(){char *src="hello,world";int len=strlen(src);char *dest=(char*)malloc(len+1); //要为\0分配空间char *p=dest;char *q=&src[len-1]; //指向最后一个字符while(len--!=0){*p++=*q--; //注意不要丢掉*号}p=0; //字符串尾部要加上\0printf("%s\n",de... 阅读全文
posted @ 2011-09-18 00:43 auleaf 阅读(5778) 评论(0) 推荐(0) 编辑
摘要: 一 内核的功能1 系统调用2 进程控制3 内存管理4 文件系统管理5 设备驱动程序二 编译linux内核进入到内核源代码目录:cd /usr/src/linux-2.6.15make configmake xconfigmake menuconfigmake三 裁剪linux:目的是创建嵌入式linux。裁剪的对象包括:1 linux内核2 库3 守护进程4 GUI四 内核裁剪1 选择合适的文件系统:ext2,ext3,jffs22 模块机制3 网络协议4 无用的驱动程序5 调试信息五 共享库裁剪:思想:通过提取和解析系统库内目标文件,符号的依赖关系,通过对这些依赖构造关系模型进行关系演算,根 阅读全文
posted @ 2011-09-17 23:04 auleaf 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 为什么需要中断?1 外设的处理速度一般慢于CPU。2 CPU不能一直等待外部事件,所以设备必须有一种方法来通知CPU它的工作进度,这种方法就是中断。在linux驱动程序中,为设备实现一个中断包含两个步骤:1 向内核注册中断2 实现中断处理函数共享中断就是将不同的设备挂到同一个中断信号线上。linux对共享的支持主要是为PCI设备服务。什么是中断处理程序,有何特别之处?中断处理程序就是普通的C代码。特别之处在于中断处理程序是在中断上下文中运行的,它的行为受到某些限制:1 不能向用户空间发送或接受数据2 不能使用可能引起阻塞的函数3 不能使用可能引起调度的函数 阅读全文
posted @ 2011-09-17 23:04 auleaf 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 1.什么是位段在大多数的计算机系统中, 一个字节是由八个更小的, 称作为位的单位组成的。位是比字节更小的单位。位只有两个值, 1 或 0 。因此, 存储在计算机存储器中的一个字节可以看成由八个二进制数字形成的串。例如, 一个存放值 36 的字节是八个二进制数字的串: 可以表示成 00100100。 存入值24 的字节可以表示成 00010100。有时, 我们希望不仅对字节进行操作, 也要能对位进行操作。例如, 用布尔真或假条件表示的标志, 在计算机中可用位来表示。但是, 说明一个用作标志的普通变量至少要用一个字节---8 位, 而在某些计算机系统中则可能是 16 位。 如果我们想在一个很大的表 阅读全文
posted @ 2011-09-16 23:26 auleaf 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 一 嵌入式系统定义:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能,可靠性,成本,体积,功耗有严格要求的专用计算机系统。二 嵌入式学习的重点:1 站在全局进行领会,不纠缠细节2 了解嵌入式系统开发的流程3 学习嵌入式系统开发的理念4 了解嵌入式系统开发的内容5 结合自身找到切入点,确定学习内容以及学习的方法6 最重要的是知道做什么,而不是怎么做三 嵌入式系统的特点:1 嵌入式系统低功耗,体积小,专用性强。嵌入式系统与PC机的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,能够把PC机中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计 阅读全文
posted @ 2011-09-15 23:49 auleaf 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 一 bootloader的概念bootloader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。二 bootloader的特征1 初始化硬件,特别是内存控制器2 提供linux内核的启动参数3 启动linux内核简化开发过程的一些特征:1 读写存储器2 通过串口/网口下载文件到RAM3 从RAM复制文件到FLASH中三 bootloader安装系统加电或复位后,所有的CPU通常都从CPU制造商预先安排的地址上取指令。比如, 阅读全文
posted @ 2011-09-15 23:41 auleaf 阅读(775) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7