ARM入门.docx

上传人:b****5 文档编号:6657583 上传时间:2023-01-08 格式:DOCX 页数:14 大小:30.05KB
下载 相关 举报
ARM入门.docx_第1页
第1页 / 共14页
ARM入门.docx_第2页
第2页 / 共14页
ARM入门.docx_第3页
第3页 / 共14页
ARM入门.docx_第4页
第4页 / 共14页
ARM入门.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

ARM入门.docx

《ARM入门.docx》由会员分享,可在线阅读,更多相关《ARM入门.docx(14页珍藏版)》请在冰豆网上搜索。

ARM入门.docx

ARM入门

一首先说说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块!

够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的吧?

也是没别的,就是即省了钱还省时间搜集资料,至于资料全不全,别计较了~~硬件肯定好使就行吧。

四要不要有51AVR等单片机基础

    有更好,但没有也无所谓。

   两个月以前,我只是看别人做,耳濡目染~~,本科学过单片机,从来没做过。

我们这的技术主干做AVR和51,我就跟他们调过C语言程序。

你看出来了?

我是个不折不扣的菜鸟吧?

但是做这个之前我特意找了ZLG的两本书,看了里面的例子和原理图,这很重要。

例程里有汇编有C,都看懂了就OK,不用自己现写

五开发都需要学习哪些软件

总结起来最主要的有以下几个吧

1ADS调试用

确切的说是ADS+AXD。

ADS里包含AXD。

原来都用SDT后来ARM公司停止对SDT支持了,改支持ADS了,还是用ADS吧。

有的人的程序发布的仍然是SDT版本的,但基本都可以找到相应ADS的,新人在这里不要发蒙。

ADS是编译器,AXD是调试器。

便宜成AXF以后再在ARM的RAM里调试。

2PLASHPGM

FLASH烧写的软件。

AXD在RAM里调试,掉电就没有了,方便程序修改。

调试好的程序再下到FLASH里,上电直接运行。

同类的软件还有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人还问FLASH不支持BIN格式文件的问题就要看我写的PLASHPGM使用了。

3BANYANT调试代理(不知道名对不,起这么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊)

调试代理就是用它帮你使用更简单的JTAG(便宜啊)来实现原本1K才卖的JTAG仿真器的大部分功能。

JTAG调试原理看我另一篇笔记。

简单的就可以把他理解为你自己做的JTAG的驱动就行了。

调试代理还有很多种,什么H-JTAG了、ARM7了(不知道具体叫什么,就记得可执行文件叫ARM7.EXE)都是,BANYANT比较好。

需要注意的是,没种调试代理安装方法虽然都简单但都不一样,需要看说明。

而且AXD调试之前都要运行。

省钱了,就别怕麻烦了。

4ARM-ELF-TOOLS工具链

里面是UCLINUX开发用的工具比如ARM-ELF-GCC只类的。

工具链就是把很多工具打包在一起发布的方便你开发的东西。

具体安装方法看我另一篇笔记。

另外如果你开发LINUX就要用ARM-LINUX-TOOLS,不一样,不通用。

5U-BOOT

大名鼎鼎的BOOTLOADER生成工具,同类的好象还有VIVI(名字很暧昧~~)

生成的BOOTLOADER烧到FLASH里,然后就可以用BOOTLOADER下载烧写其他了

有了BOOTLOADER才能下UCLINUX。

BOOTLOADER就像电脑上的BIOS。

当然UCOS的不用这个,用什么我不知道:

最新版本是1.1.4具体使用方法看我另一篇笔记吧。

6UCLINUX包

UCLINUX的源码包,不用多说了吧?

建议大家用现成的先体会一下,然后再自己编译,裁剪。

因为单独UCLINUX的编辑技术上比较简单,但涉及的方面还是比较广的。

7VMWARE

老牌的虚拟机软件,在一个机器上虚拟出一个机器装LINUX(PC上用的),省得你来回开关机了。

记得装VMWARE-TOOLS,安装方法在我另一篇笔记里。

六有哪些书推荐

   主要推荐ZLG的三本书,有这3本再加网络就不用别的书了,其中主要推荐前2本,3是介绍体系结构的,也不错

1ARM嵌入式LINUX系统构建与驱动开发,北航版

驱动写的很详细,前期开发介绍也很好

2ARM嵌入式系统实验教程

(二),北航版

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

3ARM嵌入式系统基础教程

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

444B0数据手册

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

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

写的太多,看烦了。

其他的书没了几本,没看见好的,大家有看过的推荐吧。

七选UCOS?

UCLINUX?

LINUX?

VXWORKS?

还是当单片机用

  1搞开发,工程设计,用UCOS,小巧,多进程,简单,体现了ARM7的精髓。

  2LINUX正根的嵌入式系统,LINUX消费与通信领域用的比较多,但缺点是必须ARM9才能跑,ARM9的板子自己做就不行了,6层板太贵。

买开发板1K达底吧。

但是还是推荐选ARM9+LINUX

  3UCLINUX算投机嵌入式系统:

)ARM7上可以跑,由有LINUX近亲,学好好可以比较方便的转向LINUX,像我一样的穷鬼用吧,呵呵

  4VXWORKS

学好后可以找到高薪工作,但工作机会本身并不比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,当与要用超级终端时用跳线切换。

2SD卡,和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就没问题

可以用这个命令“setmem0xc000000,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

这个是问题比较简单。

1ARM7主要就几个公司的

三星,PHILIP,ATMEL的

ATMEL的有比较便宜的AT91SAM7S32和AT91SAM7S64专为8位应用产品量身定做,价格很便宜好象《3刀吧。

和PHILIP的21XX差不多,资料太少,项目中选还不错。

其他两家上面说了的不多说了吧

2ARM9

这个玩2410和2440的多吧,现在2440还比较火啊可以考虑买个了

但是2410就比较便宜了,作为学习来说反到和不错,推荐整一个:

其实ARM9用的最多的领域应该是消费电子,比如手机PDA,而这上面用的多的应该是INTEL的和TI的吧。

但是INTEL的TI的入门材料少,价格高,自己看情况定吧。

这个这个是讲

是做什么的:

十一开发流程

这里是我的开发流程

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就没问题

可以用这个命令“setmem0xc000000,0xffffffff,32”

我的RAM挂在BANK6上所以地址是0XC000000,你要是改了就也得改。

8用我写的《自己写了个C工程模板又写了个使用说明》里的方*调试程序吧,写个简单的,我当时写个LED闪烁的。

看好使不。

9把程序按照《FLASH烧写总结》里的烧到FLASH里,测试一下

10按照《UBOOT移植操作》移植UBOOT  

11按照《UCLINUX下载简单说明》下个UCLINUX

12看看驱动开发的方*,自己写个驱动看看

13还有很多事东西着你玩呵呵

谨献给为了知识执着的嵌入式初学者,欢迎高手补充讨论

实践当然是最锻炼人的方式,但是我想在校生很少有这样的机会,别说本科生,硕士生

也未必有条件。

所以我想学习嵌入式要从个人的知识背景和现实条件出发。

订立合适的

阶段目标,在允许的条件下多动手多思考。

一般情况下对于硬件设备是比较短缺的。

但是可以从软件方面和嵌入式系统开发模式上

下功夫,提醒大家一点,嵌入式系统开发设计的内容知识很多,所以大家不要乱,在了

解嵌入式系统开发的体系结构后,一步一步的下手,最容易上手的是linux下的C,比如

ucos(有开放源代码),虽然可能无法在硬件上仿真,但也不必着急。

wince,palmos上

手都很容易。

无论对于初学者还是自以为是高手的人来说,编程水平(这可不受硬件条

件限制)绝对是没有止境的,有了较高的编程水平(嵌入式主要是C,当然OO的几种语言

c++,java是发展趋势),等到有机会的时候及时的补充硬件知识,会很快的成为高手。

还有,一定记住,学习嵌入式,”要想办法,不要找理由“。

当年在dos下用tc编程时的

条件,现在回想起来建筑就是奇迹。

我推荐一条发展道路吧,仅供参考,

1、C开发经验

条件:

linux(这都有吧)

方法:

随便,主要是掌握ansiC编程(不包括gtk,qt等图形可视化开发)

2、网络、操作系统、体系结构

条件:

linux,各种书,算法、例程。

方法:

通过C编程实现简单的网络等知识的算法和过程。

3、嵌入式系统概念

条件:

各个嵌入式网站,讨论组,书籍

方法:

少提问(尤其是等着天上掉馅饼,这主要是防止增长惰性,也解决不了实际问题

),多思考。

4、嵌入式开发实践

条件:

各种嵌入式系统开发工具的demo版(或者D版,如果有的话),包括编译器,仿真

器。

可以找高手们要,也可以下载。

方法:

这里有两个分支,一个是基于mcu/dsp的嵌入式系统开发,一个是象palmos,winc

e,ucos等rtos下的应用软件开发。

对硬件感兴趣,想成为真正高手的由第一个分支入手

,以后进入第二个分支;如果十分厌烦硬件,只想停留在软件开发上的,可以只由第二

个分支入手,以后就和pc上的开发没有什么本质上的区别了,找份不错的工作应该没问

题,可以不用进行下面的步骤了,感兴趣可以参考第6条。

5、硬件开发

条件:

各种嵌入式芯片、存储器等电路器件,protel99等电路设计软件,电路板制作。

方法:

这时候该有开发条件了,最起码是51系列,这个比较方便。

电路的设计内容较多

,不过看起来吓人,实际上比软件要简单的多。

只要下功夫,实践会告诉你一切。

6、硬件工程/软件工程/项目管理

条件:

各个芯片详细资料和使用经验,软件工程知识,项目管理知识,培训,大型项目

参与经验

方法:

已经是高手了,但是学无止境,沾沾自喜于已有的知识是致命的。

那个下一步。

,你该是管理者了。

抛砖引玉,以上出自我的经验,欢迎各路高手们补充,初学者提问。

为了技术,一路狂奔。

-TANGO发表于2002-6-918:

12嵌入式系统←返回版面

我来补充几点.

要想成为高手中的高手,最好从钻研如下领域修炼:

1,分析一种RTOS的源代码--UCOS最容易;

2,分析一种通讯协议栈的实现方式--TCP/IP最实用;

3,精通一种DSP的开发集成环境--TICCS2.1最优秀,精华在其内带的RTOS;

4,精通一种单片机的开发集成环境--keilC最经典;

5,精通一种MCU的开发集成环境--ADS1.2最流行;

要想成为大师级人物再从如下领域开始修炼:

1,精通一种系统建模语言和工具--TelelogictauSDL/UMLsuit最经典;

2,精通一种算法仿真工具--Matlabsimulink最便宜;

要想检验一下自己是否到达了至尊级人物,可以做如下的事:

动手搭建一套红外或者蓝牙通讯原型系统,模拟前端可以用现成的,基带用DSP,主控用

个32BMCU,DSP和协议软件自己写。

当然不可能做全,做个子集就可以了。

如果能到这个地步,打住吧,该改行去做市场了。

做个一、二年市场,你不自己去创个

业就太浪费了。

ARM起步----在ARM2014开发板上运行第一个ARM程序

万事起头难!

本文是一个ARM初学者的心得体会。

谈谈本人运行的第一个ARM程序:

在周立功的EasyARM2014开

发板上点亮一个LED灯。

第一步,下载ADS1.2。

购买EasyARM2014开发板时,满以为买回即可使用,其实不然。

在把程序下载到开发

板的FLASH之前,先要产生一个IMAGE文件,或者是.hex文件。

这两个文件需要开发

工具来生成。

在随板购买的“ARM微控制器基础与实践”一书中,使用了ADS开发环

境来生成下载文件。

该软件可以从下面的地址下载:

下载的是一个.iso文件,必须把它烧到光盘上(或虚拟光盘)上才能使用。

打开Easy

CDCreator,从File菜单中选RecordCDfromCDimage项,将其烧录到CD中。

注意

不能直接按Record键,该键录下的依然是.iso文件。

录完之后,CD中就显示出ADS的

全部文件,点击setup就可以开始安装。

注意阅读盘中文件安装license。

第二步,在ADS上运转第一个简单程序。

学习ADS的入门材料很多,比如周立功的书,还有“一步一步基于ADS1.2进行设计开

发”等等。

前者虽然讲了ADS的原理,但并没有给出一个用ADS开发一个具体程序的

例子;后者虽有一个例子,但是该例子假设开发板中已有一个bootloader.bin程序。

所以这些材料对初学者都不够方便。

对初学者而言,最好有一个简单的例子,能够

直接在ADS上转一遍。

我发现,学习ADS最好的方法是阅读ADS自带的帮助文件和例子。

帮助文件可以通过

ADS菜单中的OnlineBooks阅读,也可以在ADS目录中的PDF子目录中找到;还可以在

ARM的网站上找到:

在“ADS1.2:

AssemblerGuide”中有几个很简单的汇编例子。

另外

“ADS1.2:

GettingStarted”通过一个例子,一步步地教你怎样使用ADS的CodeWarriar编

译环境,在“ADS1.2:

AXDandarmsdDebuggersGuide”中一步步教你怎样使用

调试环境。

这几份手册ADS入门的捷径。

第三步。

硬件连接。

要把程序下载到开发版,有两种方法。

一种是通过JTAG接口,另一种是通过ISP接口。

这里介绍后一种方法,因为它比较简单。

首先,把PC机的串口接到开发板的UART0接

口。

然后,把JP1跳线接上,最后插上电源。

硬件联结完成。

然后启动软件LPC210XISP,这是开发板光盘中的软件。

用于ISP方式下载程序。

启动之后把Device选项置为LPC2104,然后按ReadDeviceID键,验证硬件连结是否

成功。

一般而言,按键后会跳出一个信息窗口,显示“PleaseresetyourLPC210x

boardnowandthenpressOK”,此时按开发板上的reset键,然后按“确定”按

钮。

如果显示“ReadPartIDSuccessful!

”,就说明连接成功。

第四步。

在开发板上用ISP方式装入并运转第一个程序。

ADS手册中介绍的例子并不适合于装入开发板中运行。

有的例子太简单,没有输出操

作,有的例子太复杂,使用printf输出。

更重要的是,这些例子中并没有说明怎样

编制启动代码。

周立功的书上有不少例子,而且讲

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1