Life @ 02 October 2011, “4 Comments”

有点难过,一个改变的好机会最后还是把握不住。
笔试时间有限,题不用答的太细,最重要的是体现出思路对。保持平静的心态很重要,尤其在面试时,有些问题答不出来时更需冷静,思路要保持清晰。
面试官最后善意的提醒让我清晰反省失利的原因。对于写在简历上的东西,自己一定要理解透,前因后果要联系的清晰,否则就不要往上写。
其实,最后的最后,结果的形成都是平日点点滴滴的结果,自己清楚。
反省吧,希望类似下次不再遗憾。

Life @ 10 July 2011, “No Comments”

项目已结束一段时间,中途也遇到过不少出乎意料的问题,可惜没用烂笔头记下来,不少都忘却了。鉴于此,得花点时间把印象较深刻的记录下来,供日后参考。
现在的混合信号系统级的单片机大都集成了非常丰富的外设资源,光从外设资源看,跟一般的arm、dsp相比也差不了什么去。但好多单片机毕竟是基于8051核(或与8051兼容)8位单片机,内部ram也就256字节。因此在编程时,除了考虑代码的效率外,还得多考虑内部Ram的使用。在Memory model 选择为Small类型时,内部ram只能用128字节,此时更需注意。自己在应用时得出的一些心得如下:
1、对于全局变量,如使用不十分频繁,可全放在xdata段,即外部ram。
2、对于全部变量,若不初始化,则不能对它的初值进行任何假设。所以要注意初始化。
3、在编写代码时,涉及乘除法的,能用移位操作解决的,尽量用移位操作,这样能提高代码效率。譬如j=i*9;可以写成
j=(i<<3) + i;
4、在编写代码时,尽量不要用浮点型数据(float),单片机用float数据显得太笨了,尽管支持。尽量转化为定点数据来设
计算。譬如( int)j=2.3*(unsigned int)i - 27.5;其中i<300,怎可写成
( int)j=(9420*(unsigned long)i - 112640)>> 12;
这样,就能避免浮点运算的繁琐,提高编码效率。当然,这得保证数据不溢出的情况下。
5、对于某个子程序内某部分需要做延时,但又不影响其它部分每次主循环时继续执行,则可用状态机的方法。
6、对于片内定时器等的设置,一定要经过示波器看波形进行实际验证,因为某些忽略的配置细节,都可能会导致实际出来的
是自己想要的定时。

Life @ 09 July 2011, “2 Comments”

今天收到邮件通知,域名要过期了(实际上还有一个月),续交了一年,$9.17,比第一次贵了9倍喽。主机也快了,到时再续。时间如流水,又一个轮回了,自己现在比一年前又长进了些什么呢?有些事情自己未能按所想的来进行,也有些事情经过时间的淘沙慢慢沉淀出原质来。好习惯往往是让人不舒服的习惯,而坏习惯恰恰是令人一时畅快的。所以,往后自己要懂得刻意去培养些好习惯。
想要给昨天与明天做个明确划分,或许不是件明智的事情。所谓的浪子回头,只不过是对往事不堪的慰藉罢了。明天,是脱离不来昨天的。所以,我该做的,应该是利用昨天的经验与教训,好好把握今天。曾经错过的,再回到手里,已似乎带不回曾经的感觉了。既然如此,自己何不抬头往前看呢,何不呢。
等下个一年,再来看看自己如何渡过此年。

Life @ 13 June 2011, “2 Comments”

好久没有写东西了,有时回想,游戏的刺激确实让我渡过了段痛苦的时光,但终究内心不得平静。还是练练笔好,练习着静静的面对自己。梭罗的瓦尔登湖很静很静,自己一直希望能够感受进去。
前前后后,来中科院寒焊研究所在平凉的雷电与雹暴观察站将近两个月了,这得拜赐于我们的新雷达。当然,对于气象局,对于雷达站,自己还是心怀歉意。不过,真的挺喜欢这里,静静的。山上的气候一点也不像夏天,倒是像那清凉的初秋,微风把白白的柳絮吹得满地。据说,这些柳树叫左宗柳,是当年左宗棠平定平凉后种下的。山上还有好多废弃的窑洞,上次去马姨家吃饭时,还专门让她带我进她家的窑洞的参观了下,好凉快,冬暖夏凉不是吹的。只是因为安全性问题,当地人都改住平房了,离新家进的窑洞一般用来存放粮食等。
说到马姨,很朴素很善良的农家妇女,我们的一天三顿,她都给操办的好好的。在电视上看到湖南湖北一带的洪涝,她会觉得很心酸,还得我们的张教授开导开导,共产党也没办法,看淡点。马姨不吃肉,称她素食主义者也不太合适,为此我还问过她,她是纯粹的不喜欢吃肉。也因为马姨的关心,我一改晚起不吃早餐的习惯。刚开始好多天都没去吃,但她每天依然留着我那份,还提醒我明天记得来吃,自己心理蛮不好意思,也充满的了感激。工作上,又有张教授给予了我很多的指导,最重要的是,给我树立的榜样。在我眼里,张教授真的是为国家做了奉献的那一代人的一个代表。他上海人,北大毕业后,到所35年,离家44年,踏踏实实地工作,发表了很多高质量的文章。我曾弱弱的问过他,来这个站30多年了,在山上觉得枯燥吗。他其中说了句让我很敬仰的话:转眼人生到了甲子,我努力了,奋斗过,足也。
站上的大黄狗妞子生了7个崽,头胎,到现在近一个月了,很可爱的7只小狗,能走路了。妞子一下子痩了一圈,皮毛也不那么鲜亮了,每次抚摸她,看着它的眼神,有点艰辛,但充满慈爱,不得不让人感慨,做母亲的不易与伟大。
在这一切是那么的宁静,自己的内心有中说不出的归属感,就像到了家。希望离开后,能保留着这份宁静之心。

在做uboot移植、linux内核移植时,常需要用TFTP SEVER 、DNW等Windows下的软件进行映像文件下载,刚好Windows下装有Cygwin,避免像一般教程所说的用虚拟机下linux进行开发的麻烦。这就需要在cygwin下建立交叉编译器。
采用交叉编译工具链crosstool-0.43.tar.gz,这在Dan Kegel官方网站上可以下载,网站还提供了相应的编译源码的补丁下载。选取了相应的源码几补丁文件,binutils-2.15.tar、gcc-3.4.5.tar、gdb-7.0.tar、glibc-2.3.6.tar、glibc-linuxthreads-2.3.6.tar、linux-2.6.8.tar、linux-libc-headers-2.6.12.0.tar,放在了D盘的crosstools文件夹的src子文件夹下。
下来加压crosstool-0.43.tar.gz到自己指定的路径下,然后就需要修改demo-arm-softfloat.sh文件了,把TARBALLS_DIR=/cygdrive/d/crosstools/src
也就是设定你的编译源码存放的位置。编译结果存放的顶级目录位置按默认,即RESULT_TOP=/opt/work。并且根据源码gcc和glibcglibc版本选中
eval `cat arm-softfloat.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest
接着修改脚本arm-softfloat.sh,设定TARGET=arm-linux这是我们熟悉的前缀。
同样,把arm.dat里的TARGET设置为
TARGET=arm-linux
然后,修改demo-arm.sh脚本,设置TARBALLS_DIR、RESULT_TOP和上面的demo-arm-softfloat.sh脚本文件设置的一样。还需把
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest的注视去掉,而且加上–gdb选项。因为我在源码里也提供了gdb,增加交叉编译器的调试功能。
最后,all.sh脚本的PREFIX也是设置编译结果的存放路径(加上前面的RESULT_TOP),想放哪改成哪。
一些修改OK,执行./demo-arm-softfloat.sh,
等待…花了整整3个小时。配置差点的估计得五六个小时不定。
最后,测试下,可以在profile预设PATH环境变量,或者直接到编译结果的目录下,执行
./arm-linux-gcc-3.4.5.exe -v
进行测试,即可看到版本号等信息,表明OK了。
注意,生成的是exe格式的。
当然,linux下用ftp也非常方便,开通下ftp服务即可。而且,已有人推出linux版本的DNW,不需依赖在Windows环境下开发了。

Life @ 27 September 2010, “2 Comments”

看了鸭脖子夫妇的达人秀,被感动了。确却的说,是被鸭脖子夫妇感动了。
“我为了我老婆装猪也可以”,只为了圆自己妻子的在大舞台的唱歌梦。
“我当初的选择没有错,谢谢你证明了这一点,虽然现在没有KTV,没有练歌房,但老公你最棒。你证明给反对我们的人看,我们可以很幸福,不论贫穷与富贵,只要有梦想,就一定可以很幸福”。
在节目里扮猪为妻子争取唱歌机会,在日常生活里努力卖鸭脖攒钱想为老婆开个练歌房…
他们是如此的理解和支持对方,或许生活会有很多无奈,但拥有这份相濡以沫的爱情,他们依然可以过得那么幸福…

Life @ 25 September 2010, “2 Comments”


那段时间,每晚看书回来,第一件事就是泡着脚,打开陕西1套,守着《幸福还有多远》。喜欢它,以及那首《爱的代价》,不是因为那种直接的情节吸引,而是,每次,它都那么能触动内心。
我们每个人都在用心的丈量,通向幸福之路还有多远…请继续走吧,人生难免经历苦痛挣扎
,沿途的伤心流泪,那只是爱的代价…

Slackware linux @ 24 September 2010, “No Comments”

搞定本地网卡后,该整无线网卡了。

先lspci -v 或 ifconfig -a 都没有看到无线网卡项,可见2.6.33的内核还是没有驱动上。我的无线网卡为AR9285(可从windows xp 下看),一查相应的的驱动为ath9k,33内核里应该包含有。于是得检查下内核配置:


bash-3.1# make menuconfig
    Device Drivers  --->
             [*] Network device support  --->
                       [*]   Wireless LAN  --->
                                  < >   Atheros Wireless Cards  --->

可见我新编译内核时并没选上该驱动。可以把它选为内核一部分<*>或以模块形式编译进去<M>。还得确认在NetWorking support一项下选上 
< > Generic IEEE 802.11 Networking Stack (mac80211)
退出保存,然后重新make,等待,then make install ,then 等待,完成后即可看到驱动上了。如果还不行,那就下最新驱动编译安装进去吧。

然后就开始配置网卡来上网了。按照Alien BOB 所说的那样,一步步配置,但怎么也弄不好,不知为啥。后来多谢LQ的guys们,建议我装了wicd,都OK了,甚至不用配置/etc/rc.d/rc.inet1.conf  下的wireless项了。装了后在X下会有相应图标,傻瓜式操作即可。

而事实上,slackware13.0 的/extra下既有wicd package,版本为wicd-1.6.2.1-i486-1.txz,installpkg即可。

Slackware linux @ 23 September 2010, “No Comments”

买电脑回来后,赶紧装上Slackware 13.0,启动后就发现无线网卡驱动不上。本以为起码有线的网卡可以用,配置中/etc/rc.d/rc.inet1.conf中的eth0,using DHCP,然后执行 /etc/rc.d/rc.inet1.conf restart后,发现连接不上!更为诡异的是,此时再执行lspci -v,Ethernet controller 项消失了,退出linux再进入Windows XP 后,连 Windows 下的本地连接也消失掉,只能用无线网卡!这个诡异的问题困扰了我好多天,难道linux会锁死硬件???有些担心是网卡硬件有问题。也尝试在BIOS下进行相关设置,依然无济于事…

想来想去还是驱动的问题。新的内核2.6.33刚发布不久,而Skackware 13.0 的内核是30的,在总工建议下,干脆重新编译了个新的33内核进去。呵呵,大吉大利,有线网卡可以稳定的驱动出来了,进行如上的相应配置,网就能连上,也不对windows xp的本地连接造成干扰了。但是那个诡异的问题还是不明白…

PS:现在的电脑硬件更新蛮快,配置高点的机子装Slackware后会出现上述类地的驱动不上的问题。一般下个最新的驱动 安装后就能解决问题,不嫌麻烦的也可以直接编译个最新的内核。如果还不行,那就耐心等段时间,开源社区上会有linux高手发布相应的驱动出来的。

Life @ 19 September 2010, “2 Comments”

初建这个博客时,不断遇到问题、解决问题,还是蛮有涉奇的那种感觉…比如修改主题的页面宽度、字体等,这就得了解主题各个源文件的分工作用啰。由于偶不懂php语言,想满足自己一些修改欲望时,还是遇到了不少问题…

正如主题的简洁风格,偶想在sidebar里单独列个Blogroll出来,把偶喜欢的一些博客和网页区分来存放。整来整去还是不能在管理后台上整出个Blogroll menu,像原有的Link一样,可以直接点个add new link ,填个网址就ok了。现在一个解决办法是,直接在Sibar.php加链接代码,如:

 <li>
      <h3><?php _e(‘&#46;Blogroll &#123;’); ?></h3>
      <ul>
 <li><a href=”http://www.adam8157.info/”>Adam’s</a></li>
       </ul>

这样,sidebar中Blogroll是出来了,但是每次想添加喜欢的blog都得修改源码,可不是件好玩的事的呐…怎么弄呢?菜啊, 汗…有空还是得分析下get_links函数…

此外,Rss、License等以后再慢慢添吧…现权当简洁些吧

下来,就慢慢开始记录之旅吧…