摘要: /*ARMLinux源代码分析(1)--head.STigerZ(tigerz@yeah.net)http://emblinux.org/1. 分析环境 kernel: 2.6.10 board: SMDK2410 1.32, 64M SDRAM, 128M SM卡2. head.S*//** linux/arch/arm/kernel/head.S** Copyright (C) 1994-2002 Russell King** This program is free software; you can redistribute it and/or modify* it under the 阅读全文
posted @ 2011-02-19 19:36 夏大王 阅读(1997) 评论(0) 推荐(0) 编辑
摘要: 最近研究了一下arm linux的入口部分的代码, code不是太多,所以写了个笔记,详细的分析了每一条语句. 大家看看, 交流一下. 下面使正文. 由于内容比较多,分几层楼发吧 ____________________________________________________________________________________ 本文针对arm linux, 从kernel的第一条指令开始分析,一直分析到进入start_kernel()函数. 我们当前以linux-2.6.19内核版本作为范例来分析,本文中所有的代码,前面都会加上行号以便于和源码进行对照, 例: 在文件ini 阅读全文
posted @ 2011-02-19 19:14 夏大王 阅读(437) 评论(0) 推荐(0) 编辑
摘要: 本文是从 Startup Suicide – Rewriting the Code 这篇文章翻译而来。 敏捷开发和最小化功能组合的好处是能持续得到客户反馈,快速迭代,防止无用程序的产生。但是随着时间的推移,如果开发人员不注意,那些为早期客户编写的程序会变得笨拙不堪,难以维护,无法扩展。你最终会讽刺的得到和敏捷方法完全相反的结果。而且问题的严重程度会随着公司的壮大呈指数级增长。合理的解决方案是什么?... 阅读全文
posted @ 2011-02-18 21:30 夏大王 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 在arm-Linux的不同阶段我们控制使用io端口的方法是不一样的,最近遇到这个问题,尚未完全弄清楚;先罗列些资料,等完全明白好总结;http://www.linuxforum.net/forum/showflat.php?Cat=&Board=driver&Number=742150&page=&view=&sb=&o=http://blog.csdn.net/kut00/archive/2010/07/22/5756535.aspxhttp://www.itsky2010.cn/embedded-processor/arm/2010/1022 阅读全文
posted @ 2011-02-18 21:17 夏大王 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 布线(Layout)是PCB设计工程师最基本的工作技能之一。走线的好坏将直接影响到整个系统的性能,大多数高速的设计理论也要最终经过Layout得以实现并验证,由此可见,布线在高速PCB设计中是至关重要的。下面将针对实际布线中可能遇到的一些情况,分析其合理性,并给出一些比较优化的走线策略。主要从直角走线,差分走线,蛇形线等三个方面来阐述。 1. 直角走线    ... 阅读全文
posted @ 2011-02-17 15:11 夏大王 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 在源码中,宏likely和unlikely 是这么定义的(位于include/linux/compiler.h):#define likely(x)__builtin_expect(!!(x), 1)#define unlikely(x)__builtin_expect(!!(x), 0)要理解宏likely和unlikely ,很明显必须理解__builtin_expect。__builtin_expect是GCC(version>=2.9)引进的宏,其作用就是帮助编译器判断条件跳转的预期值,避免跳转造成时间浪费。拿下面的代码来说:if (likely(acat == 1)) //表示 阅读全文
posted @ 2011-02-16 11:02 夏大王 阅读(1751) 评论(0) 推荐(0) 编辑
摘要: 1.http://lxr.ncu.cc/source/Makefile?a=arm;v=linux-2.6.28.52.kernel 启动过程之一, uimge, zimage,arch/arm/boot/compressed/head.S http://blog.csdn.net/pottichu/archive/2009/06/11/4261150.aspx3.http://www.cublog.cn/u/31100/article_52321.html 阅读全文
posted @ 2011-02-14 21:38 夏大王 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 写在一年的结束毕业后进入一家公司××高科,律属××集团;那年是传说中的2008年;今年5月份终于走出来了;进入了一家××科技公司;我努力的工作,读过梭罗的瓦尔登湖的几句话,我步入丛林 因为我希望生活有意义 我希望活得深刻 吸取生命中所有精华 把非生命的一切都击溃 以免当我生命终结 发现自己从没活过 。。短短几句,我想会令我今生难以忘记。我努力的工作,我在寻找 找寻一些东西。。。一年过去 回首往事曾经经常在一起的人 一一离去一个一个不熟悉的人渐渐的变得熟悉这是令我开心的同样开心的是离去的并未真正的离去。。我很高兴 对此我不应该平凡的度过此生我们不应该平凡的度过此生虽然,我现在看上去还是很平凡虽然 阅读全文
posted @ 2011-01-28 22:01 夏大王 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 基于Linux的嵌入式系统全程喂狗策略 2009-05-12 07:31:30 作者:张长顺 黄建元 来源:单片机与嵌入式系统应用关键字:Linux 看门狗 IMP706   引 言  在嵌入式系统中,为了使系统在异常情况下能自动恢复,一般都会引入看门狗电路。看门狗电路其实就是一个计数器。当看门狗启动后,计数器开始自动计数,经过一定时间计数器溢出就会对CPU产生一个复位信号使系统重启。系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零也即喂狗,不让复位信号产生。  当前在带Linux操作系统的嵌入式系统中,由于Linux操作系统加载时间较长(如10~30 s),一般都超过看门狗的时 阅读全文
posted @ 2011-01-28 09:27 夏大王 阅读(602) 评论(0) 推荐(0) 编辑
摘要: 问题尚未解决 明天继续了# Unable to handle kernel NULL pointer dereference at virtual address 00000005 pgd = c3b00000 [00000005] *pgd=23af7031, *pte=00000000, *ppte=00000000 Internal error: Oops: 17 [#1]Modules linked in: micint at91_gpio(P) cd4053 mcp251x can_dev can_bcm can_raw canCPU: 0 Tainted: P (2.6.27 #2 阅读全文
posted @ 2011-01-27 22:13 夏大王 阅读(4523) 评论(0) 推荐(0) 编辑