木有寸557

 

2013年7月30日

预处理器之 define

摘要: 编译一个C程序涉及很多步骤。其中第一步骤被称为预处理阶段。C预处理器在源代码编译之前对其进行一些文本性质的操作。它的主要任务包括删除注释、插入被#include指令包含的内容、定义和替换由#define指令定义的符号及确定代码的部分内容是否应该根据一些条件编译指令进行编译。#define1.#define name stuff有这条指令以后,每当有符号name出现在这条指令之后,预处理器就会把它替换成stuff。2.#define DEBUG_PRINTF printf(" File output\n");这条指令后面加了一个封号。如果出现以下代码if( ..... ) D 阅读全文

posted @ 2013-07-30 23:00 小猪_你快跑 阅读(322) 评论(0) 推荐(0) 编辑

2013年7月28日

BootLoader 概述

摘要: BootLoader就是在操作系统运行之前运行的一段小程序,通过这段小程序,可以初始化硬件设备、建立系统的内存空间映射图,从而将系统的软件硬件环境带到一个合适的状态,以便为调用操作系统内核准备好正确的环境。 最终BootLoader把操作系统内核映像加载到RAM中,并将系统控制权交给它。 大多数BootLoader都包含2种不同的操作模式,即启动加载模式和下载模式,二者的区别只对开发人员有意义,最终从用户角度看,BootLoader的作用就是加载操作系统 阅读全文

posted @ 2013-07-28 08:41 小猪_你快跑 阅读(174) 评论(0) 推荐(0) 编辑

2013年7月25日

u-boot编译浮点匹配问题

摘要: 上午用arm-linux-gcc-3.3.2编译u-boot-1.1.6,我按照教程将 u-boot-1.1.6/cpu/arm920t/config.mk 中的软浮点运算舍去。# // 原u-boot-1.1.6/cpu/arm920t/config.mk# (C) Copyright 2002# Gary Jennejohn, DENX Software Engineering, ## See file CREDITS for list of people who contributed to this# project.## This program is free software;. 阅读全文

posted @ 2013-07-25 14:53 小猪_你快跑 阅读(652) 评论(0) 推荐(0) 编辑

2013年6月4日

三目运算符

摘要: 如果在条件语句中,只执行单个的赋值语句时, 常可使用条件表达式来实现。不但使程序简洁,也提高了运行效率。条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:表达式1? 表达式2:表达式3其求值规则: 如果表达式1成立,则用表达式2的值作为条件表达式的值否则用表达式3的值作为条件表达式的值例如:if( a>b ) max=a;else if( a<=b ) max=b;可用三目运算符表示: max = a>b? a:b;上述例子里表达式1 有2个常量(或变量)进行比较,也有只有一个常量(或变量)的表达形式, 如:max = (a 阅读全文

posted @ 2013-06-04 21:28 小猪_你快跑 阅读(340) 评论(0) 推荐(0) 编辑

2013年5月17日

简单概述U-boot的工作过程和作用

摘要: bootloader是嵌入式系统开发过程中不可逾越的一步,其作用就是初始化必要的硬件,建立完整的内存映射图,为后续操作系统的系统运行建立一个合适的软硬件环境。u-boot是bootloader的一种,它能工作在多种体系结构上,比如ARM、X86、MIPS、PPC等,能够引导多种操作系统,包括常见的window、linux等,特别是在嵌入式中的广泛应用。u-boot在ARM上引导linux内核的过程,首先需要关闭包括看门狗在内各种中断,使得在对板级初始化过程中不会受到外部的影响,通过配置PLL完成对系统时钟的初始化,通过配置BWSCON寄存器完成对SDRAM的初始化,然后通过对CPSR和SP的配 阅读全文

posted @ 2013-05-17 20:59 小猪_你快跑 阅读(229) 评论(0) 推荐(0) 编辑

void及void指针含义的深刻解析

摘要: void的含义void即“无类型”,void*则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int*pint;void *pvoid;pvoid = pint; /*不过不能pint= pvoid; */如果要将pvoid赋给其他类型指针,则需要强制类型转换如:pint= (int *)pvoid;②在ANSIC标准中,不允许对void指针进行算术运算如pvoid++或pvoid+=1等,而在GNU中则允许,因为在缺省情况下,GNU认为void*与char*一样。sizeof(*pvoid 阅读全文

posted @ 2013-05-17 19:19 小猪_你快跑 阅读(302) 评论(0) 推荐(0) 编辑

2013年4月9日

中国象棋将帅问题

摘要: 问题提出:将和帅想个遥远,且不能照面。在象棋残局中,许多高手利用这一规则走出精妙的杀招。假设棋盘上只有将和帅,请写出一个程序,输出将和帅的所有合法位置。要求代码只能使用一个字节存储变量。(为方便A表示将B表示帅)分析和解法:我们想到的应该使用遍历解决即:遍历A的位置 遍历B的位置 判断A、B是否合法 如果满足则输出1、 存储A、B的位置信息,我们可以建立一个坐标系统, 如下图按... 阅读全文

posted @ 2013-04-09 13:57 小猪_你快跑 阅读(267) 评论(0) 推荐(0) 编辑

2013年4月2日

Web服务器:linux samba配置问题(未知的用户名或密码错误)

摘要: 关于samba的配置这里就不讲了,baidu,google一查一大堆,下面主要讲在配置过程中可能遇到的问题,很多人在配置完linux samba服务后,在windows系统下访问时遇到系统提示“未知的用户名或密码错误”或“无法访问”,现将故障原因分析及解决办法总结如下: 1、网络没有连通。分析及解决办法:启用ping服务,可通过ping命令测试,这个就不多讲了。2、samba服务没有成功启动。分析及解决办法:通过service smb restart重启测试,如果启动出错,根据错误提示分析解决或重新安装samba。.3、你的用户名和密码真的错了。分析及解决办法:这个问题简单吧,还用说吗!... 阅读全文

posted @ 2013-04-02 10:50 小猪_你快跑 阅读(320) 评论(0) 推荐(0) 编辑

2013年3月6日

匈牙利命名法

摘要: 第一列为变量类型 第二列为匈牙利前缀Integer(整型) i or nWord(16位) w orsDouble word(32位无符号) dwLong(32位有符号)长整型 IChar(字符) cString(字符串) szPointer(指针) pLong Pointer(长指针) lpHandle(句柄) hWindow handle(窗口句柄) hwndStruct size(结构体尺寸) cb 阅读全文

posted @ 2013-03-06 20:02 小猪_你快跑 阅读(166) 评论(0) 推荐(0) 编辑

windows 编程 第一程序

摘要: 由于windows编程是基于window操作系统的编程,window内众多函数、方法已经被封装,因此window编程得注意编程的格式window编程顺序: 1 设计一个窗体 2 注册这个窗体 3 创建这个窗体 4 更新这个窗体的内容 5 由于windows系统是基于消息响应的,所以程序必须得获取系统消息 6 获取消息后,然后再响应消息,即处理消息 #include<windows.h>LRESULT CALLBACK WndProc( HWND hwnd,UINT message, WPARAM ... 阅读全文

posted @ 2013-03-06 19:51 小猪_你快跑 阅读(153) 评论(0) 推荐(0) 编辑

导航