最新日志

发表于:2008-6-25 1:11:47
标签:嵌入式  C语言  汇编  

0

嵌入式系统的汇编与C语言之争

嵌入式系统的汇编与C语言之争

对于每个学习嵌入式系统的人而言,都会在内心存在着使用汇编和C语言的争执,特别是对于初学者更有这方面的顾虑,我应该是学汇编还是C语言呢?

对于高手而言,使用汇编还是C都是为了同一个目的-----实现系统应有的功能,所以对于他们来说,汇编和C都是异曲同工!说起来似乎很简单,但做起来就不是如此简单了。对于刚使用语言编程的人来说,可能这个说法对他们而言,有点高高在上的感觉。

汇编语言涉及到硬件的每一个细节,所以如果要想对一个嵌入式处理器有一个全面的理解,就必须要将每一条汇编语言弄懂,会用每一条汇编语言,知道这条汇编语言执行之后对处理器的影响,处理器是如何执行的,对各种标志位的影响如何。汇编在某些场合也是一个不二选择,特别在很多定时要求严格的场合也是如此,某些编译器或许也不允许直接用C语言开关中断,这时候也得使用汇编。这也是很多的编译器为什么使用“在线汇编”做法的原因。

而C语言就不必如此,C语言素有低级语言中的高级语言之说,可以操作硬件但又有很明确的意义。你可以不必了解处理器是如何具体地去操作,影响了什么标志位。理解起来很容易,对系统做成之后的维护很有优点,特别是在对他人阅读程序时有很大优势。另外可以很方便地做成模块,以后将做好的模块直接调用,比如某个外围设备的驱动程序,做好之后,以后就可以直接调用,当然汇编也可以做成一个个的子程序在以后的使用中拿来调用,但是你得关心参数传递的细节,该使用什么寄存器来传递参数 ,是否该保存上下文,这些在C语言里是不必过多的关注的,这些是编译器来处理的。这当然就涉及到编译器的问题了,一般的编译器处理是将C转换成汇编再进行处理的,也就是说,你编好的C语言是要最终转化成汇编的,这也就是说对高手而言,汇编就是C,C语言就是汇编,异曲同工!所以选择好的编译器就是一个问题了,如果你对编译器本身存在疑问,或者觉得编译器有问题,不能做最好的转换或者优化,你就可以考虑到直接写汇编了。再进一步说,推到远古时代,以前做单片机的开发和电脑程序的编写是要直接写机器语言的了,你要做得是将指令的二进制代码直接输入到机器的ROM里,让它运行的,这就是直接跟机器打交道了,这是高手级别的人玩的。这也是异曲同工最后走去的方向,那就是机器代码。

如果您是一位初学者,你又想马上上手,您或许想马上看看跑马灯,想感受一下,想得到点成就感,那就用C吧,它可以让你很快的获得学习的乐趣和成功的快乐。但是别忘了,汇编是理解这类处理器的很好的工具,你要深入地学习和了解它,建议您还是学点汇编吧。

点击此处查看原文 >>

系统分类: 嵌入式   |    用户分类:    |    来源: 原创

评论(0) | 阅读(214)
发表于:2008-6-15 16:56:03
标签:加载网卡  redhat  

0

RedHat9下加载网卡驱动

PCMCIA 网卡 芯片 RTL8139

装上redhat9.0后再装该网卡驱动。

1.使用#ifconfig 查看当前可以使用的网卡,只显示lo,即仅环路网络可以使用;

2.#ifconfig eth0 up 提示错误,可知eth0还不能使用

3.#lsmod 并未发现有8139相关的驱动已加载

4.进入/lib/modules/2.4.20-8/kernel/drivers/net 查看是否有8139相关的驱动模块,找到8139cp.o与8139too.o,说明驱动已有,只是未加载

5.modprobe 8139too 或8139cp 可尝试几次即可确定使用哪一个

6.再使用lsmod 可以看到8139相关驱动已加载,

7.使用#ifconfig 查看eth0是否可用,可重复步骤5尝试两个加载文件。

8.加载完成后,可以使用#netconfig 配置网卡的IP,DNS等

9.可打开网页验证是否正确加载

 

到目前为止,系统应该已经可以使用网卡,但是还不能使其在系统启动的时候自动加载,可以关机再开机用#lsmod查看并未加载。可重复上述步骤后进行一下步骤:

10.修改/etc/rc.d/rc.local加入modprobe 8139too (无.o后缀)保存

这样以后每次开机即可自动加载。

 

点击此处查看原文 >>

系统分类: 嵌入式   |    用户分类:    |    来源: 原创

评论(0) | 阅读(152)
发表于:2008-5-27 11:09:13
标签:AVR  MEGA16L  USART  

0

ATMEGA16L的USART在不同工作电压下的问题

ATMEGA16L的串口问题
======================
在使用ATMEGA16L的过程中遇到了一个比较奇怪的问题,让ATMEGA16L分别工作在3.3v和5.0v,发送数据0x00-0xff,在串口调试终端接收的数据出现了不同,在3.3v时工作正常,而在5.5v时则出错。不知道各位在使用过程中是否也遇到了类似的情况?它的USART的工作跟电压是否有关系?但是在datasheet上却没有看到相关的内容。

---------------------------------------------------------------------
下面是试验记录:

晶振:内部4M
波特率:2400,根据数据手册设置初值:U2X=1,UBBR=207
调试终端:sscom32
发送数据:0-255
电平转换芯片:max232 电容:10uf

在sscom32接收窗口显示数据
当工作电压为3.3v  接收数据正常为0x00--0xff;

当工作电压为5.0v  接收数据不正常,接收数据如下:
80 40 A0 20 50 90 D0 10 28 48 68 88 A8 C8 E8 08 14 24 34 44 54 64 74 84 94 A4 B4 C4 D4 E4 F4 04 0A 12 1A 22 2A 32 3A 42 4A 52 5A 62 6A 72 7A 82 8A 92 9A A2 AA B2 BA C2 CA D2 DA E2 EA F2 FA 02 05 09 0D 11 15 19 1D 21 25 29 2D 31 35 39 3D 41 45 49 4D 51 55 59 5D 61 65 69 6D 71 75 79 7D 81 85 89 8D 91 95 99 9D A1 A5 A9 AD B1 B5 B9 BD C1 C5 C9 CD D1 D5 D9 DD E1 E5 E9 ED F1 F5 F9 FD 01 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE
1.修改波特率为4800,9600,依然得到上述结果。
2.更换串口调试终端:使用龚建伟的“串口调试助手V2.2”也依然是上述相同结果
3.电平转换芯片:max232,电容更换为4700pf ,依然得到上述结果
--------------------------------------------------------------------
附源程序:
#include "iom16v.h"

void InitialUsart(unsigned int );
void SendUsartData(unsigned char);

void main(void)
{ unsigned int i;
 InitialUsart(2400);

 for(i=0;i<256;i++)//发送0-255,观察终端接收结果
 {
  SendUsartData(i);
 }
 while(1);
}


void InitialUsart(unsigned int baud)
{
  switch(baud)
 {
  case 2400   : baud="207";break;
  case 4800   : baud="103";break;
  case 9600 : baud="51";break;
  case 19200 : baud="25";break;
  default  : break;
 }

  UCSRB=0x00;
  UBRRH=(unsigned char)(baud>>8)&0x7f;
  UBRRL=(unsigned char) baud;
  UCSRA|=(1<  UCSRB|=(1<  UCSRC|=(1<}

void SendUsartData(unsigned char temp)
{
 while( !(UCSRA & (1< UDR=temp;
}
-------------------------------------------------------

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 原创

评论(0) | 阅读(188)
发表于:2008-5-22 14:50:24
标签:ps/2  datasheet  

0

ps/2技术参考

ps/2技术参考

pdf

详细介绍了ps/2 的原理

点击此处查看原文 >>

系统分类: 资源共享   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(214)
发表于:2008-4-17 12:09:08
标签:Linux  VIM  使用  

0

LINUX下VIM的使用(一)

Linux下一种比较常用的编辑器为VIM,这里简要介绍一下如何在VIM下编辑以及一些常用的命令

进入VIM时候,
1.默认为输入命令模式,在此模式下可以输入以下几个字符进入普通模式

a 进入 INSERT 模式
i 进入 INSERT 模式
v 进入 VISUAL 模式

2. INSERT 模式下可以输入字符等
在左下角会显示当前的模式 INSERT

假设已经输入一些字符,按ESC键,可进入INSERT模式下的命令输入
有如下的命令
i 进入插入模式后,光标在当前字符前面;
a 进入插入模式后,光标在当前字符后面;
h j k l 分别是光标左移、下移、上移、右移(按方向键也可用来移动光标)
x 删除一个字符
dd 删除一行
J 删除本行的回车符,把下一行并入本行末尾
r 字符 替换光标所在字符为新字符
^ $ 分别是光标移到行首和行末,当然也可以用HOME END 键
数字G 移动光标到第若干行,如果直接按 G 则移动到最后一行

3.VISUAL 模式下不可以输入字符,但可以进行复制粘贴

x 或 d 剪切(即删除,同时所选的文本进入剪贴板)
y 复制
r字符 所有字符替换为新字符
u U ~ 分别是所有字母变小写、变大写、反转大小写
> < 分别是缩进和反缩进

4. 在普通模式(可以输入字符)按ESC键可以退出至命令模式

命令模式下可以输入以下几个字符
:q 退出! (更确切的说应该是关闭当前文件)
:w 文件名 存盘。如果还是保存为当前文件,不必写文件名
:wq 存盘退出
:new 文件名 打开或新建文件(同时关闭当前文件)。如果不指定文件名
或者文件名不存在则是新建文件
:help 帮助! 看完后用 :q 关掉窗口。可以在 help 后面加某个帮助主
题的名称,如 :help dd 或 :help help

点击此处查看原文 >>

系统分类: 嵌入式   |    用户分类:    |    来源: 原创

评论(0) | 阅读(277)
发表于:2008-4-7 19:40:13
标签:AVR  51  系统板  

0

将AVR、51实验板做在同一电路板

AVR中的ATMEGA8515引脚跟AT89S52的引脚兼容,可以在51的实验板上稍微做一些改动就可以用在AVR的学习上,下图是最小系统。

AVR系统:RST_J1的1、2短接;根据熔丝位设置是否短接XT_J1、XT_J2,来使用外部晶振;CUP_J3断开;

51系统:RST_J1的2、3短接;XT_J1、XT_J2短接;CPU_J3短接

电路图:点击看大图

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 原创

评论(2) | 阅读(728)
发表于:2008-4-1 19:54:29
标签:IE  黑客  刘碟雨  

0

微软小子刘蝶雨(转)

 

有的人把人家的网站都弄垮,叫黑客。有的人技术很好,也叫黑客。黑客的意思太多了。如果你认为“黑客”也是好人,那我就是“黑客”。
                                                   —— 刘蝶雨

  “我们发现了一个黑客,在中国。”
  2003年1月的一个早上,张亚勤来到办公室,打开电子邮箱,这一行字立即弹出来。邮件来自微软公司总部的安全小组。这小组的职责之一是监视因特网浏览器在全球的运行情况,专门寻找“臭虫”,然后弥补,同时还要监视网络上面神出鬼没的“黑客”行踪。对于微软公司来说,网上“黑客”的性质是不同的。有些“黑客”的确对微软抱着敌意,专门寻找微软软件产品中的“臭虫”,利用软件本身存在的漏洞,去攻击那些软件使用者。这种攻击带有极大的破坏性,还让微软公司难堪。另外一些“黑客”则纯粹属于“技术狂”,对技术的热爱导致他们去寻找大公司产品的毛病。
  ……
  “可以肯定他是一个中国的学生,”他们告诉张亚勤,“在湘潭大学读书,名叫刘蝶雨。”中国,湖南,湘潭大学。
  刘蝶雨坐在他的拥挤不堪的房间里,盯着电脑屏幕,目不转睛,已经好几个小时一动不动。那上面是微软公司最得意的产品之一“因特网浏览器”。他知道他想找的东西就在那里面,他已经清晰地感觉到它的存在,可它为什么还不出来呢?……
  他一边想,一边用手指敲击键盘。就在那一瞬间,“因特网浏览器”出了麻烦。他裂开一嘴大板牙,嘿嘿笑了:“我破坏了它的规则,是不是?”他身边有不少恨微软的人,看了他做的事情,不免大快人心。开心完了,又在猜测微软那边的动向。“真奇怪,”有个同学对他说,“微软还没有对你采取行动啊?”“正说笑着,电话铃声响了。他拿起来,就听那边有个声音说:“我是微软的。”刘蝶雨当即目瞪口呆。
  电话这边真是微软的,叫林斌,是微软亚洲研究院新技术开发部的经理。他接到张亚勤转发的邮件,按图索骥,很容易地找到了刘蝶雨。
  “我们找你,没有什么特别的。”林斌感觉到对方的紧张,希望缓解气氛。对方“啊”了一声,还是不说话。
  林斌似乎想起了什么,赶忙自我介绍。说自己在北京,在微软亚洲研究院负责一个工程师小组。
  “啊。啊。”
  “我只是微软的一个技术人员。”
  “啊,啊。”
  “我们的院长是张亚勤。他是世界一流的计算机科学家。”“啊。啊。”
  “我曾经参加了视窗2000的制作。”
  “那很酷。”对方终于说话了。
  “我们对你的工作非常感兴趣。”
    “啊。”刘蝶雨又不说话了。
  “我们很想请你到北京来看看。也许你愿意和我们合作。”“啊……”
  “你寒假如果没有事的话就来吧。做飞机做火车都行。我们负责你的旅行费。”
  “我很愿意。”刘蝶雨说,“也许吧。”
  蝶雨放下电话,心里还在咚咚跳。他的第一个念头是:“这年头骗子太多啦。他们是微软的吗?”接着又一个念头:“就算他们是真的,到底为什么找我呢?该不是要把我关起来吧?”蝶雨这样想着,第一次感觉到“黑客帝国”的惊险离奇。实际上他不喜欢别人叫他“黑客”。“我没见过黑客。”有一次他这样说,“有的人把人家的网站都弄垮,叫黑客;有的人技术很好,也叫黑客。黑客的意思太多了,如果你认为黑客也是好人,那我就是黑客。”
  说老实话,他完全是在一种不经意的心理状态下走上这条路的,只是带着几分好奇,几分兴趣,还有几分想要证明自己能力的欲望。
  他还清晰地记得,事情是从2002年6月30日开始的。那一天,他偶然看到一篇文章,是一个外国人写的,告诉你怎样发现一个程序中的错误,还举了不少例子来说明。很多在刘蝶雨看来非常困难的事情,顿时变得简单了,就像文章作者说的,“并不需要你有多么高深的知识和多高明的技巧,你只要从特殊的角度去看它。”
    “我也一定能做到。”刘蝶雨这样想。
  他的思路屡试不爽,他在微软的“浏览器”上到处找,不停地找到“臭虫”,但是微软也在找他。现在,微软终于找到他了。
  林斌放下电话,就去找研究院人力资源部的经理王谨,请她安排刘蝶雨在寒假期间到微软亚洲研究院来实习。
  “这些都可以是假的。我只认电子邮件。”
  王谨觉得自己似乎不能说服刘蝶雨,只好转回头来找林斌:“这个孩子怎么这么有意思啊?他问你是不是微软的?”
  林斌的电话再次来到湘潭:“你相信电子邮件,那很好,我们的电子邮件地址有‘微软’字样,这不会有假吧?”
  春节过后,蝶雨终于来到希格玛大厦。
  林斌致电微软总部,说他们要找到的“黑客”现在就在他身边。“太棒了。”对方兴奋地说,“我们在一起开个会吧。”蝶雨闻声大惊:“我要见敌人了!”
  “你怎么会想到这个?”林斌很奇怪。
  “我是在找他们的麻烦啊。他们不是敌人吗?我是在和敌人的头子说话啊。”林斌说:“我们不是敌人,我们只是想把软件做得更好。”“你们想要我做什么?”
  林斌对他说:“你想做什么,就做什么。你如果想继续在‘浏览器’上找‘臭虫’。我们总部的产品组可以和你合作。你找到漏洞,他们马上弥补,打包,然后再给你。你能得到最新的程序,还没有公布的。”
  两个人正在说着,蝶雨的手机响了。那是他父亲从湘潭打来的。“没问题,我很安全。”蝶雨对着听筒说,又抬起头看着林斌:“我觉得你们微软和外面说的不大一样。”
  蝶雨开始工作了。连续7天,他在“因特网浏览器”上找到7个“臭虫”,一天一个,而且都是很难找到的。他自己很兴奋,微软总部的人更兴奋,惊叹“这个人怎么这么厉害。”“他的工作简直太好了。”林斌说。
  第八天,林斌给了蝶雨一本书。是专门讲怎样编写安全代码的。作者是微软公司产品部门的一个经理,在书中列举了程序员常犯的错误,极为精致周到,所以这本书成为微软程序员的必读书。
  林斌说:“读读这本书,你能更好地发现程序员的弱点在哪里。”蝶雨大喜,拿回去看了第一章,脑子里面马上有了新主意。他试图以其人之道治其人之身,直接深入到书作者领导的那个小组中去。
  林斌听了他的想法,觉得不会有结果:“书是他自己写的,他不会在他领导的小组里犯错误。”
  但是蝶雨更相信自己的直觉。
  接下来的事情,让所有人都感到意外。蝶雨在“浏览器”的地址栏里发起了他的“战役”。就规模来说,这的确是一次“战役”,而非小打小闹。当他使用一种方式来表达一个字母的时候,“浏览器”没有任何问题。他继续扩张到第二种方式,仍然没有问题。这都是意料中的,他并不在意,一口气做下去,不断扩张出新的表达方式,字符串也迅速延伸,一直延伸到第81次,系统的毛病显示出来,他笑了,再接再厉,扩张出至少两百种变化,字符串形成前所未有的长度。结果发现,从第81种变化开始,一直到第100种,系统都会出现问题,最后他莫名其妙地进入一个银行的网页。
  “真是太绝了。”林斌说,“别人的测试,只变化十几次、二十次,已经不得了。实际上他的变化是从0到200多次。就是在中间一个短暂的阶段,他发现了问题。问题报告总部,那边的人佩服得一塌糊涂。”
  “这种测试,我们根本想像不到。”微软总部的安全小组回电说。……

点击此处查看原文 >>

系统分类: 自由话题   |    用户分类:    |    来源: 转贴

评论(1) | 阅读(410)
发表于:2008-3-31 22:55:27
标签:流浪汉  时光穿梭  

0

到底发生什么了?

一九四五年的一天,克力富兰的孤儿院里出现了一个神秘的女婴,没有人知道她的父母是谁。她孤独地长大,没有任何人与她来往。    
      
      
  直到一九六三年的一天,她莫明其妙地爱上了一个流浪汉,情况才变得好起来。可是好景不长,不幸事件一个接一个的发生。首先,当她发现自己怀上了流浪汉的小孩时,流浪汉却突然失踪了。其次,她在医院生小孩时,医生发现她是双性人,也就是说她同时具有男女性器官。为了挽救她的生命,医院给她做了变性手术,她变成了他。最不幸的是,她刚刚生下的小女孩又被一个神秘的人给绑走了。这一连串的打击使他从此一蹶不振,最后流落到街头变成了一个无家可归的流浪汉。           
      
  直到一九七八年的一天,他醉熏熏地走进了一个小酒吧,把他一身不幸的遭遇告诉了一个比他年长的酒吧伙计。酒吧伙计很同情他,主动提出帮他找到那个使‘他’怀孕而又失踪的流浪汉。唯一的条件是他必须参加伙计他们的‘时间旅行特种部队’。         
      
  他们一起进了‘时间飞车’。飞车回到六三年时,伙计把流浪汉放了出去。流浪汉莫明其妙地爱上了一个孤儿院长大的姑娘,并使她怀了孕。伙计又乘‘时间飞车’前行九个多月,到医院抢走了刚刚出生的小女婴,并用‘时间飞车’把女婴带回到一九四五年,悄悄地把她放在克力富兰的一个孤儿院里。然后再把稀里糊涂的流浪汉向前带到了一九八五年,并且让他加入了他们的‘时间旅行特种部队’。     
      
  流浪汉有了正式工作以后,生活走上了正轨。并逐渐地在特种部队里混到了相当不错的地位。有一次,为了完成一个特殊任务,上级派他飞回一九七零年,化装成酒吧伙计去拉一个流浪汉加入他们的特种部队.  

点击此处查看原文 >>

系统分类: 自由话题   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(355)
发表于:2007-12-26 15:04:48
标签:垄断  霸道  

0

强烈鄙视某些垄断行业的霸道行径

强烈鄙视某些垄断行业的霸道行径:

柜员机取出假钱--->银行无责
网上银行被盗--->储户责任
柜员机出现故障少给钱--->用户负责
柜员机出现故障多给钱--->用户盗窃,被判无期
银行多给了钱--->储户义务归还
银行少给了钱--->离开柜台概不负责  


“刚开始他们来抓共产党人,我没有站出来说话,因为我不是共产党员;接着他们又来抓社会党人和工会会员,我没有出来说话,因为我两者都不是;后来他们来抓犹太人,我还是没有出来说话,因为我不是犹太人;最后当他们来抓我的时候,已经没人能站出来为我说话."

点击此处查看原文 >>

系统分类: 自由话题   |    用户分类:    |    来源: 整理

评论(0) | 阅读(355)
发表于:2007-12-24 13:20:17
标签:无标签

0

祝各位圣诞节快乐

祝各位圣诞节快乐!

点击此处查看原文 >>

系统分类: 生活点滴   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(372)
2345下一页总共 , 当前 /