`
naiquan_hu
  • 浏览: 66680 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

嵌入式开发入门之经典 ARM开发板

阅读更多

嵌入式开发入门之经典
开始进入嵌入式世界,真是一头雾水,不知道如何入手!也不知道该如何学习,学习什么,最近从网上转载这篇文章,对我启发很大,对于初始进入嵌入式的人们很有帮组,好多嵌入式大侠都说这是入门的最好文章.
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天,回来以后焊接44B0160个脚!那叫一个麻烦~~ 花了多少钱呢?2层板,制版费就300块!当然我把接口都外引了,还做了个20X18的LCD背板,板子比较大。总体下来 元件+LCD 屏+PCB=11XX块!
2、做

  自己做可以更了解底层硬件,可以按照自己的要求加东西,比如我就加了GPS模块、 GPRS模块 、SD卡模块,扩了个IIC的35个键子的键盘、把 LCD接口按照买的LCD改装了,可以用FPC线直接连接。做的很爽的。玩一把吗。当然,你可以有策略的做,比如像我一样,把RAM和ROM,网络都保持 和某现成的板子一样,这样他们的资料你就可以拿过来直接用,给自己留个退路。其他的如SD了 什么的自己做。都达到了~~就是费钱,费时间。再有就是给做 的朋友几点建议:尽量拿到现成的板子,尽量多搜集其他板子的全套资料,一定要拿到一张没问题的原理图。网上流传的原理图多数是龚俊03年画的,再这里对龚 俊表达一下我的敬意!!牛人!但是那个图有个小BUG,我指的是03版的,后来的没这问题了。8019那地址线和地址有问题。还有人仿照他的PDF图画的 SCH,更是漏洞百出!谴责!顺便谴责把龚俊板子偷卖的人。

3、买哪家

? 个人感觉分3类吧:

  1)首先是上海无线龙的,资料非常的全,感觉他是真正想教你怎么开发ARM,而不是像有的公司自己技术都没做好就做个板子出来卖钱UCLINUX。价 格也合理,一个ARM开发板也只要几百块钱,ARM9最适合做工业控制,ARM普及,销量都是怎么来的?都是ARM9来的。但是,这里如果你看中的是为工 作做准备,还是选能跑UCLINUX的吧。但是仍然作为第一个推荐,因为菜鸟时期,合适的资料太重要了!!在这里被无线龙的务实精神感动!你看人家那代码 写的。

   2)感觉立宇泰的也不错,硬件没别的,就是资料比较全的说,不像有些家,原理图直接拿人家的,还错的~~

   
四、要不要有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线直接连接。
这种开发板国内有很多,做的比较规范的是上海无线龙有限公司<script> &lt;!-- document.write('&lt;a target=_blank rel=&quot;nofollow&quot; href=http://www.wxlsoc.com&gt;www.wxlsoc.com&lt;/a&gt;'); //--&gt; </script>www.wxlsoc.com )!

所以改动虽然多,但真正很移植了,初期调试有关的并没动,就是为了现在不那么菜的时候做准备:)

十一、开发流程

这里是我的开发流程:

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、ARM9主要就几个公司,本人觉得上海无线龙(www.wxlsoc.com)的不错
2、ARM9,这个玩2480和2430的多吧,现在2430还比较火啊 可以考虑买个了,作为学习来说反到和不错,推荐整一个:)其实ARM9用的最多 的领域应该是消费电子,比如手机PDA,而这上面用的多的应该是INTEL的和TI的吧。但是INTEL的TI的入门材料少,价格高,自己看情况定吧。 QQ:741066980

分享到:
评论
1 楼 曲全方 2009-10-19  
现在学习嵌入式了?呵呵,看你都是这方面的文章

相关推荐

    入门级ARM9开发板原理图.rar

    通过学习和分析入门级ARM9开发板的原理图,开发者不仅能了解硬件系统的基本组成,还能掌握硬件与软件的交互方式,为进一步的嵌入式开发打下坚实基础。对于初学者来说,这是一次宝贵的实践经验,有助于理解实际系统中...

    迅为出品---iTOP-4412开发板之Linux实验手册-ARM开发板资料.pdf

    《迅为出品---iTOP-4412开发板之Linux实验手册》是一份专门针对iTOP-4412开发板用户编写的Linux操作系统下的应用程序开发与实验指南。该手册详细介绍了Linux操作系统下进行编程实验的步骤、代码和分析,非常适合初学...

    嵌入式linux与ARM开发板的入门建议

    我在学习嵌入式linux的过程中很少问人,客观原因是身边的老师、同学师兄都没有这方面的高手,主观原因是我不喜欢问人,喜欢自己研究解决问题。这样做有个好处,就是可以提高自己解决问题的能力,因为做这些东西总有...

    ARM入门及嵌入式开发入门.pdf

    ARM入门及嵌入式开发是电子工程领域中的热门话题,尤其对于希望进入这一行业的学习者而言。ARM(Advanced RISC Machines)是一种精简指令集计算机架构,广泛应用于各种嵌入式系统,从简单的物联网设备到复杂的移动...

    华恒ARM培训资料--嵌入式开发环境和应用开发,开发环境的构建,嵌入式入门基础

    本文将围绕“华恒ARM培训资料”展开,深入探讨嵌入式开发环境的构建、嵌入式Linux驱动开发及应用开发、嵌入式入门基础知识以及在设计过程中常见的错误和点评。 首先,让我们关注“嵌入式开发环境的构建”。构建一个...

    51单片机+ARM开发板二合一嵌入式学习

    ### 51单片机+ARM开发板二合一嵌入式学习知识点 #### 一、HC6800-EM3开发板概述 **HC6800-EM3**是一款集成了51单片机与32位ARM处理器的二合一学习板,非常适合初学者入门嵌入式系统开发。该开发板由底板和核心板...

    ARM入门及嵌入式开发入门.doc

    ### ARM入门及嵌入式开发知识点详解 #### 一、ARM与51单片机的关系 **基础概念:** - **51单片机**:一种广泛应用的基础型单片机,具备良好的教学资源和较低的成本。 - **ARM**:一种高性能、低功耗的RISC(精简...

    嵌入式系统开发ARM入门文章集锦

    2. **友善之臂Mini2440开发板**:友善之臂是一家知名的嵌入式开发工具供应商,Mini2440是一款经典的开发板,搭载了S3C2440A ARM9处理器,具有丰富的外设接口,适合初学者进行硬件实验和软件开发。 3. **基本概念**...

    LPC2103 ARM7 开发板

    总之,LPC2103 ARM7开发板是一个全面的学习和开发平台,涵盖了嵌入式系统设计的多个方面。通过这个平台,开发者可以深入理解ARM架构、微控制器的使用以及与常见硬件外设的交互,为今后的项目开发打下坚实基础。

    arm开发板裸机教程

    总结,这个ARM开发板裸机教程旨在帮助初学者快速入门嵌入式开发,通过LED控制、GPIO应用和ADC操作等实际案例,提升硬件驱动和底层系统编程能力。随着对这些基础知识的掌握,你将能够进一步探索更复杂的嵌入式系统...

    ARM 嵌入式系统开发综述 - ARM 开发工程师入门宝典.pdf

    ### ARM 嵌入式系统开发综述 #### 前言 嵌入式系统是一种专为特定应用设计的计算机系统,它包含了硬件和软件两个方面。...希望通过对这些内容的学习,能够帮助初学者更快地进入嵌入式开发领域,并顺利完成项目。

    arm嵌入式入门文章

    ARM 嵌入式开发是当今电子科技领域的一个重要分支,尤其在物联网、智能家居、智能设备等应用场景中占据核心地位。对于初学者来说,掌握 ARM 技术是迈向专业开发的重要一步。本文将深入探讨 ARM 入门的关键知识点,...

    ARM92410开发板资料

    ARM9 2410是采用SAMSUNG2410(ARM9内核)作为微处理器的嵌入式RISC控制板,外形为标准的3.5吋嵌入式主板的设计形式,可直接应用在工业、医疗、网络、智能终端等嵌入式设备的设计和制造中,同时也可作为上述产品的...

    arm,51 开发板proteus仿真合集

    而"Proteus做的仿周立功ARM开发板%2B.rar"则可能是对知名电子厂商周立功公司的ARM开发板的仿真模型,便于学习者研究其功能和特性。 "51开发板.zip"和"Tx-1C1.zip"可能包含了51单片机和特定型号的开发板(如TX-1C)...

    嵌入式实验一:开发板OK6410点亮LED灯.docx

    OK6410开发板是一款基于Samsung S3C6410处理器的嵌入式开发平台,它提供了四个LED灯,通常用于指示系统状态或者进行简单的用户交互。本实验的目标是编写驱动程序,使这些LED灯根据指令亮起或熄灭。 **实验环境** ...

    ARM 嵌入式系统开发综述 ARM 开发工程师入门宝典

    ARM架构因其低功耗、高性能和广泛的生态系统,成为了嵌入式系统开发中的首选平台之一。本篇文章旨在为ARM开发工程师提供一份全面的入门宝典,涵盖从开发平台的选择到软件开发的各个环节。 #### 1. 嵌入式开发平台 ...

Global site tag (gtag.js) - Google Analytics