博文
转:我的嵌入式之路(新手起步)(2008-01-27 15:47:00)
摘要:转:我的嵌入式之路(新手起步)前言
这个题目很大,给人一种感觉我好像很成功,其实不然。实际上自己水平不高,甚至很低,但是做过了一些曲折的学习道路,同时把自己真实的学习历程表达出来,希望对后来者有借鉴的意义,甚幸!
工作三年,几成废人
我2000年毕业于华中地区的一个理工科大学,专业是机械电子,我当时已经签了一家内陆某个省级机关工作,家里八辈是农民,并且很偏远,能够进入这样的地 方是祖坟有风水。但在毕业前夕有个进入it的机会,我本想进去的,家里人极力反对,阻力可想而知。同时要交4000元的违约金,对我来说是天文数字。大学 里的费用很多是借的,几乎将近一半的费用是在大学勤工俭学挣的,为了省钱,高中一个学期回家一次,大学一年回去一次。并且我个人也有特殊的人生背景(悲景 更确切),这里不多说了,写十篇也写不完,同时偏离主题。这样我就参加了工作。一张报纸一杯茶的日子,几乎下班后有种很空虚和恐慌的感觉。在工作中虽然是 与自己专业有点关系,但是很少。专业几乎荒废。我自己也思考,如果再不出去,自己将会成废人,只好让国家养了。两年后决定出去,但是几成废人,谁要呢,只 好到学校去镀金。这是中国教育和社会的悲哀!
至于专业就改为计算机方面,听说好找工作,我说实话不是很对计算机特别感兴趣,生存第一需要。不要笑我,哈哈!考研成绩出来,超过了国家线几十分。那个方向要两个,我第三,但是那年非碘,不面试就按分数来排,自然我落选了。其实给我面试机会也不一定要我,哈哈,自己几斤几两很清楚。最后调剂到另外一个学校,交钱,咬咬牙,交吧!现在仍然债台高筑!
进入学校前夕
为什么要把这段列出,看后就知道了。单位有网络,经常上网查些英语资料,在那里唯独英语没有丢很多。于是我就在网上查资料,学什么好呢,最后确定学嵌入式把,听说跟硬件相对比较紧密!而我在大学里多少学习了数字电路,单片机等,所以多少也有所利用,不会真的一无所知。当然在这之前也自学过数据结构,计算机组成原理等。C 语言在大学就学了。哈哈这就是我的家底。
我知道自己的基础差,于是我就拿操作系统,数据库、数据结构、c++来看,机关有这个好处,空余时间多,于是平常就看书,很痛苦,没有人请教。另外就上网到论坛上去,我就到各个专业的技术论坛,其实是电子论坛和嵌入式论坛。我几乎没有发帖,几乎把几个大型的出名的论坛的帖子翻遍了,虽然有很多重复的,我才知......
java 摘录(2008-01-24 21:45:00)
摘要: 要编程从键盘上连续读取一大段数据时,应尽量将读取数据的过程放在函数中完成。使用-1来做为键盘输入的结束点。在编写函数的代码不应直接使用System.in来读取数据,而是用一个InputStream类型的形式参数对象来读取数据,然后将System.in作为实参传递给InputStream类型的形参来调用该函数。
初始化表单的限制
1.初始化程序可以执行用赋值语句表达的初始化。
2.初始化程序不能调用热河的包含异常错误的方法。
3.如果初始化程序调用一个包含异常错误的方法,不不能进行错误恢复。
为了初始化类成员,在static初始化块中放置初始化代码。为了初始化实例成员,就要在构造函数中放置初始化代码了。......
不调用库函数,实现strcpy函数(2008-01-23 13:44:00)
摘要:题目:
已知strcpy函数的原型是:
char * strcpy(char * strDest,const char * strSrc);
1.不调用库函数,实现strcpy函数。
2.解释为什么要返回char *。
解说:
1.strcpy的实现代码
char * strcpy(char * strDest,const char * strSrc)
{
if ((strDest==NULL)||(strsrc="/=NULL")) //[1]
throw "Invalid argument(s)"; //[2]
&......
linux内核查找和源代码下载(2008-01-23 10:09:00)
摘要:内核版本
要编译一个最新的内核,您需要首先下载它的源代码。在您下载内核的源代码前,您要知道到您要找什么。首先要问您自己的问题是 -- 您需要一份稳定的还是测试版的内核?
稳定版内核通常版本号第二位用偶数数字 -- 例如, 2.0.38、2.2.15、2.2.18 和 2.4.1 是被认为是"稳定"的内核(分别由于其包含 0、2、2 和 4)。如果您想尝试测试版内核,您通常需要找那些版本号第二位是奇数的号码又最高的内核。例如,2.3.99 和 2.1.38 都是测试版内核(分别由于其包含 3 和 1)。
内核版本历史
2.2 系列的内核被认为是较新而且稳定的内核。如果"较新"和"稳定"是您想要的,查找一个版本号的第三位是最高的 2.2 内核(2.2.16 是目前最新的版本)。
当 2.2 系列的内核仍在开发中,2.3 系列已经开始了。这个系列是作为将被集成到 2.4 稳定版系列的新功能和高级功能的测试版。2.3 系列已经到了 2.3.99,其开发已经停止。开发人员已经开始着手 2.4.0。如果您喜欢冒险使用最最新的技术,您可能想使用可以找到的最新的 2.4 系列内核。
2.4 版内核警告信息
Once a real 2.4 series kernel comes out (like 2.4.0), don't assume that the kernel is ready for use on a mission-critical system like a server. Even though 2.4 is supposed to be a stable series, early 2.4 kernels are likely to be not quite up to snuff. As is often the case in the computer industry, the first version of anything can have fairly sizable bugs. While this may not be a problem if you're testing the kernel on your home worksta......
Linux 内核源代码的阅读和工具介绍(2008-01-21 09:53:00)
摘要:作 者: 王克强 蓝森林 http://www.lslnet.com
--------------------------------------------------------
随着linux的逐步普及,现在有不少人对于Linux的安装及设置已经比较熟悉了。与
Linux 的蓬勃发展相适应,想深入了解Linux的也越来越多。而要想深入了解Linux,就
需要阅读和分析linux内核的源代码。
Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,/usr
/src/linux目录下的东西就是内核源代码。另外还可以从互连网上下载,解压缩后文件一
般也都位于linux目录下。内核源代码有很多版本,目前最新的稳定版是2.2.14。
许多人对于阅读Linux内核有一种恐惧感,其实大可不必。当然,象Linux内核这样
大而复杂的系统代码,阅读起来确实有很多困难,但是也不象想象的那么高不可攀。只
要有恒心,困难都是可以克服的。也不用担心水平不够的问题,事实上,有很多事情我
们不都是从不会到会,边干边学的吗?
任何事情做起来都需要有方法和工具。正确的方法可以指导工作,良好的工具可以
事半功倍。对于Linux 内核源代码的阅读也同样如此。下面我就把自己阅读内核源代码
的一点经验介绍一下,最后介绍Window平台下的一种阅读工具。
对于源代码的阅读,要想比较顺利,事先最好对源代码的知识背景有一定的了解。
对于linux内核源代码来讲,我认为,基本要求是:
1、操作系统的基本知识;
2、对C语言比较熟悉,最好要有汇编语言的知识和GNU C对标准C的扩展的知识的了解。
另外在阅读之前,还应该知道Linux内核源代码的整体分布情况。我们知道现代的操作系
统一般由进程管理、内存管理、文件系统、驱动程序、网络等组成。看一下Linux内
核源代码就可看出,各个目录大致对应了这些方面。Linux内核源代码的组成如下
(假设相对于linux目录):
arch 这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。如对于
X86平台就是i386。
include 这......
Meta标签详解--转载(2008-01-17 15:45:00)
摘要:
引言
您的个人网站即使做得再精彩,在“浩瀚如海”的网络空间中,也如一叶扁舟不易为人发现,如何推广个人网站,人们首先想到的方法无外乎以下几种:
● 在搜索引擎中登录自己的个人网站
● 在知名网站加入你个人网站的链接
● 在论坛中发帖子宣传你的个人网站
很多人却忽视了HTML标签META的强大功效,一个好的META标签设计可以大大提高你的个人网站被搜索到的可能性,有兴趣吗,谁我来重新认识一下META标签吧!
META标签是HTML语言HEAD区的一个辅助性标签,它位于HTML文档头部的<HEAD>标记和<TITLE>标记之间,它提供用户不可见的信息。meta标签通常用来为搜索引擎robots定义页面主题,或者是定义用户浏览器上的cookie;它可以用于鉴别作者,设定页面格式,标注内容提要和关键字;还可以设置页面使其可以根据你定义的时间间隔刷新自己,以及设置RASC内容等级,等等。
详细介绍
下面介绍一些有关 标记的例子及解释。
META标签分两大部分:HTTP标题信息(HTTP-EQUIV)和页面描述信息(NAME)。
★HTTP-EQUIV
HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容。常用的HTTP-EQUIV类型有:
1、Content-Type和Content-Language (显示字符集的设定)
说明:设定页面使用的字符集,用以说明主页制作所使用的文字已经语言,浏览器会根据此来调用相应的字符集显示page内容。
用法:<Meta http-equiv="Content-Type" Content="text/html; Charset=gb2312">
<Meta http-equiv="Content-Language" Content="zh-CN">
注意: 该META标签定义了HTML页面所使用的字符集为GB2132,就是国标汉字码。如果将其中的“charset=GB2312”替换成“BIG5”,......
删除字符串中相同的字符并排序--c(2007-12-06 21:15:00)
摘要:#include "stdio.h"
#include "string.h"
int main(){
char str[30] = "acegfddcbag";
char *p, *q, *r, c;
for(p=str; *p; p++){
for(q=r=p; *q; q++)
if(*r > *q) r = q;
if(r != q){
c = *r; *r = *p; *p = c;
}
}
for (p=str; *p; p++){
for(q=p; *p==*q; q++)
;
strcpy(p+1, q);
}
printf("%s", str);
return 0;
}......
数字翻转成字符--c递归(2007-12-06 21:02:00)
摘要:#include "stdio.h"
void convert(char*, int);
int main(){
int number;
char str[10] = "";
scanf("%d", &number);
convert(str, number);
puts(str);
return 0;
}
void convert(char*s, int n){
int i;
if((i=n/10) !=0 ) convert(s+1, i);
*s = n%10 + '0';
}......
数字转换成字符--c递归(2007-12-06 20:55:00)
摘要:#include "stdio.h"
void convert(int);
int main(){
int number;
scanf("%d", &number);
if(number < 0){
putchar('-');
number = -number;
}
convert(number);
return 0;
}
void convert(int n){
int i;
if((i=n/10) !=0 ) convert(i);
putchar(n%10 + '0');
}
......
字符串翻转--c递归(2007-12-06 20:51:00)
摘要:#include "stdio.h"
void intverp(char*);
int main(){
char s[10] = "hello!";
intverp(s);
return 0;
}
void intverp(char* s){
if(!*s) return;
intverp(s+1);
printf("%c", *s);
}......