硅谷芯微吧 关注:59贴子:334
  • 5回复贴,共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天,回来以后焊接44B0 160个脚!那叫一个麻烦~~花了多少钱呢?2层板,制版费就300块!当然我把接口都外引了,还做了个20X18的LCD背板,板子比较大。总体下来元件+LCD屏+PCB=11XX块!够2410的了。



1楼2012-02-21 14:39回复
    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,当与要用超级终端时用跳线切换。
    


    3楼2012-02-21 14:39
    回复


      6楼2012-03-16 18:46
      回复
        顶起


        7楼2012-03-17 10:12
        回复
          刚刚准备学习嵌入式,发现听的最多的就是51了


          IP属地:甘肃8楼2012-04-23 10:20
          回复
            呵呵 对于初学者51还是不错的选择


            9楼2012-04-23 10:21
            回复