我已经在嵌入式在线BLOG安家了,欢迎你时常过来做客,大家多多交流哦。我会把一些新鲜有趣的东西记录下来一块与你分享。也希望你记住我的BLOG地址,你可以把她添加到你的收藏夹,也可以把她复制下来告诉你的朋友们。快来免费注册吧,马上拥有自己的网络家园。发布文章,分享相片,创建个性化的部落,结交嵌入式行业的网友……嵌入你的生活,嵌入你的梦想!我的BLOG地址: http://blog.mcuol.com/annecy

>> 阅读全文

据市场调研公司Gartner的初步数据,2006年全球半导体销售额为2614亿美元,比2005年增长11.3%。此外,Gartner预期目前的库存修正将在2007年第一季度末结束,从而2007年销售额增长率达到7-9%左右。而对于2006年市场的最新预估,大大高于Gartner在10月发布的增长8%或9%的预估。 “2006年DRAM强劲增长,接过了NAND闪存一年前扮演的角色。”Gartner的研究主管Jeremey Donovan表示。“除了DRAM,无线半导体销售额再度推动产业强劲增长。” 据Gartner的估计,尽管销售额下降9.5%,但英特尔2006年仍将是最大的芯片供应商。直到第四季度,英特尔的份额仍在下降,因在服务器和消费领域其CPU被AMD的产品所取代,全面的价格战进一步损及英特尔的销售额。作为较大的供应商,英特尔的销售额可能将继续下降。 与此同时,三星电子的份额继续上升,占据了7.9%的市场。三星现在控制了内存市场的多数领域,在DRAM、SRAM和NAND闪存领域占据首位。 2006年AMD排名进入前10,部分缘于它收购了ATI。把AMD和ATI的2005年业绩合并在一起计算,预计今年其合并销售额增长32.1%。 “在过去两年里,Elpida通过内部大量增加产能和代工伙伴力晶半导体及中芯国际,提高了在DRAM市场的份额。”Donovan表示...

>> 阅读全文

谈谈最近我的几次见闻:近期,我参加第二届MEMS管理层会议,饶有兴趣地倾听了行业经理人探索新商机的研讨会。MEMS一直被视为明天技术之星,但这次弥漫在空气中的乐观情绪却令人难以抗拒。 与之相比的是早几天参加的EDA联盟(EDAC)的年度Phil Kaufman颁奖晚宴。该活动对于斯坦福教授Bob Dutton及他数年来对设计自动化的贡献来讲是莫大的荣誉,但当天晚上总体有种离职的感觉。EDA工业几年表现良好,但总体说来一直挣扎于身份和价值观等问题。Gartner Dataquest最近解散了EDA业务,解雇了一些资深行业观察家,包括Gary Smith和Daya Nadamun。人们已经在讨论收折起EDAC的帐篷转投SEMI门下。 堪称幽默机智的伟大演说家---Synopsys CEO Aart de Geus的演讲言论却真的击中了我。他将EDA工业描述成电子工业的门口擦鞋垫。而EDAC的宣传标语是:“EDA:电子工业始发之地”,而Aart似乎要将之改为:“EDA:电子工业擦它那脏鞋的地方。” 尽管创造了创新性的根本技术,EDA仍然一直是一个孤立的小岛,在绝境中倍受折磨。 半导体工业很明显有自身的问题,并不断地受到OEM客户就价格、性能和质量等方面袭来的压力。我无法想象国家半导体的CEO Brian Halla本周在SIA晚宴上将芯片制造商指...

>> 阅读全文

针对好多Linux爱好者对内核很有兴趣却无从下口,本文旨在介绍一种解读linux内核源码的入门方法,而不是解说linux复杂的内核机制;一.核心源程序的文件组织:1.Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心。本文基于稳定的2.2.5源代码,第二部分的实现平台为RedhatLinux6.0。2.核心源程序的文件按树形结构进行组织,在源程序树的最上层你会看到这样一些目录:●Arch:arch子目录包括了所有和体系结构相关的核心代码。它的每一个子目录都代表一种支持的体系结构,例如i386就是关于intelcpu及与之相兼容体系结构的子目录。PC机一般都基于此目录;●Include:include子目录包括编译核心所需要的大部分头文件。与平台无关的头文件在include/linux子目录下,与intelcpu相关的头文件在include/asm-i386子目录下,而include/scsi目录则是有关scsi设备的头文件目录;●Init:这个目录包含核心的初始化代码(注:不是系统的引导代码),包含两个文件main.c和Version.c,这是研究核心如何工作的一个非常好的起点。●Mm:这个目录包括...

>> 阅读全文

NetSilicon公司WilliamDowell为无线设备建立网络连接的技术原因很多,从方便新产品升级到上传修复的错误,不一而足。不过,远程升级最明显的好处是节省和方便。远程连接,例如通过一个无线至以太网网关来实现,可以让OEM向拥有无线设备、具有下载最新Flash映像能力的客户分发智能硬件。这不仅将减少配置时间,而且该过程控制无需人工干预和直接到达设备,从而避免了用户失误造成不良的影响。图1FTP的文件传送图2HTTP的文件传送用FTP升级最有效的映像升级工具之一,是文件传输协议(FTP)或者FTP服务器。在图1中,一个FTP客户机或服务器(取决于系统的设计)要求上传一个文件。如果用户只是浏览文件系统,FTP将不进行任何操作。一旦当用户得到确认,客户机或服务器将访问该设备的文件系统。如果用户想从系统中取得一个文件,系统将调用一个子程序。当遇到新的二进制映像时,系统将唤醒一个Flash编程器子程序,进行设备升级。如果该二进制映像不是新的,整个过程与常规的FTP文件访问过程无异。这类检查非常重要,因为它保护系统避免执行不希望的现场升级。用户必须知道要进行映像升级的文件的准确名称。在这种情况下,错误检测是一种直截了当的防止Flash编程不一致性方法。FTP方...

>> 阅读全文

S3C2410的初始化代码主要涉及到对系统主要模块的配置、运行环境的建立、系统时钟、MMU等模块的配置,下面按执行顺序依次都各个部分进行分析: l 程序入口:(ResetHandler) 在程序一开始,首先进行的一些操作主要保证初始化程序能够顺利的运行,因此主要包括关闭WDT、中断,配置锁相环等。 l 配置memory接口 memory接口是确保数据访问正确的基本保障,此处主要配置SFR寄存器中0x48000000开始的memory接口寄存器组,确保每个bank的位宽、访问类型(waitable)以及时序参数正确。如果没有特别的要求,一般来说时序参数使用默认值即可。 l 初始化堆栈 ARM有6种运行模式,必须为每一种模式提供独立的堆栈空间,在堆栈设置之前是不能进行C函数的调用的。ARM的堆栈模式是从高地址递减的,我们可以将堆栈的首地址设在0x33ff8000处,往低依次为FIQ、IRQ、Abort、Undef、SVC,其中SVC和User模式不予区分。堆栈大小一般可在头文件或者当前文件中修改。 l 运行空间的初始化 这段代码主要完成两个功能,一是将RW数据搬运到RW空间(我们生成ROM镜像时,RW数据是跟在RO数据之后的),二是初始化ZI数据段。当然,这段代码存在的前提是代码的运行环境只是标准的两段式:一段RO空间和一段RW...

>> 阅读全文

我是从网上看到的这篇应用笔记,感觉还可以,分享给大家。我粗略翻译了一点,加了一点自己理解的注释。后面的就不再翻译了,大家想继续看的话到菲利普网站上下吧。
使用LPC2106的Timer 1 进行的简单的中断处理。示例代码中Timer1分为FIQ和IRQ,用户可以从Flash或者SRAM中运行这些代码。
示例展示了ARM构架中中断是如何操作的。提供的代码表示了向量IRQ(中断请求)和FIQ(快速中断)两种情况。中断向量位于FLASH地址中的 0x00-0x1C。如果需要从SRAM中运行,则中断向量需要被remapped to 0x40000000-0x4000000C。这可以通过Memory Map register来做到。这些代码用ADS1.2开发,从FLASH中运行。提供了从SRAM中运行代码的不同之处。中断服务程序(ISR)使用C语言编写IRQ,用汇编来编写FIQ。
示例使用下面的样式排列:1. TIMER1 被配置为触发IRQ中断,代码从FLASH中运行;2. 代码从SRAM中运行所需要的改变和增加;3. TIMER1被配置为触发FIQ中断,代码从FLASH中运行;4. 代码从SRAM中运行所需要的改变和增加。
TIMER1 被配置为触发一个IRQ中断,代码从FLASH中运行这个示例包含下述文件:1. 中断向量表(ivt.s)2. 启动用的汇编代码(...

>> 阅读全文

编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。  第一招:以空间换时间  计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。  例如:字符串的赋值。  方法A:通常的办法:#defineLEN32charstring1[LEN];memset(string1,0,LEN);strcpy(string1,"Thisisaexample!!");  方法B:constcharstring2[LEN]="Thisisaexample!";char*cp;cp=string2  使用的时候可以直接用指针来操作。  从上面的例子可以看出,A和B的效率是不能比的。在同样的存储空间下,B直接使用指针就可以操作了,而A需要调用两个字符函数才能完成。B的缺点在于灵活性没有A好。在需要频繁更改一个字符串内容的时候,A具有更好的灵活性;如果采用方法B,则需要预存许多字符串,虽然占用了大量的内存,但是获得了程序执行的高效率。 如果系统的实时性要求很高,内存还有一些,那我推荐你使用该招数。该招数的变招--使用宏函数而不是函数。举例如下:  方法C:#definebwMCDR2_ADDRESS4#definebsMCDR2_ADDRE...

>> 阅读全文