① CPU性能大乱斗!国产CPU实力揭露
一直一来,缺芯少魂一直是中国信息产业的心病,中国的CPU市场也一直被Intel、ARM等国外厂商垄断,龙芯、申威、飞腾等国产CPU在社会上也往往遭到别有用心之徒诸如“打磨芯片”、“骗经费”、“政绩工程”等舆论抨击。不久前,采用申威26010的神威太湖之光在TOP500刷榜,飞腾也公布了采用ARM指令集的飞腾1500A和飞腾2000,龙芯的3A3000也顺利完成流片,那么这些国产CPU的性能到底如何呢?
如何评价CPU
如何评价CPU的性能呢?从体系结构的角度来看,有个指标叫MIPS,即每分钟执行多少条指令,执行指令数量越多,性能就越好,但这存在一个问题,当CPU指令集不同的时候,比较MIPS就意义不大了——比如A一条指令只算一个加法,B一条指令能做一个1024点的FFT。特别是在不同指令集的情况下,如何评价CPU的性能呢?
评价CPU性能必须考虑应用的多样性,比如科学运算重视双精浮点性能,但是如果数据供不上,运算能力再强也没用;比如PC日常使用更偏重于定点性能;再比如计算中心多任务环境关注的是吞吐率......因此单纯用某一个指标来衡量CPU性能是不科学的,必须综合考量。
业界也推出了很多基准测试程序,比如针对CPU的SPEC,针对嵌入式应用的EEMBC等。SPEC测试是比较权威的测试程序。和一些黑箱测试程序调整计分方式和计分权重后测试结果就发旦搜生变化不同,SPEC测试到底跑了什么程序,以及各项程序跑分和计分方式全部公开透明,而御兆且覆盖范围广——SPEC2000有12个定点程序,14个浮点程序,而且有比较强的代表性,比如gzip、vpr、gcc、mef、eon等。而SPEC2006则把定点程序扩展到14个定点程序和16个浮点程序。
在计分方法上,SPEC在计分上采用归一化的几何平均方法来进行综合性能评估——将不同CPU的执行时间与参照对象相比较后得到一个相对值。SEPC2000的参照对象是Ultra SPARC 2工作站的主频为300Mhz的CPU。如果运行测试程序1的时间是参照对象的十分之一的话,测试就是1000分,测试程序2的耗时是参照对象的八分之一的话,则为800分.....最后再算几何平均——比如SEPC2000有12个定点测试,就将12个测试成绩相乘再开12次方,SPEC2006相对于SPEC2000而言仅仅是扩展了几项测试程序,使测试更加科学合理。这里,我们以三星猎户座7420和华为麒麟950为例计算SPEC测试成绩。
“科普中国”是中国科协携同社会各方利用信息化手段开展科学传播的科学权威品牌。
本文由科普中国融合创作出品,转载请注明出处。
② 交叉编译几种常见的报错
(1)交叉编译器
在主机上用来编译其它类型机器上可执行代码的编译器就叫交叉编译器,我们进行嵌入式linux的开发主机大部分都是X86,而我们的嵌入式系统的处理器有可能是ARM/MIPS等非X86处理器,这时候就必须使用ARM/MIPS的交叉编译器才能编译出在这些处理器上能够执行的代码。这里我们使用的是ARM最新的EABI编译器。
交叉编译器在编译的时候,对于浮点运行会预设硬浮点运算FPA(float point architecture),而没有FPA的CPU,比如三星的2440等,会使用FPE(float point emulation即软浮点),这样在速度上就会受到极大限制。使用EABI(embeded application binary interface)则可以对此改善处理。
(2)不修改MAKEFILE来建立编译环境
将arm-2008q3.tar.bz2拷贝到ubuntu系统的某个目录,解压后。使用VI编辑/etc/bash.bashrc,在文件最后加入环境变量设置(注:加bin的含义是交叉编译器工具目录):
保存后,用source运行一次该文件,就可以了。
(3)gcc: error trying to exec 'cc1': execvp: No such file or directory 的解决
今天在编译开发板环境时,明明设置好编译器的环境变量了,编译时就是会出现:gcc: error trying to exec 'cc1': execvp: No such file or directory 错误提示。后来发现一个方法可以解决,输入:whereis gcc,就可以了发现好几个gcc,包括/usr/bin/gcc,所以我就把PATH路径设过去,就OK了。
(4)Clock skew detected. Your build may be incomplete
如果你装了Windows Linux双系统,系统时间很可能出问题,从而造成文件修改时间比系统时间晚,两种办法:
1,应该是你的PC的系统时钟错误,在BIOS中修改正确。
2,使用touch命令将所有文件的时间戳修改为你系统的当前时间。解决方法:find ./-name "*" -exec touch {} \;
③ RISC-V与ARM架构相比有何优势和劣势
EDN电子技术设计:请用您自己的话为读者大致介绍一下RISC-V。
胡振波:
RISC-V是一种简单、开放、免费的全新指令集架构。RISC-V最大的特点是“开放”,它的开放性允许它可以自由地被用于任何目的、允许任何人设计、制造和销售基于RISC-V的芯片或软件,这种开放性,在处理器领域是彻底的第一次。
RISC-V这种开放架构的诞生可以说是时代发展的必然。RISC-V生态体系正在全球范围内快速崛起,成为半导体产业及物联网、边缘计算等新兴应用领域的重要创新焦点。
RISC-V基金会于2015年由硅谷相关公司发起并成立,至今已有150多个企业或单位加入,包括谷歌、华为、英伟达、高通、麻省理工学院、普林顿大学、印度理工大学、中科院计算所等。目前RISC-V由基金会统一维护。
美国国防高级研究计划局(DAPRA)已连续多年通过专项方式支持RISC-V指令集的研究和实用化。2017年,印度政府大力资助基于RISC-V的处理器项目,RISC-V成为印度的事实国家指令集。我国RISC-V虽然处于起步阶段,但是发展非常迅速。今年7月,上海市政府率先发布了中国大陆首个支持RISC-V的政策,这对于RISC-V指令集在中国的发展起到了重要的推动作用。10月17日,中国RISC-V产业联盟成立,标志着我国在RISC-V生态系统建设上正式迈出了坚实的一步。
EDN电子技术设计:请分别从技术和商业的角度,分析RISC-V相对于ARM架构的优势和劣势。
胡振波:
优势非常明显,RISC-V是一种开放的架构,从 历史 的经验来看,开放的生态一定会比封闭的好。RISC-V技术是后发技术,所以能够总结前人的经验教训,做到相对简洁和干净。
但是,劣势也很明显,由于RISC-V诞生时间太短,相关的编译器、开发工具和软件开发环境(IDE)以及其它生态要素还在发展。目前RISC-V具有全套开源免费的编译器、开发工具和软件开发环境,这是RISC-V的巨大优势,但是开源版本相比ARM的商用编译器和IDE而言,还颇有差距。
RISC-V必须依靠强有力的商业玩家来长期支持和推进,方能得到持续发展。目前从全世界范围来看,在RISC-V技术阵营中,台湾的Andes公司(晶心 科技 )开发的编译器、开发工具和软件开发环境(IDE)是最为完善和先进的,几乎可以和ARM的工具相媲美。另外,还有很多RISC-V的新创公司(譬如芯来 科技 ),也会 探索 新的商业模式。
EDN电子技术设计:哪些市场应用和产品将会成为RISC-V架构快速发展的驱动力?
胡振波:
从技术的角度来讲,RISC-V架构理论上是能够实现从低功耗处理器内核到支持Linux操作系统的高性能处理器内核的全方位产品。譬如,目前美国的SiFive公司以及台湾地区专业处理器IP公司Andes(晶心 科技 )都推出了有竞争力的、支持Linux的RISC-V处理器内核。芯来 科技 目前提供面向低功耗领域的RISC-V处理器内核。
处理器领域的生态建设需要一定的时间,短期内比较容易落地的是物联网和边缘计算领域:
• 由于RISC-V拥有精简、低功耗、模块化、可扩展等技术优势,因此尤其适合对生态依赖比较小的封闭或半封闭产品、深嵌入式或新兴的物联网、包含嵌入式人工智能等应用的边缘计算领域及需要定制化的场景。
• RISC-V能够为物联网行业带来显着的灵活性和成本优势,在未来的20年,物联网和边缘计算领域的处理器内核年出货量预计会达到万亿颗的规模。中国大陆由于拥有几乎全球最大的市场空间,理论上RISC-V会大有可为。
EDN电子技术设计:RISC-V对中国半导体产业的发展会带来哪些影响?
胡振波:
从长远来看,RISC-V对中国半导体产业会产生划时代的意义,主要体现在以下5个方面:
• 通过RISC-V架构摆脱国外的垄断,实现处理器内核的国产自主。这种处理器内核不是闭门造车做出来的,而是拥有全世界认可的主流架构和主流生态。
• 通过RISC-V可以极大地加强我国处理器IP话语权。IP产业处于行业最上游,远离其它产业,并没有得到产业和国家的重视。RISC-V给了中国IP产业机会,虽然目前我国在RISC-V上仍然落后,但相对于其它IP技术,落后并不太远。
• RISC-V可以推动创新和差异化。由于RISC-V的开放、简洁、可扩展以及低成本,可以给终端应用市场带来巨大创新。
• RISC-V可以明显降低芯片研发成本。RISC-V的产业链日趋完善,从处理器内核到硬件设计、操作系统、开发工具、基准测试以及解决方案,全产业链具备完整性,使得行业可以均摊一切成本。
RISC-V的逐渐普及在一定程度上促进了行业本土化的发展,创造了更多行业机会,为产业界和学术界积累大量CPU人才。
EDN电子技术设计:您认为哪些因素会妨碍中国IC设计公司采用RISC-V架构?
胡振波:
以下三个主要因素会起到妨碍作用:
首先,ARM在中国影响力巨大。在芯片处理器内核方面,由于中国长期缺乏自主的通用处理器内核,几乎都是购买国外的ARM处理器内核,形成了习惯。对于RISC-V这样一种新架构的出现,很长一段时间内人们持怀疑态度。ARM在中国还成立了合资公司(全球唯一的国家),所以ARM在中国市场尤其显得强势,这使RISC-V在中国的传播相比别的国家显得非常缓慢。
其次,RISC-V被误导为免费。RISC-V架构是一种Free的指令集架构,准确地说Free应该理解为“自由“而不是“免费”,指令集架构也不是一款具体的处理器内核。大多数人对于处理器的一些基本概念并不了解,将RISC-V与“一款免费开源的处理器“划上等号,而免费往往是劣质的代名词。这种误导严重影响了RISC-V在中国的正常传播和发展。
最后,RISC-V还被误导为一种全新的设计语言和流程。虽然目前很多开源的RISC-V内核使用的是全新的设计语言和流程,但并不代表RISC-V处理器内核就等价于全新的设计语言和流程。全新的设计语言和流程带来的不确定性和质量隐忧会让IC设计公司(尤其是国内公司)感到排斥和不安,这种误导也会影响RISC-V处理器内核在国内的采纳和传播。其实RISC-V只是一种全新的处理器架构(以及衍生出的新生态),无关乎设计语言和流程。使用工业级成熟、稳健的设计方法更能设计出稳健可靠的RISC-V处理器内核,如芯来 科技 、台湾Andes公司(晶心 科技 )以及其它一些公司使用工业级成熟、稳健的设计方法设计出的RISC-V处理器内核。
EDN电子技术设计:您专门写了一本设计RISC-V处理器的书,请为有志于从事RISC-V架构设计的IC设计工程师和高校学生提几点建议和心得体会。
胡振波:
我认为目前学习RISC-V架构正当时,因为:
RISC-V的开放性使得任何公司与个人均可依据开放的RISC-V架构设计自己所需的处理器。很多科研机构开始使用RISC-V开发处理器,独立的RISC-V处理器IP公司开始出现,一些实力雄厚的巨头(如NVIDIA、三星等)开始使用RISC-V架构开发其自有的处理器内核,可以说是旧时王谢堂前燕,飞入寻常百姓家。因此,掌握RISC-V架构,会变成一种通用技能,对科研、学习和就业大有裨益。
当前国内CPU产业热潮方兴未艾,x86、ARM、MIPS等传统商用处理器架构在国内呈全面开花之势。龙芯、兆芯、飞腾等资深专业CPU公司在不断突破;华为、展讯等一线大公司也相继开始研发自主的处理器内核;海光、华芯通等新锐纷纷摩拳擦掌。开放的RISC-V架构的诞生,更是为此番繁华增添了精彩。同时,各种人工智能AI处理器也采用RISC-V作为核心,RISC-V的相关知识完全能够应用于AI处理器芯片领域。
综上所述,我认为学习RISC-V正当时。
但是,计算机体系结构相关书籍往往不利于初学者入门,尤其是RISC-V诞生时间太短,全英文版的指令集手册专业性强,晦涩难懂,非常不利于国内用户学习上手。另外很多对RISC-V感兴趣的初学者基本背景知识比较薄弱,需要补足。
为了促进RISC-V在国内的普及,尤其是被广大初学爱好者接受,我撰写了国内第一本关于RISC-V处理器的通俗书籍《手把手教你设计CPU——RISC-V处理器篇》,详细介绍了相关的基础背景知识,系统通俗地讲述了RISC-V的前世今生,还配套了自己开发的开源蜂鸟E203处理器内核。
目前有关如何使用RISC-V的嵌入式软件开发方面的中文资料仍然欠缺,我撰写的另一本新书《RISC-V架构与嵌入式开发快速入门》也即将上市,相信会在某种程度上缓解这一问题。
EDN电子技术设计:您创立芯来 科技 公司专门开发RISC-V内核,请谈一下公司的商业模式和愿景。
胡振波:
芯来 科技 (Nuclei System Technology Co., Ltd.)作为中国大陆本土唯一专注于RISC-V处理器内核开发的公司,是RISC-V基金会银级会员,中国RISC-V产业联盟副理事长单位。
在商业模式上,主要是传统的处理器IP授权模式和面向垂直领域的深度定制模式,同时还在进行一些全新的商业模式 探索 。
我们有两个愿景:一方面,IoT和边缘计算领域的处理器内核IP年出货量会达到万亿颗。如此巨大的市场,我们希望至少这个市场的一部分属于我们本土公司,从而让大多数本土芯片公司用上国产的RISC-V处理器内核。另一方面,目前国内的RISC-V技术力量非常薄弱,希望芯来 科技 能够为RISC-V阵营做出我们中国人应该做出的贡献。
EDN电子技术设计:除了RISC-V内核外,要开发出商用的RISC-V处理器还需要哪些开发工具和环境?
胡振波:
处理器是软硬件的交汇点,所以必须有完善的编译器、开发工具和软件开发环境(IDE),处理器内核才能够被用户顺利使用起来。
目前RISC-V具有全套开源免费的编译器、开发工具和软件开发环境(IDE),这是RISC-V的巨大优势,但是开源版本相比ARM等传统架构的编译器和IDE而言,还颇有差距。
除了开源版本之外,还有专业公司提供的专业版本。目前从全世界范围来看,在RISC-V技术阵营中,台湾的Andes公司(晶心 科技 )开发的编译器、开发工具和软件开发环境(IDE)最为完善和先进,几乎可以和ARM的工具相媲美,这一点也值得我们去学习。
延伸阅读:
RISC-V真的是中国芯片实现自主、可控、创新和繁荣的希望吗?
④ 关于LINUX的优势重要性已自然的从各种渠道耳濡目染,想学习它。请朋友指点怎样学习怎样展开
1.抓住51开发ARM
这几个月来我一直都爬在51的问题,自己都有一点笑自己了,用了4个月的时间,来巩固51的原理和程序,还好我自己算是走过来了,自己笨,身边的高才生又看不上51的原理,他们都比较“牛”,说51过时了,你问那个做什么???我比较郁闷!过时吗?我有一点怀疑?
他们不愿意说有他们自己的理由,没有人强求,靠自己好了。
我自己个人的观点:51是一个基础,而且还很重要,这是再我看了ARM之后感觉到的。它可以加速你的ARM学习速度,真得!不相信你试一试好了。
凡是要求一个速度、效率,不要做一些无用功,抓紧身边的每一个一分钟,人是活的,东西(知识、书)是得,想要做的事情因此就简单了。
2.我在网上看到了一篇很不错的ARM文章,粘贴过来,为了和像我一样在很少有人帮助的情况下,自学ARM 的难兄难弟们。
“ARM怎么入门”。我不是高手,仍然是菜鸟。
但是回想起自己当时的迷茫,特意写了这篇东西,当作给和我一样的兄弟姐妹的帮助吧。问这个问题的人多半不是已经工作的工程师,而是和我一样是学生,所以这篇笔记就把看家当成我一样的菜鸟,高手勿怪。
首先声明:本人还没有找工作,事实上处于研究生刚毕业,还没开始找工作的空闲时间,44B0只是兴趣所在,打发时间。
所有看法完全是自己的感受,不代表任何他人。错了的观点各位帮我纠正。再次补充:很多朋友看了上面的话就问我为什么研究生毕业了还不找工作:)说是打发时间,其实是因为研究生的时候带了一个项目,申请提前毕业以后项目还有块尾巴,答应导师把项目做完再走:)就这么简单。男人总点负点责,呵呵
以下问题常被问到,我就想到哪说到哪吧。
一 首先说说ARM的发展
可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职弊瞎唤位。
广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。
客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。
DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们军品里的控制器,应用面很广。
FPGA的兄弟一般做ANSIC(特殊芯片设计,好象是这么翻译的)。而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。这完全依靠于ARM公司的战略,厉害!!很佩服他们的战略眼光!!
值得注意的是:在找工作中,企业(着名的,小的不算)对单纯的ARM硬件开发工程师并不比单片机重视神并,很少有大企业的职位里写“从事过ARM开发优先”。写的多的是什么?“嵌入式LINUX”到这相信大家看出来了吧,需要的是硬件中的软件。
二 ARM是硬件还是软件
很难说,ARM是硬件,LINUX是软件。ARM的硬件多半已经模块化了,像我这样把板子改成这样的就算动的多的了,这同样是ARM公司的战略,再次佩服。
实际中的LINUX的开发工作更多,更耗时。从这方面说ARM应该算是软件了。
在找工作中更是这样,举个例租凯子,联想里和ARM最接近的是“BIOS工程师”是软件,MOTO里接近的是嵌入式LINUX工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。所以,不要讨论这个,好好玩转自己的板子才是关键。实在不爽你就把自己叫“嵌入式开发工程师”
三 要不要买开发板 买哪家
我的答案是“在你个人的学习方法”,但是如果看家是需要看这骗笔记的水平,个人推荐还是买现成的。
1 买
买板子可以把注意力集中在软件开发上,软件开发(尤其是驱动)可以不必担心自己硬件上的问题,我就是以便调试一边写驱动和程序,每次写驱动前就要先确认硬件没问题。另外,买板子更省钱和时间,我自己做的板子,原理图PCB花了2周以上!制版又15天,回来以后焊接44B0 160个脚!那叫一个麻烦 ~~花了多少钱呢?2层板,制版费就300块!当然 我把接口都外引了,还做了个20X18的LCD背板,板子比较大。总体下来 元件+LCD屏+PCB =11XX块!够2410的了。
再有就是买的资料相对来说比较全,但是不要指望有技术支持!都是骗人的,卖你之后就不会理你。
2 做
自己做可以更了解底层硬件,可以按照自己的要求加东西,比如我就加了GPS模块、 GPRS模块 、SD卡模块,扩了个IIC的35个键子的键盘、把LCD接口按照买的LCD改装了,可以用FPC线直接连接。做的很爽的。玩一把吗。
当然,你可以有策略的做,比如像我一样,把RAM和ROM,网络都保持和某现成的板子一样,这样他们的资料你就可以拿过来直接用,给自己留个退路。其他的如SD了 什么的自己做。都达到了~~就是费钱,费时间。
再有就是给做的朋友几点建议:尽量拿到现成的板子,尽量多搜集其他板子的全套资料,一定要拿到一张没问题的原理图。
网上流传的原理图多数是龚俊03年画的,再这里对龚俊表达一下我的敬意!!牛人!
但是那个图有个小BUG,我指的是03版的,后来的没这问题了。8019那地址线和地址有问题。还有人仿照他的PDF图画的SCH,更是漏洞百出!谴责!顺便谴责把龚俊板子偷卖的人。
3 买哪家
个人感觉分3类吧
1)首先是ZLG的,资料非常的全,感觉他是真正想教你怎么开发ARM,而不是像有的公司自己技术都没做好就做个板子出来卖钱。但是最大的不利就是价格太贵!而且主要是PHILIP的,货源比较麻烦~~可能有人说21XX系列的不贵啊,那是总线不外扩的,只能跑UCOS,不能跑UCLINUX。但是说是话,21XX系列才是ARM7的价格性能结合点。ARM7最适合做工业控制,ARM普及,销量都是怎么来的?都是ARM7来的,而44B0是典型的商业片子。但是,这里如果你看中的是为工作做准备,还是选能跑UCLINUX的吧。
但是仍然作为第一个推荐,因为菜鸟时期,合适的资料太重要了!!在这里被ZLG的务实精神感动!你看人家那代码写的。
2)感觉立宇泰的44B0不错
硬件没别的,就是资料比较全的说,不像有些家,原理图直接拿人家的,还错的~~
3)找个最便宜的
好象最便宜的有卖350的吧?也是没别的,就是即省了钱 还省时间搜集资料,至于资料全不全,别计较了~~硬件肯定好使就行吧。
四 要不要有51 AVR等单片机基础
有更好,但没有也无所谓。
两个月以前,我只是看别人做,耳濡目染~~,本科学过单片机,从来没做过。我们这的技术主干做AVR和51,我就跟他们调过C语言程序。你看出来了?我是个不折不扣的菜鸟吧?
但是做这个之前我特意找了ZLG的两本书,看了里面的例子和原理图,这很重要。例程里有汇编有C,都看懂了就OK,不用自己现写
五 开发都需要学习哪些软件
总结起来最主要的有以下几个吧
1 ADS调试用
确切的说是ADS+AXD。ADS里包含AXD。原来都用SDT后来ARM公司停止对SDT支持了,改支持ADS了,还是用ADS吧。
有的人的程序发布的仍然是SDT版本的,但基本都可以找到相应ADS的,新人在这里不要发蒙。ADS是编译器,AXD是调试器。便宜成AXF以后再在ARM的RAM里调试。
2 PLASHPGM
FLASH烧写的软件。AXD在RAM里调试,掉电就没有了,方便程序修改。调试好的程序再下到FLASH里,上电直接运行。
同类的软件还有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人还问FLASH不支持BIN格式文件的问题就要看我写的PLASHPGM使用了。
3 BANYANT调试代理(不知道名对不,起这么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊)
调试代理就是用它帮你使用更简单的JTAG(便宜啊)来实现原本1K才卖的JTAG仿真器的大部分功能。JTAG调试原理看我另一篇笔记。简单的就可以把他理解为你自己做的JTAG的驱动就行了。
调试代理还有很多种,什么H-JTAG了、ARM7了(不知道具体叫什么,就记得可执行文件叫ARM7.EXE)都是,BANYANT比较好。
需要注意的是,没种调试代理安装方法虽然都简单 但都不一样,需要看说明。而且AXD调试之前都要运行。省钱了,就别怕麻烦了。
4 ARM-ELF-TOOLS工具链
里面是UCLINUX开发用的工具比如ARM-ELF-GCC只类的。工具链就是把很多工具打包在一起发布的方便你开发的东西。具体安装方法看我另一篇笔记。
另外如果你开发LINUX就要用ARM-LINUX-TOOLS,不一样,不通用。
5 U-BOOT
大名鼎鼎的BOOTLOADER生成工具,同类的好象还有VIVI(名字很暧昧~~)
生成的BOOTLOADER烧到FLASH里,然后就可以用BOOTLOADER下载 烧写其他了
有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像电脑上的BIOS。当然UCOS的不用这个,用什么我不知道:)
最新版本是1.1.4 具体使用方法看我另一篇笔记吧。
6 UCLINUX包
UCLINUX的源码包,不用多说了吧?建议大家用现成的先体会一下,然后再自己编译,裁剪。因为单独UCLINUX的编辑技术上比较简单,但涉及的方面还是比较广的。
7 VMWARE
老牌的虚拟机软件,在一个机器上虚拟出一个机器装LINUX(PC上用的),省得你来回开关机了。记得装VMWARE-TOOLS,安装方法在我另一篇笔记里。
六 有哪些书推荐
主要推荐ZLG的三本书,有这3本再加网络就不用别的书了,其中主要推荐前2本,3是介绍体系结构的,也不错
1 ARM嵌入式LINUX系统构建与驱动开发,北航版
驱动写的很详细,前期开发介绍也很好
2 ARM 嵌入式系统实验教程(二),北航版
有ZLG2200的原理图,实验程序和注释,了解人家是怎么开发的。
3 ARM嵌入式系统基础教程
最重要的是体系结构,汇编部分介绍,看看吧,增加理论素质。
4 44B0数据手册
写在这里是强调它的重要。
不推荐ZLG早期出的红色皮的ARM什么体系结构~只类的
写的太多,看烦了。
其他的书没了几本,没看见好的,大家有看过的推荐吧。
七 选UCOS?UCLINUX?LINUX?VXWORKS?还是当单片机用
1 搞开发,工程设计,用UCOS,小巧,多进程,简单,体现了ARM7的精髓。
2 LINUX 正根的嵌入式系统,LINUX消费与通信领域用的比较多,但缺点是必须ARM9才能跑,ARM9的板子自己做就不行了,6层板太贵。买开发板1K达底吧。但是还是推荐选ARM9+LINUX
3 UCLINUX 算投机嵌入式系统:)ARM7上可以跑,由有LINUX近亲,学好好可以比较方便的转向LINUX,像我一样的穷鬼用吧,呵呵
4 VXWORKS
学好后可以找到高薪工作,但工作机会本身并不比LINUX好找。
5 当单片机用
不推荐,虽然我景仰的ZLG一直号召这么干。因为对于学习来说多进程的系统设计才是ARM7的玩头,至少你也要整个UCOS啊:)
有朋友问我先学这个当基础不行吗?那当然可以~~但我当时就用了1周搞定,就是我先的ADS在RAM中调试的笔记。后来我清空FLASH用的小段程序还是当时写的LED闪烁程序呢。另外1周里其中还因为自己过于菜,没把OM设置好导致晶阵不阵
哈哈。这个是必须做的,但一带而过。目标放的远一点。
八 学习要用多长时间
我从菜鸟到现在两个多月,中间被打扰数次。仍然搞定了PCB设计与制版,RAM调试,FLASH下载,UBOOT移植和下载UCLINUX(没剪裁,用现成的),LCD驱动。
再次坦诚的说:我确实比较菜,说这些不是让大家羡慕,只是告诉你们“你们应该比这个更好”
我相信良好的态度+合适的方法+及时的总结=成绩
九 ARM都玩什么
就几点
1 硬件设计
2 系统移植
3 驱动开发
4 应用开发
没了。其中推荐把注意力放在后两个上,3有难度,4比较灵活,最重要的是都是找工作的砝码。
十 我用的什么板子
很多人问我这个问题,我特意写过一个的。再说一次吧。
我是自己做的,RAM、ROM、8019等比较麻烦而当时的自己不理解的都按照龚俊的做的。保持其他不便的情况下做了如下改动。
1 加了串口通信的GPS模块、 GPRS模块
一个UART0,一个UART1,当与要用超级终端时用跳线切换。
2 SD卡,和7843触摸屏
同时挂在SPI总线上,因为SPI只能挂一个设备,同时还做了I/O模拟的准备,把两个设备又通过跳线挂在4个IO上。
3 扩了个IIC的35个键子的键盘
用的ZLG的7290,不占用CPU,最大支持64个键子,只上了35个,其他留接口。
4 把LCD接口按照买的LCD改装了,可以用FPC线直接连接。
所以改动虽然多,但真正很移植了,初期调试有关的并没动,就是为了现在不那么菜的时候做准备:)
十一 开发流程
这里是我的开发流程
1 设计原理图(含WIGGLER的JTAG访真器)
2 设计PCB(含WIGGLER的JTAG访真器)
3 制版
4 焊接电压,确定电压没问题
5 焊接44B0+JTAG电路+WIGGLER的JTAG访真器+周边电路,用BANYANT+仿真器连接,BANYANT提示错误,但可以显示44B0编号,好象是0X0F0F0F0F只类的,说明44B0没问题
6 焊接晶体+RAM+ROM+周边电路,用BANYANT+仿真器连接,可以显示正确的44B0了
7 用BANYANT+仿真器连接,开AXD,在命令行窗口操作RAM,看可不可以修改,可以的话(用内存窗口看RAM地址)RAM就没问题
可以用这个命令“setmem 0xc000000,0xffffffff,32”
我的RAM挂在BANK6上 所以地址是0XC000000,你要是改了就也得改。
8 用我写的《自己写了个C工程模板又写了个使用说明 》里的方法调试程序吧,写个简单的,我当时写个LED闪烁的。看好使不。
9 把程序按照《FLASH烧写总结 》里的烧到FLASH里,测试一下
10 按照《UBOOT 移植操作》移植UBOOT
11 按照《UCLINUX下载简单说明》下个UCLINUX
12 看看驱动开发的方法,自己写个驱动看看
13 还有很多事东西着你玩 呵呵
十二 关于JTAG访真器
JTAG访真器现在用的多是简板的,一个244那种,用的没什么不好。
按照并口定义不同分几种,建议选WIFFLER定义的,因为支持的软件多。这个网上多的是,不多说了。
值得提的是有的JTAG访真器原理图上有跳线用来使能复位信号,这个一般不跳上。就是不用复位信号,因为JTAG协议里本身也可以控制44B0复位。
当然,板子上的复位信号跳线也不用跳。
十三 哪个公司的ARM
这个是问题比较简单。
1 ARM7主要就几个公司的
三星,PHILIP,ATMEL的
ATMEL的有比较便宜的AT91SAM7S32 和AT91SAM7S64 专为8位应用产品量身定做,价格很便宜好象《3刀吧。和PHILIP的21XX差不多,资料太少,项目中选还不错。
其他两家上面说了的不多说了吧
2 ARM9
这个玩2410和2440的多吧,现在2440还比较火啊 可以考虑买个了
但是2410就比较便宜了,作为学习来说反到和不错,推荐整一个:)
其实ARM9用的最多的领域应该是消费电子,比如手机PDA,而这上面用的多的应该是INTEL的和TI的吧。
但是INTEL的TI的入门材料少,价格高,自己看情况定吧。