29
Jun 11

8051异步串口的收发原理

异步串口通信的基本原理是,点对点异步,没有时钟线没有地址,以低电平为开始位,高电平闲置,通信双方约定相同的数据帧大小,还有在相同的波特率下,收发顺利进行。异步串行通信可双线同时收发,为全双工通信。数据帧内容包括一个开始位、5到9个数据位、一个可选的检验位和一到两位的停止位。

以上是异步串口通信的通用原理,但具体的通信过程是怎样的呢?这就得拿一个具体的实现——8051的built-in UART来分析一下了。 Continue reading →


11
May 11

2011-2-3-4

四月三十日

2011-04-30 22:53:19

不寻常人不作寻常事,我不知道自己是否寻常人,但意识到自己在作些不寻常事,起码我是鬼,我还在地狱。

不知觉间迁入宝安两个月,原定撤出南山安定下来,半月以后再找工作,半个月以后新情况出现再改变了我的计划,工作学习的目标转向传统嵌入式应用领域——所谓的单片机。我作这一决定是被逼的,但并不无奈。

之前一个月的寻工作给了我一些信息,第一,专职开发驱动程序的职位不多,多半掺杂其它一些C语言活,脚本什么的,有的甚至还要求写PHP;第二,有请专职开发驱动程序,面试的看你没有项目经验死活问些细节,然而驱动程序相对复杂,有“理”说不清;第三,市场对C开发需求很大。 Continue reading →


08
May 11

深度把握In-system programming

在嵌入式开发领域,[在-系统式]编程(In-System Programming,下称ISP)是指一些可编程逻辑器件(programmable logic devices),如微控制器(的EEPROM),可以不必从[应用系统]中卸下,直接在应用系统上进行“再编程”。逻辑器件是组成数字电路(用于电计算的组合电路和时序电路)的必备元件,而 “可编程”是指这些元件的计算逻辑可重组,也叫重配置(reconfigure)。要深入理解ISP,应用ISP,必须先厘清何为“在-系统式”,何为“编程”。

Continue reading →


22
Mar 11

工作vs.学习

近一两年来,我先后对[工作与学习]的复杂过程有过多次的头脑风暴,并且感觉在这方面略有所成(看这里这里);当然既然只是头脑风暴,所谓的所成也只是一些粗糙的想法,一些没有实证过的假设,算是积累而已,未成系统。近来,随着对大脑思维过程有更多的认识,我开始发现,工作和学习的(思考)过程类似,但性质完全不相同:

工作和学习最一般的共同点是有大脑思考参与,最本质的不同是工作中大脑思考没有新的未知的知识参与(这里的[未知]是指个体不可理解的知识,可推导出来的知识不算),而学习有新的知识。

在实际生活中,学习和工作的界限是很模糊的,例如早上上了课,中午做相应的练习,有懂有不懂的,不懂的晚上请教老师或查资料完成练习,这一过程夹杂着学习和工作。介于二者过程的复杂性,要清晰的掌握二者,必须将它们区别开来,分别对待研究。 Continue reading →


21
Mar 11

思维能力

关于思维能力的考问缘于学习算法设计过程中以下的疑问:

重发明轮子一遍的好处在什么地方?

其实这个疑问已经不只几次出现在我的大脑短时记忆里,只是提问形式不同。最近从刘未鹏博客的一些关于解题的博文中我得到一些启发,“分析别人的轮子”是在学习别人的思路,而“重发明轮子”是在整理自己的思路。换句话理解,重发明轮子是对我们大脑思维能力的极好训练。

关于训练大脑思维能力还有一种经典说法,就是数学学习的目标就是训练人的逻辑思维能力。

不只是一般人,就算你是一名数学老师,如果你的好奇心不强,面对后面的判断都会默认不语。更一般的情况,反正大家都晓得学习XX就是习得更好[逻辑]思维能力!做事更有逻辑性!更有专业能力!更严谨!更聪明!更睿智!!但是……作为一个逻辑学爱好者我不得不说,这种对学习与思维能力的认识太粗浅了。 Continue reading →


05
Mar 11

C语言运算符另类分类法

一般的C语言程序设计文本对C运算符的分类大概都是分为五大类:算术运算符、 关系运算符、逻辑运算符、按位运算符和一些特殊任务的运算符。这种分类法表面上“合情合理”,事实相当的笼统含混。算术运算符好理解,什么叫关系运算符,关系可运算么?关系是什么数据值参与运算?

不甘于这种含混的分类法,这几天花了一点时间对C语言的全部运算符进行分拣,分别从设计、语义和哲学等多个角度对C运算符进行分析,并且归纳出以下五类:

  1. 计算指令
  2. 判断指令
  3. 保存指令
  4. 对象元操作指令
  5. 自定义指令

此分类的根据是机器的功能,理解它需一些计算理论知识,分类标准在尾部解析。 Continue reading →


02
Mar 11

思维种种(头脑风暴)

野鹤鹤说

当我们一觉醒来,显意识开始占领我们的大脑一整天,开始如程序执行一般的意识流活动。我好奇这种意识流的过程是怎么样的,并且是什么东西左右意识流的去向。

我没时没刻不在思考,信息从大脑长记忆和感官两侧轮番上了我们的那七小块临时记忆(内存),左右着我们的日常行为,但是我们没有一刻思考过思考这个过程本身是什么。

为什么需要思考(推理)?

我们必须无条件的接受一条前提基础,就是人活着是为了认识世界并改善它的。推理就是从已知推出未知,认识这个世界;研究推理的规律([思维]逻辑学)是为了让推理更准确更有效,让推理更有意识。 Continue reading →


10
Feb 11

算法创新能力随想

很多强好奇心的算法设计学习者在面对现成的精妙算法时总会有一样的疑问:“如此精妙,怎样想出来的?如果给我一个新问题,我能设计出如此精妙的算法来吗?”。这个问题好比如问:“这首歌这么好听,我能作出来吗?”。换句话说就是问:“我有算法设计的创新能力吗?”。要回答这个问题,得先回答两个更优先的问题,第一,如何理解创新;第二,算法设计者的设计能力是一种什么样的能力,有什么内容。

如何理解创新

创新能力属于较高级别的能力层次,按布卢姆的能力层次来看,应该要比综合应用能力更高一级的能力,也就是分析和综合。按我给出的比喻,分析(Analysis)+综合(synthesis) = 再学习 = 创新能力。那么创新能力层比应用能力高出些什么东西来呢?新!其实综合应用能力也会涉及分析和综合的思维操作,但思维操作的内容一般都是旧的已经熟悉的对象,相反创新思维中必有新事物参与思维推理。新事物来自新需求。 Continue reading →


25
Jan 11

2010年总结

翻开去年总结文,感觉有如昨天出!我问,怎么这么快又要总结了?!如果说09年还留有些许08年那无知者所具有的勇气的余末,指天定诺,今年我想说,我心情有点复杂。因为我看到闭关的尽头而未能到达,定下目标只完成了一部分。如果有人要我定一个固定的目标,我应诺而未能达到,我应该羞愧;如果老天问我尽力而为,我问心无愧。我思想很左很硬,原则底线没人谁能打破,我愿意为我的言行负责,甘愿承受任何苦痛,不道一声。因为孟先生说,X降大任于我,苦我心志,劳我筋骨,饿我体肤,空乏我身,乱我所为,无非都是训练我的心性,增进我的才能。吾有失我有得,何怨可道。

虽然相对于往年,10年要苦上一倍,也曾一度的彷徨过,但总的来说,还是挺充实的一年。今年有了很多新的生活体验,有了一个的独立博客,有了一次具体的Liunx实践,对前时期积累的经验和知识有了更深的理解,更多的实证,也很不幸的有了一次与慢性病抗争的经验……

Continue reading →


05
Jan 11

使用Cscope阅读Linux源码

cscope是神马

cscope是什么东东?先看看官方定义:

“cscope is an interactive, screen-oriented tool that allows the user to browse through C source files for specified elements of code.”

简译并补充为:“cscope 是一支面向屏幕的(与面向行相对)交互式C源代码浏览程序。它可以对C程序源代码的元素(例如各种标号:变量,宏以及函数调用等)进行索引,提供简单的字符查询界面,用户可根据【元素名】对其定义及引用进行查询查看。”

以上是cscope的一个严格的完整定义,此定义表明cscope有两个主要功能,第一是对C源码文件进行[符号索引];第二是提供简单的查询接口。如果你一般只使用像VIM这样的高级工具编辑和阅读源码,完全可把cscope理解成生成源码[符号引用数据库]的工具。

Continue reading →