- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 中国之怪现象
一, 喜酒现象:但凡喜事,总是希望能和大家“分享”,不管熟不熟,哪怕是只在数年前偶遇过一次,也得叫来捧场,顺便“提现”。结论:自己的喜事,应该同愿意和你庆祝的人分享,那些不相干的人物就免了吧。待续。。。
2010-11-13 21:32:00
579
原创 我也装cygwin
没办法,为了在 windows下烧写avr的firmware,只能妥协装个cygwin了。老大给了份日文文档,好在我有一定基础,那些英文还是认识的,知道要装啥。 1.latest cygwin, 选中:一些列开发必备的工具,记得要选make,这里他没告诉我;安装之; 2.flip-3.4.1 for at90usbxxx 3.latest winavr for
2010-05-29 11:26:00
540
原创 奇怪的UNION现象
struct test_1 { int (*t1)(void); int (*t2)(void); }; struct test_2 { int (*t1)(void); }; struct test { union { struct test_1 t1; struc
2010-05-17 10:55:00
663
1
原创 终于用到了fflush()
今天遇到一“怪事”: 程序正常输出几千条log信息,能全部输出,但是通过重定向到一个文件中时总是少那么几十条,尝试了输出:2000,3000条结果差不多。 后来小吴告诉我说是行缓冲的问题,果然如此,加上个fflush()就行了。 为什么会遇到这个问题?1. 我们希望实现ISAKMP的椭圆曲线密钥交换,因此需要先实现椭圆曲线的基本运算,即:点+点和点*点。使用了sec的测试数据,
2010-04-26 21:36:00
541
原创 avr的应用程序启动我都做了啥(enrty.S)
avr(at90...)的中断处理函数"注册"流程: head.S中设置了默认中断处理(即:not_defined -> reset),同时注意到,这些位置的标记(symbol)都是弱的(.weak指明),也就是说,可以在程序中替换这些默认中断处理,也就是正常的方式,通过编译器定义好的方式写中断函数就可以了,编译器将我们自定义的中断处理函数做如下处理:1. 保存现场(prologue);
2010-04-23 07:49:00
805
2
原创 avr的应用程序启动我都做了啥(head.S)
由于我们的firmware不希望用到C库,所以链接器脚本和c-runtime都需要自己写,其实也没写,无非就是把C库的拿来改了几行。这没什么好说的,就把avr c-runtime主要做了写啥记录记录: 1. 设置中断向量表(vector),这在datasheet中是有定义的,每款芯片不同,向量个数亦不同,为了做到通用,这里定义了100+的向量,实际上,单独芯片通过定义_VECTORS_SI
2010-04-16 23:02:00
636
1
原创 该睡觉了
2个月,过去了,做了一个感觉没有什么意义的项目,很有可能是我人生中第一个“成果”。每天都要抱怨一下,在结束的时候却没有了这份心情,前几天还叫嚣着完成这个项目要休息休息,现在又没这想法了。我该睡觉了。
2010-01-22 00:38:00
436
原创 Cが大好き
刚才接到一公司的电话,说有个嵌入式项目,大致介绍了下,突然他说他们的系统用C++,我暂停了。 ME: 嵌入式我都用C的。HIM:国内小公司的嵌入式项目都用C,我们这是大系统,几百万行代码你用C?HIM: 你是不会C++,还是讨厌C++。ME: 后者吧。HIM: 那我们没必要继续了。ME:不好意思。 估计是HR。
2009-11-22 17:02:00
571
3
原创 老大语录
1. 写正确的代码; 2. 死前把知识留下; 3. 聪明人世上很多,勤奋的少些,我年轻时候碰巧勤奋过一阵子; 4. 嗯? 哪里不清楚? 5.全球工资几强才有用,其他强和你没关系。 6. ...
2009-11-20 22:25:00
532
1
原创 linux同步论
1 同步概要在计算机中或生活中,经常遇到这样一种情况:多个访问者对同一个资源进行访问、操作,这里面涉及到的一个关键内容就是如何同步,即怎么保证该次访问的内容是所期待的。简单的例子,甲希望访问一个资源,该资源更新日期为昨天,但乙却在甲访问前的插了一脚,对资源做了修改,那么甲访问到的就不是所期待的内容了,后续的操作可能就会出现问题。这个例子可能不太合适,你可能会说,那甲应
2009-11-14 16:48:00
535
1
原创 技术人员要怎么创造价值
前几天看到老大的BLOG,好像提到做技术的创造真正的价值。当时觉得好像是那么回事。今天与兄长聊了会,我又觉得有些问题。 就拿自己来说,我创造了什么价值?我做的对谁有益?谁需要这所谓的价值?似乎没有。我做的事,没有任何产出,能算创造价值吗?半死不活的状态似乎只能是消耗别人的创造物,连IT民工的称谓都不配了。 一个产品可以是1. 内部接近完美,外表光鲜;2. 内部粗糙,外表光
2009-11-07 23:09:00
820
1
原创 u-boot memory layout
我们板子的 u-boot memory layout,这也算是看了u-boot好像就得到这个了。其实大多数系统类似,FYI。
2009-11-04 15:54:00
1481
原创 use git send patch
搞了一个早上,终于把PATCH提交到社区了,等待审批。 1/ git-clone project.repo.git 2/ do some modifications 3/ git-commit -a -m "your message that will appare as the PATCH title and description" 4/ git-format
2009-11-02 12:07:00
918
3
原创 如何走进嵌入式开发[3] -- 烧录bootloader
在拿到一块空白板子时,我们的bootloader如何烧到FLASH上呢? 一个途径就是通过仿真器,ARM有高级仿真器,高级货是不错,不过我们选择穷人的方式,也是个仿真器,至于是啥,网上一搜一大堆,jlink, openjtag, usb...,东西很多,国内便宜(大家都知道)。按照标准,其实这些叫作适配器,反正就是一接口,连上去就好了,对了,是JTAG接口。 以前不懂的时候,以为接上就能
2009-10-31 19:37:00
1680
2
原创 如何走进嵌入式开发[2] -- bootloader
bootloader,嵌入式上,很多人选择的是U-BOOT,确实不错。其他的,比如VIVI啥的我也只闻其声,未见其人,也就不好评论了. 见过几个BSP,里面带的bootloader也都是U-BOOT。 感觉U-BOOT和内核很像,一部分汇编代码部分,特定的BOARD和CPU,初始化操作等;另一部分就是C代码,也有很多初始化工作;具体它们的功能如何,没有规定,有的CPU汇编部分做很多事
2009-10-30 23:11:00
545
原创 如何走进嵌入式开发[1] -- 基本组成
首先需要申明的是,本人也还是X鸟级,说的只是现阶段粗浅想法,可能明年就不是这样想了,一个朋友让我给介绍下如何入门,在此就总结关于这个话题的经验。 记得毕业设计时,觉得嵌入式这个名字比较高级,主要是以前没怎么听过,毕设就选了个相关题目,结果那叫惨不忍睹呀,只能靠文档充数。 鬼使神差,第一份工作做的竟然也是嵌入式相关,我就带着从学校里学得的XX理论,加入嵌入式新兵行列。 感觉,
2009-10-29 22:31:00
683
3
原创 提交 ks8695 serial driver patch 失败
这两天在跑 KS8695 开发板,移植 u-boot 还算顺利,将内存分布弄弄清楚就完成了。标准内核已经包括了 KS8695 的支持,原本想也不需要花时间,直接编译就能跑,果然能跑,可是跑起来就死了。后来通过 jtag 调试,知道死在了 synchronize_irq() 里,再查原因,是 serial_ks8695.c 里面的中断处理函数里面调用了 disable_irq() -> sy
2009-10-15 20:16:00
631
1
原创 鄙视优快云 BBS删我帖的家伙
今天想看看前几天发的帖子,可能是广告帖吧(宣传我的QQ群),发现居然给删除了,也没有告知原因,以后不在这个BBS发帖,回帖了。BS一下,纪念一下。
2009-09-29 18:41:00
506
1
原创 hrtimer小记
入正题,其实在arch下加入硬件相关的高精度时钟代码并不复杂,不过这个概念倒是让我费了不少力气,前几天的文档丢失事件也在其中。 Q:老结构的timer框架能用,为什么还要用hrtimer?A:相对old来说比较new,比较帅。 Q:真的能高精度吗?以前不行吗?A:能否高精度取决硬件的时钟源,也就是内核需要一个 clock source,这个的精度决定了你的精度,你的精度是
2009-09-26 01:05:00
1628
原创 对称真的美吗
看很多代码,典型的是linux内核,我们都会注意,到处体现着对称:申请和释放、注册和注销。。。真是无处不对称。不对称时常也成为BUG的根源,有时候在找某些问题时,想到的第一件事就是是否乱释放了,是否锁没有成对出现,这是经验,也是准则。秉承着如此行事原则,以致我认为人为的造成不对称是程序员不负责任的表现,你申请资源,用完就闪啦?就算你是单任务好了,就算OS会帮你打扫,你也给我留下了坏印象。也
2009-09-16 21:39:00
454
1
原创 面试题--回忆篇
今天不知道怎么突然想到了 haffman编码,尔后又突然想到了 刚进公司时的面试题 -- 求海明重量。难得,那就介绍下海明这个玩意,不要再忘记了,以此纪念。 记得当时题目不是直接写的海明重量,是算一个0、1数串的1的个数。当时好像写了好多废函数,年代久远,我忘了。 说海明重量前,得先介绍什么是海明距离:定义为:两个等长的串,对应位不同的个数,如112233 和 1133
2009-09-10 21:04:00
513
2
原创 arm linux clock implement
随性写的,不够完整,暂时先记着,还有一些没搞清楚呢!~ 近日在做新版内核的移植工作,将原来的BSP弄进最新内核2.6.31-rc7中(已经又出新的了)。 在改写系统定时器(sys_timer)部分时,发现总缺少什么东西,我也不知道少什么,老大的提议+参考大牛的代码,发现这个BSP竟然没有clock管理的代码,不过也对,他们是本着能跑的理念来完成这个BSP,没有用到的就省略了,也不能
2009-09-09 23:20:00
1163
1
原创 JAVA奇遇 -- GTGE 游戏引擎分析[1]
名字很玄乎,请不要被我的XX吓到,这句台词,好像很熟,定是经常萦绕耳旁。其实,我不懂JAVA,而且,JAVA是我所"抵制"的2种语言之一,另一种我就不说了,人各有志,哪位觉得我不对的,就当成一阵风,散了就算了。但是,世事难料,尽然就让我碰上了它,可能是上天注定的,逃避总不是办法,唯有迎接挑战,最起码,待我学成归来时,在我的履历表上又多了一项"精通",不知道现在是否还有刚毕业时的"执着",学
2009-09-08 13:05:00
595
原创 linux kernel bridge entrance
好久没有随笔了,帖下昨天的一部分笔记吧,现在在研究 linux bridge 部分,希望实现与硬件switch的完美结合。以下是内核 bridge 模块初始化部分分析,内核版本是 2.6.23.9。只涉及到入口点,STP部分及其他细节部分没有在这里谈及。通过这些入口,大致可以了解 linux bridge部分的流程了。Hope its useful. Any comment is welcome.
2009-09-08 13:02:00
2516
1
原创 分组密码工作模式简述
这篇随笔将介绍对称加密中分组密码的工作模式 -- RT。工作模式:其实很愚钝,今天才突然明白这个模式是什么意思?所谓模式,就是方法,就是加密的方法,既然是对称加密,解密方法也包括在内了。在分组密码理论上,简单的说就是一个分组经过加密,产生一个对应的分组密文,至于如何加密,没有限制,模式就对应这里的“如何加密”,从A点到B点,我们可以有多种走法,供君选择,可以是直接A到B,也可以是A到C再到
2009-09-08 13:01:00
1918
原创 USB CCID "复杂"命令拾零
本文记录 USB CCID 标准中几个"复杂"的命令,复杂在于在这些命令身上花的时间较之简单的命令多许多或者是理解的时间比较晚,可能就是刚才。主要有以下几条:ccid_T0APDU();ccid_Secure();ccid_Escape();ccid_Abort();ccid_Mechanical();ccid_SetDataRateAndClockFrequency(); ccid_T0APDU
2009-09-08 13:00:00
1541
原创 PIN初探
这篇随笔是在许多疑问的驱使下完成的,当然也都是一些关于Personal Identification Number(PIN)的基础概念,可能比较白,反正我昨天还是处于发晕的状态。 问题1:常看到一些输入PIN的机器,用户直接在终端输入,这些PIN码存在哪里?怎么去运算比较呢?问题2:一般智能卡都有2个PIN,一个称之为SO-PIN(securiy officer PIN),另一个为U
2009-09-08 12:59:00
757
原创 [RFC NOTE]2661 -- 2.0 拓扑结构
2.0 拓扑结构L2TP的目标是:用隧道承载PPP帧。从拓扑图我们可以看到有两种情况:1. 远程主机通过电话网络创建与LAC的PPP连接,之后LAC通过隧道与LNS连接以达到访问HOME LAN的目的。HOME LAN通过PPP 的NCP 协商为其分配地址。HOME LAN的管理域提供AAA就好像用户是直接与NAS连接一样。2. 一个LAC 客户端(一个主机自身运行着L2TP)加入
2007-12-02 16:25:00
627
原创 记录小代码
/**//** NO.1* KEY : printf 的参数 s ,设置输出范围的方法。* NOTE : 一直以来不看重这些基础,认为分析这样的代码没啥意义,拿机器里面跑一下就可以了,现在看来有点错误,这些是最基本* 的常识,应该很轻松就看到点上才得,所以本主题将记录一些基础的代码,来打牢基础知识。*/#define N 10main()...{ int i; for
2007-09-23 17:29:00
596
原创 我们树立远大理想--做不一般的程序员
虽说暂时还算不上程序员,不过我们身边有不少优秀的程序员,我们沿着程序员的路再走着。看到许多程序员不太在乎外表,而修养内在。这个很重要,可是我们能一样吗?为什么要一样?今天和李桑开洋荤,学人整脸去了,明天见不了人了,越想越搞笑--这事发生在俩懒鬼身上。比较佩服那些推销的朋友,太厉害了。我们原来计划10圆解决问题的,最后好象我们的问题就不是问题,把我们带人哪条河都不懂了,反正现在想来当时是晕了,晕得无
2007-09-23 15:45:00
580
原创 台风过境
今天台风来了,遇见危险我们首先想着的是逃吧,可是能往哪逃呢?还没见过真正的台风,跑了就看不到了。是不是一个人也会有很多东西明知道危险也不会逃,有好的也有坏的?想不了那么多,反正我们静待佳音,难说晚上睡觉床边就都是水,我还得拿盆子去运水。
2007-09-18 19:52:00
553
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人