×
嵌入式 > 集成电路 > 详情

ARM学习

发布时间:2020-05-23 发布时间:
|

一 首先说说ARM的发展

  广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。

  客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。

  DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 摄像头,大到我们军品里的控制器,应用面很广。

  FPGA的兄弟一般做ANSIC(非凡芯片设计,好象是这么翻译的)。而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。这完全依靠于ARM公司的战略,厉害,字串4

  值得注重的是:在找工作中,企业(闻名的,小的不算)对单纯的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嵌入式系统基础教程

  最重要的是体系结构,汇编部分介绍,看看吧,增加理论素质。

  3 44B0数据手册

  写在这里是强调它的重要。

  不推荐ZLG早期出的红色皮的ARM什么体系结构。

  4 ARM 嵌入式系统实验教程(二),北航版

  有ZLG2200的原理图,实验程序和注释,了解人家是怎么开发的。

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PCI驱动程序开发实例(2)