[转帖]ARM怎么入门_第1页
[转帖]ARM怎么入门_第2页
[转帖]ARM怎么入门_第3页
[转帖]ARM怎么入门_第4页
[转帖]ARM怎么入门_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ARM怎么入门ARM, 入门, 转帖一 首先说说ARM的发展       3 d9 l6 P1 t( D8 可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。  H# 1 h4 z5 _  q! U, . U: e广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。4 X- n% V$ m5 c7 1 6 P客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。3 k3 A0 O6 ! KDSP因为数字处理

2、与通信领域的空前发展而火暴,小到MP3 摄像头,大到军品里的控制器,应用面很广。2 X0 Q" J2 h1 _+ 3 e2 搞FPGA的兄弟一般做ANSIC(特殊芯片设计,好象是这么翻译的)。而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。这完全依靠于ARM公司的战略,厉害!很佩服他们的战略眼光!$ S8 J+ e9   $ q值得注意的是:在找工作中,企业(著名的,小的不算)对单纯的ARM硬件开发工程师并不比单片机重视,很少有大企业的职位里写“从事过ARM开发优先”。写的多的是什么?“嵌入式LINUX”。到这里相信大家看出来

3、了吧,需要的是硬件中的软件。2 E# % K$ n% y( D二 ARM是硬件还是软件       * Q. |1 O0 n* t很难说,ARM是硬件,LINUX是软件。ARM的硬件多半已经模块化了,像我这样把板子改成这样的就算动的多的了,这同样是ARM公司的战略,再次佩服。2 i, u9 D6 M$ e+ i, ?* r7 e2 实际中的LINUX的开发工作更多,更耗时。从这方面说ARM应该算是软件了。/ u% F6 s. f( A7 x2 I) l8 ! s在找工作中更是这样,举个例子,联想里和ARM最接近的“BIOS工程师”是软件,MOTO里最接近

4、的嵌入式LINUX工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。所以,不要讨论这个,好好玩转自己的板子才是关键。实在不爽你就把自己叫“嵌入式开发工程师” 。+ z/ : n4 P: ; 9 X三 要不要买开发板,买哪家     ! z( / / s3 5 B* V       我的答案是“在你个人的学习方法”,但是如果看家是需要看这篇笔记的水平,个人推荐还是买现成的。 + G5 G# q0 G/ |" " g1.买- _9 D( b! q/ E2 D K% Z" y 

5、      首先,买板子可以把注意力集中在软件开发上,软件开发(尤其是驱动)可以不必担心自己硬件上的问题,我就是一边调试一边写驱动和程序,每次写驱动前就要先确认硬件没问题。! n8 1 h# : f1 Q( J       另外,买板子更省钱和时间,我自己做的板子,原理图PCB花了2周以上!制版又15天,回来以后焊接44B0 160个脚!那叫一个麻烦花了多少钱呢?2层板,制版费就300块!当然我把接口都外引了,还做了个20X18的LCD背板,板子比较大。总体下来元件+LCD屏+PCB=11XX块!够2410的了。1 Q) 4

6、 a8 e4 . S$ ! O2 c1        再有就是买的资料相对来说比较全,但是不要指望有技术支持!都是骗人的,卖你之后就不会理你。, X1 Z0 Q! B* Y8 o2.做       $ a) o A+ U' x3 M. s      自己做可以更了解底层硬件,可以按照自己的要求加东西,比如我就加了GPS模块、 GPRS模块、SD卡模块,扩了个IIC的35个键子的键盘、把LCD接口按照买的LCD改装了,可以用FPC线直接连接。做的很爽的。玩一把嘛。7 b

7、8 _: L4 . J" K, T8 I     当然,你可以有策略的做,比如像我一样,把RAM和ROM,网络都保持和某现成的板子一样,这样他们的资料你就可以拿过来直接用,给自己留个退路。其他的如SD什么的自己做。这些都实现了就是费钱,费时间。7 ! K) : _' - v    再有就是给做的朋友几点建议:尽量拿到现成的板子,尽量多搜集其他板子的全套资料,一定要拿到一张没问题的原理图。网上流传的原理图多数是龚俊03年画的,再这里对龚俊表达一下我的敬意!牛人!但是那个图有个小BUG,我指的是03版的,后来的没这问题了

8、。8019那地址线和地址有问题。有人仿照他的PDF图画的SCH,却是漏洞百出!谴责!顺便谴责那些偷卖龚俊板子的人。   E) s1 z  x9 4 E5 P4 d* w6 O7 Q3.买哪家的* H) f( h0 X% I' O$ z6 V     个人感觉分3类吧2 c$ J, e' S+ V' y     1)首推周立功的( 0 C0 m! N' k" W0 W( X+ R      资料非

9、常的全,感觉他是真正想教你怎么开发ARM,而不是像有的公司自己技术都没做好就做个板子出来卖钱。但是最大的不利就是价格太贵!而且主要是PHILIP的,货源比较麻烦可能有人说21XX系列的不贵啊,那是总线不外扩的,只能跑UC/OS,不能跑UCLINUX。但是说实话,21XX系列才是ARM7的价格性能结合点。ARM7最适合做工业控制,ARM普及,销量都是怎么来的?都是ARM7来的,而44B0是典型的商业片子。但是,这里如果你看中的是为工作做准备,还是选能跑UCLINUX的吧。 但是仍然作为第一推荐,因为菜鸟时期,合适的资料太重要了!在这里被周立功的务实精神感动!你看人家那代码写的。2 j4 + &#

10、39; P* l0 Z. x- H     2)感觉立宇泰的44B0不错) b/ E! o9 , b* s* v5 g6 E, U     硬件没别的,就是资料比较全的说,不像有些家,原理图直接拿人家的,还错的) * L0 2 G$ y     3)找个最便宜的) G1 f3 ; y* m' w: |     好象最便宜的有卖350的吧?也是没别的,就是即省了钱 还省时间搜集资料,至于资料全不全,别计较了硬件肯定好使就行吧。 u

11、3 2 J6 h1 - o8 0 |四 要不要有51、AVR等单片机基础) L; D% q7 6 w/ |7 k0 ?, E     有更好,但没有也无所谓。3 m0 5 W0 F0 a4 e" 2      两个月以前,我只是看别人做,耳濡目染,本科学过单片机,从来没做过。我们这的技术骨干做AVR和51,我就跟他们调过C语言程序。但是做这个之前我特意找了周立功的两本书,看了里面的例子和原理图,这很重要。例程里有汇编也有C,都看懂了就OK,不用自己现写。7 p0 C0 d  P9 I8

12、 & v5 ( D" D五 开发都需要学习哪些软件 v0 e$ J* u) o+ c( D% X     总结起来最主要的有以下几个吧 。2 Z$ a2 C! d( L/ C( c*      1 、ADS调试用0 s/ J# h: D$ h  i; U0 z!   b+ n      确切的说是ADS+AXD。ADS里包含AXD。新人在这里不要发蒙。ADS是编译器,AXD是调试器。编译成AXF以后再在ARM的RAM里

13、调试。3 V# ! G' I% l4 I     2、 PLASHPGM! 2 p4 . J+ a  X2 m, |     FLASH烧写的软件。AXD在RAM里调试,掉电就没有了,方便程序修改。调试好的程序再下到FLASH里,上电直接运行。同类的软件还有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好。' g  b, ! d: U! o#       3、 BANYANT调试代理(不知道名对不,起这

14、么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊)! 4 ! d3 Q8 u! 7 p     调试代理就是用它帮你使用更简单的JTAG(便宜啊)来实现原本1000块才卖的JTAG仿真器的大部分功能。JTAG调试原理看我另一篇笔记。可以简单地把它理解为你自己做的JTAG的驱动就行了。% E. D1 N/ A- e4 E8 " 0 F调试代理还有很多种,什么H-JTAG了、ARM7了(不知道具体叫什么,就记得可执行文件叫ARM7.EXE),BANYANT比较好。! z$ i8 b( k+ o* o8 6 _   &#

15、160; 需要注意的是,每种调试代理安装方法很简单但都不一样,需要看说明。而且在AXD调试之前就要运行。既然能省钱,就别怕麻烦。6 u: D+ u6 H! X: d2 e     4 ARM-ELF-TOOLS工具链5 I6 Z, y5 z- u n3 q     里面是UCLINUX开发用的工具,比如ARM-ELF-GCC之类的。工具链就是把很多工具打包在一起发布的方便你开发的东西。具体安装方法看我另一篇笔记。另外如果你开发LINUX就要用ARM-LINUX-TOOLS,不一样,不通用。$ Q9 M.

16、K* ?1 ! 5 ?" D, J6 v9 n     5 U-BOOT' z- M+ b! Q- _     大名鼎鼎的BOOTLOADER生成工具,同类的好象还有VIVI,生成的BOOTLOADER烧到FLASH里,然后就可以用BOOTLOADER下载烧写其它东西了,有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像电脑上的BIOS。当然UCOS的不用这个,具体用什么我不知道:)8 p) 0 p5 f) Z, J J     6 UC

17、LINUX包0 a  f7 A* 2 N7 Y, g     UCLINUX的源码包,不用多说了吧?建议大家用现成的先体会一下,然后再自己编译,裁剪。虽然单独的UCLINUX的编辑在技术上比较简单,但涉及的方面还是比较广的。7 i+ j4 f% |; f$ K' T;     7 VMWARE  q- Z6 r5 J+ / w     老牌的虚拟机软件,在一个机器上虚拟出一个机器装LINUX(PC上用的),省得你来回开关机了。记得装VMWARE-T

18、OOLS,安装方法在我另一篇笔记里。4 R/ J3 P% / e- C+ E. C  r六 有哪些书推荐4 F, R  l/ 9 A- F" 2 C       主要推荐周立功的三本书,有这三本再加网络就不用别的书了,其中主要推荐前两本,第三本是介绍体系结构的,也不错 ! 2 G7 x  v! + Z1 ARM嵌入式LINUX系统构建与驱动开发,北航版2 J( V7 h* n, G驱动写的很详细,前期开发介绍也很好 3 A9 C+ N7 x9 y) n* l7 e5 o2 ARM 嵌入

19、式系统实验教程(二),北航版5 E" U$ c6 G" J9 W0 有ZLG2200的原理图,实验程序和注释,了解人家是怎么开发的。8 " R$ u9 G3 S1 N; 3 ARM嵌入式系统基础教程* J/ 5 q- u6 B1 t# C; n$ w最重要的是体系结构,汇编部分介绍,看看吧,增加理论素质。 9 v0 j- N. m. L6 n7 g4 44B0数据手册4 E5 C* , p: i' J写在这里是强调它的重要。7 e6 K5 b8   ) l不推荐ZLG早期出的红色皮的ARM什么体系结构之类的,写的太多,看烦了。3 R$

20、g5 R. n" K( p其他的书没了几本,没看见好的,大家有看过的推荐吧。$ Y) ?# Z' J% n+ ; D+ g七 选UCOS?UCLINUX?LINUX?VXWORKS?还是当单片机用$ U" s0 c! C) t/ 4 _      1、 搞开发,工程设计,用UCOS,小巧,多进程,简单,体现了ARM7的精髓。) d% g x: W, v; 2 6 D     2 LINUX 正根的嵌入式系统,LINUX消费与通信领域用的比较多,但缺点是必须ARM9才能跑,ARM9的板子自

21、己做就不行了,6层板太贵。买开发板1K达底吧。但是还是推荐选ARM9+LINUX。* - _- V2 a* I- G/ |- w2 R5 d     3 UCLINUX 算投机嵌入式系统,ARM7上可以跑,又同LINUX近亲,学好后可以比较方便的转向LINUX,像我一样的穷鬼用吧,呵呵。1 S1 z7 z4 # w     4 VXWORKS6 ! l% I+ |( r. z9 i0 J    学好后可以找到高薪工作,但工作机会本身并不比LINUX好找。( o6 J3 Q1 t# N6 M9 A

22、" R     5 当单片机用! u3 P  L# S* o c     不推荐,虽然我景仰的周立功一直号召这么干。但是对于学习来说,多进程的系统设计才是ARM7的玩头,至少你也要整个UCOS啊:)有朋友问我先学这个当基础不行吗?那当然可以但我当时就用了1周搞定,就是我先前的ADS在RAM中调试的笔记。后来我清空FLASH用的小段程序还是当时写的LED闪烁程序呢。其间还因为自己过菜,没把OM设置好导致晶振不起振。这个是必须做的,但应一带而过,目标要放的远一点。 : O- o: w3 Q

23、8 s9 q4 d: W八 学习要用多长时间4 J. V! |! d" Z/ a  b       我从菜鸟到现在两个多月,中间被打断数次。仍然搞定了PCB设计与制版,RAM调试,FLASH下载,UBOOT移植和下载UCLINUX(没剪裁,用现成的),LCD驱动。  4 a0 M8 C/ K- x*      再次坦诚的说:我确实比较菜,说这些不是让大家羡慕,只是告诉你们“你们应该会比这更好”/ F9 A) X# P% i0 J    

24、 我相信:良好的态度+合适的方法+及时的总结=成绩5 R! d" n1 w# q# h) u+ a7 九 搞ARM都玩什么; z6 a+ ; ?' t% H! I       就几点:3 J$ i+ S$ T8 i  m1 k- ?7 R      1、 硬件设计) c0 * R9 ?6 W. c+ i      2 、系统移植# H  . z- Z1 |4 y# r3 X. K" W3  

25、;     3 、驱动开发  H4 % R9 + D8 d/ x, M4 u       4 、应用开发$ G0 f/ T% j. v2 L1 R推荐把注意力放在后两个上,3有难度,4比较灵活,这两个都是找工作的砝码。2 i8 * ?4 T" k6 I) D5 十 我用的什么板子) C+ a1 a2 H, w3 i# G! V     很多人问我这个问题,我特意写过一个的。再说一次吧。! D. K9 P0 O c( j" c* z% b 

26、;    我是自己做的,RAM、ROM、8019等比较麻烦而当时的自己不理解的都按照龚俊的做的。保持其他不便的情况下做了如下改动。6 y6 O' v: b; e4 W, e    1 、加了串口通信的GPS模块、 GPRS模块,一个UART0,一个UART1,当与要用超级终端时用跳线切换。4 n2 H Y1 M6 z    2 、SD卡,和7843触摸屏, B3 b- n, u$ S) Q; h' m  z% U    同时挂在SPI总线上,因为SPI只能挂一个设备,同

27、时还做了I/O模拟的准备,把两个设备又通过跳线挂在4个IO上。4 Z/ |3 W) # l0 x    3 、扩了个IIC的35个键子的键盘) v3 E7 m* n, K# c. j* Q    用的ZLG的7290,不占用CPU,最大支持64个键子,只上了35个,其他留接口。3 q0 n7 E* C" n1 X+     4、 把LCD接口按照买的LCD改装了,可以用FPC线直接连接。" x) P |9 e" A    所以改动虽然多,但真正很移植了,初期调试有关的并没动,就是为了现

28、在不那么菜的时候做准备:)2 |; R3 M; X8 M! y- |5 i% K; U/ R十一 开发流程, H6 u K& z1 * T这里是我的开发流程/   J- J3   g8 s5 J/ H( 1 、设计原理图(含WIGGLER的JTAG访真器)。% V2 r7 Z: x2 q/ c5 G/ l2 、设计PCB(含WIGGLER的JTAG访真器)。( G- i" q) b4 h+ B  n 3、 制版。) B6 0 b" i4 X8 F* V  4 、焊接电压,确定电压没问题。

29、3 Y, i+ c0 g% q( G5 、焊接44B0+JTAG电路+WIGGLER的JTAG访真器+周边电路,用BANYANT+仿真器连接,BANYANT提示错误,但可以显示44B0编号,好象是0X0F0F0F0F之类的,说明44B0没问题。 p7 X* M- ; z! k" 6 、焊接晶体+RAM+ROM+周边电路,用BANYANT+仿真器连接,可以显示正确的44B0了。3 C: y" ' 2 q8 _7 、用BANYANT+仿真器连接,开AXD,在命令行窗口操作RAM,看可不可以修改,可以的话(用内存窗口看RAM地址)RAM就没问题。可以用这个命令“setme

30、m 0xc000000,0xffffffff,32”我的RAM挂在BANK6上 所以地址是0XC000000,你要是改了就也得改。! P  u% E9 f! 3 H8 、用我写的自己写了个C工程模板又写了个使用说明 里的方法调试程序吧,写个简单的,我当时写个LED闪烁的。看好使不。2 b8 s6 o; f) + I9 、把程序按照FLASH烧写总结 里的烧到FLASH里,测试一下。6 D# c# P3 d8 q. b/ w! H10 、按照UBOOT 移植操作移植UBOOT。1 K6 k, s* q4 r% n9 P9 A4 B! 11 、按照UCLINUX下载简单说明下个UCLINUX。|, P$ W0 s$ H8 g) F1 P" C6 12 、看看驱动开发的方法,自己写个驱动看看。6 W3 M' F0 o; S8 l0 Y: Y! w13 、还有很多事东西着你玩 ,呵

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论