深圳arm培训新手怎么学arm_第1页
深圳arm培训新手怎么学arm_第2页
深圳arm培训新手怎么学arm_第3页
深圳arm培训新手怎么学arm_第4页
深圳arm培训新手怎么学arm_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

新手怎么学ARMLPC2378开发板每个人都经历过初学阶段,有些很顺利,有些则很曲折,有些甚至还在徘徊更有一些感叹那就都在这说出来吧,说说自己的经历,自己难忘的经历当作是一种回味,也给后来人一些经验和教训新手也要抓紧时间,有什么想请教老手的,也都再在提。另外这是一种学习方法的探讨,不是具体问题的解答,所以请不要问具体的什么如汇编语法之类的具体问题,这些还是自己踏踏实实的系统的学习课本吧,或让老手教您怎么去学,应该学哪些。若有了相关的知识,建议先上ARM官网下载一些ARM的基本文档资料。了解一下ARM的结构体系,知晓ARM的几种版本和相应的典型结构。在此基础上可以购买一套开发实验系统(根据自己的经济实力和系统的适用性来选择,再根据具体的系统下载相应ARM芯片的资料,结合开发系统所提供的资料先从汇编入手做一些小实例(不要太大)。等到汇编和系统硬件都比较熟悉后就可转入用C编一些小软件,尽量搞得有趣些以便提高自己的兴趣。信盈达是一家专注于嵌入式研发,以及嵌入式培训的机构。信盈达嵌入式实训学院从5月份开始全面进入了实操。从项目中获取经验,让您在短短的四个月内迅速的拥有12年的工作经验。要想学习嵌入式、ARM、LINUX、单片机、PCB、STM32、ANDROID、FPGA等,那就赶紧加入我们吧小班授课、包教会。就业保障,可循环听课。学完后一年技术支持QQ1469217515TE江老师)到这个程度就可以试着接一些小的项目来练手了,从制板到在上面裸奔,等你做完了会发现ARM入门并不难。接下来就要考虑上OS了,先可以考虑那些适合在ARM7上跑的系统。由于OS涉及到软件技术的方方面面,建议先搞一个简单易加载的系统,利用它真实了解一下OS的作用和基本功能。等到对OS的剪裁,加载和调用已经有了相当的了解就可以转入到基于多进程的当前流行的OS上来。HWM开始接触ARM是在2006年,那时还在大学,老师给我的毕业设计题目ARM嵌入式系统的BOOTLOADER编程,原因是因为俺之前的单片机成绩还算相当不错。然后就开始学习,查资料。有一本书对我的帮助最大ARM体系结构与编程这本书一直到我工作后才发现在公司里基本上是ARM嵌入式开发工程师人手一本。这在我工作之初给了我很大的信心俺们大学看的书也不是完全没用啊我的学习过程大致如下1ARM汇编。不用记住汇编指令,只求能看懂,甚至只要能翻书看懂汇编程序即可。重要的是在学习ARM汇编的过程当中了解了ARM体系结构的过程CPU的几种模式极其作用,R1R15的作用,CPSR,SPSR2简单的程序编写以及编译。使用ARM汇编和C编写一些小的代码,一开始可能无从下手,可以去参考别人的代码,看他们是怎么写BOOTLOADER的,看他们的C和汇编是怎样混合编程的。还有,编译也是同样重要,一开始,通过书本以及ADS的集成开发环境能编译出简单的目标文件。这里了解了ROBASE,RWBASE,FIRST,ENTRY的作用,同时了解了汇编语言中的AREA以及ENTRY的用途。3项目需要,发现内存安排不太合理,需要分散加载,而后开始学习分散加载技术。这时才发现ADS12自带的文档是多么的全面我想知道的里面都有。4工作后开始接触上万个文件组成的大项目,这时使用的编译方法已经不再是集成环境了。于是学习了MAKEFILE,同时学习了ADS12的编译器的命令行用法。5工作中,一边工作一边学习,逐渐深入的了解了分散加载,BOOTLOADER,FLASHDRIVER,MAKEFILE等。6现在,依然在学习中,我的OS还在构建中,MULTITASK,POSIX。我的几点建议1看书ARM体系结构与编程,这可以说是ARM圣经也不为过。2ADS12的文档。在安装ADS12时选择“FULL“完全安装,然后在安装目录下会找到PDF目录,里面的文档都相当详细。重点推荐ADS_ASSEMBLERGUIDE_BPDFADS_COMPILERGUIDE_DPDFADS_LINKERGUIDE_APDF三个文档,英文的,慢慢嚼,会有收获的。3看书过程中可能遇到不懂的,问问不到跳过,看后面的。这样反复看,当一本书被你这样看几遍后你会发现值得你问的东西会越来越少,最后你甚至会发现这书上居然有错这时,恭喜你,可以对这本书说俺懂你了。4对于分散加载和编译器的命令行格式,还有MAKEFILE,我强烈建议立志于走这条路的兄弟一定要不畏艰难的啃下他们,当你啃下他们之后请再回头看看以前走过的路一览众山小的感觉就是这样了。5加强各个知识点之间的联系。比如分散加载通常和BOOTLOADER有关系,也和汇编有关系,还与连接器有关系。如果能做到一个点一个点的联系起来,而后形成一个知识面,那么相信你的进步会非常迅速的。6ATPCS,当你不满足于简单的写汇编,简单的写C,当你想自己写一个OS出来的时候,ATPCS就是你需要了解的了。通过他,我们能进行汇编,C,C的混合编程。呵呵,有了汇编和C还有什么做不到的呢。以上只是我的一点小小建议,如果认为不对,全当一阵风吹过。WISHCOM一首先说说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屏PCB11XX块够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调试用确切的说是ADSAXD。ADS里包含AXD。原来都用SDT后来ARM公司停止对SDT支持了,改支持ADS了,还是用ADS吧。有的人的程序发布的仍然是SDT版本的,但基本都可以找到相应ADS的,新人在这里不要发蒙。ADS是编译器,AXD是调试器。便宜成AXF以后再在ARM的RAM里调试。2PLASHPGMFLASH烧写的软件。AXD在RAM里调试,掉电就没有了,方便程序修改。调试好的程序再下到FLASH里,上电直接运行。同类的软件还有很多,什么FLUTED了、FLSHP了都是,但FLASHPGM最好,要是有人还问FLASH不支持BIN格式文件的问题就要看我写的PLASHPGM使用了。3BANYANT调试代理(不知道名对不,起这么个难记的,我一般都叫它“半羊”因为知道它那几天刚吃了烤羊)调试代理就是用它帮你使用更简单的JTAG(便宜啊)来实现原本1K才卖的JTAG仿真器的大部分功能。JTAG调试原理看我另一篇笔记。简单的就可以把他理解为你自己做的JTAG的驱动就行了。调试代理还有很多种,什么HJTAG了、ARM7了(不知道具体叫什么,就记得可执行文件叫ARM7EXE)都是,BANYANT比较好。需要注意的是,没种调试代理安装方法虽然都简单但都不一样,需要看说明。而且AXD调试之前都要运行。省钱了,就别怕麻烦了。4ARMELFTOOLS工具链里面是UCLINUX开发用的工具比如ARMELFGCC只类的。工具链就是把很多工具打包在一起发布的方便你开发的东西。具体安装方法看我另一篇笔记。另外如果你开发LINUX就要用ARMLINUXTOOLS,不一样,不通用。5UBOOT大名鼎鼎的BOOTLOADER生成工具,同类的好象还有VIVI(名字很暧昧)生成的BOOTLOADER烧到FLASH里,然后就可以用BOOTLOADER下载烧写其他了有了BOOTLOADER才能下UCLINUX。BOOTLOADER就像电脑上的BIOS。当然UCOS的不用这个,用什么我不知道)最新版本是114具体使用方法看我另一篇笔记吧。6UCLINUX包UCLINUX的源码包,不用多说了吧建议大家用现成的先体会一下,然后再自己编译,裁剪。因为单独UCLINUX的编辑技术上比较简单,但涉及的方面还是比较广的。7VMWARE老牌的虚拟机软件,在一个机器上虚拟出一个机器装LINUX(PC上用的),省得你来回开关机了。记得装VMWARETOOLS,安装方法在我另一篇笔记里。六有哪些书推荐主要推荐ZLG的三本书,有这3本再加网络就不用别的书了,其中主要推荐前2本,3是介绍体系结构的,也不错1ARM嵌入式LINUX系统构建与驱动开发,北航版驱动写的很详细,前期开发介绍也很好2ARM嵌入式系统实验教程(二),北航版有ZLG2200的原理图,实验程序和注释,了解人家是怎么开发的。3ARM嵌入式系统基础教程最重要的是体系结构,汇编部分介绍,看看吧,增加理论素质。444B0数据手册写在这里是强调它的重要。不推荐ZLG早期出的红色皮的ARM什么体系结构只类的写的太多,看烦了。其他的书没了几本,没看见好的,大家有看过的推荐吧。七选UCOSUCLINUXLINUXVXWORKS还是当单片机用1搞开发,工程设计,用UCOS,小巧,多进程,简单,体现了ARM7的精髓。2LINUX正根的嵌入式系统,LINUX消费与通信领域用的比较多,但缺点是必须ARM9才能跑,ARM9的板子自己做就不行了,6层板太贵。买开发板1K达底吧。但是还是推荐选ARM9LINUX3UCLINUX算投机嵌入式系统)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焊接44B0JTAG电路WIGGLER的JTAG访真器周边电路,用BANYANT仿真器连接,BANYANT提示错误,但可以显示44B0编号,好象是0X0F0F0F0F只类的,说明44B0没问题6焊接晶体RAMROM周边电路,用BANYANT仿真器连接,可以显示正确的44B0了7用BANYANT仿真器连接,开AXD,在命令行窗口操作RAM,看可不可以修改,可以的话(用内存窗口看RAM地址)RAM就没问题可以用这个命令“SETMEM0XC000000,0XFFFFFFFF,32”我的RAM挂在BANK6上所以地址是0XC000000,你要是改了就也得改。8用我写的自己写了个C工程模板又写了个使用说明里的方法调试程序吧,写个简单的,我当时写个LED闪烁的。看好使不。9把程序按照FLASH烧写总结里的烧到FLASH里,测试一下10按照UBOOT移植操作移植UBOOT11按照UCLINUX下载简单说明下个UCLINUX12看看驱动开发的方法,自己写个驱动看看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的入门材料少,价格高,自己看情况定吧。S3C2410配套61寸夏普TFT彩屏仅26000支持0中立0反对0ARMKERNEL献给ARM初学者ARM简介与编程1ARM简介摘录ARM(ADVANCEDRISCMACHINES)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。目前,总共有30家半导体公司与ARM签订了硬件技术使用许可协议,其中包括INTEL、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。ARM架构是面向低预算市场设计的第一款RISC微处理器。2产品介绍ARM提供一系列内核、体系扩展、微处理器和系统芯片方案。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此)。典型的产品如下。CPU内核ARM7小型、快速、低能耗、集成式RISC内核,用于移动通信。ARM7TDMITHUMB这是公司授权用户最多的一项产品,将ARM7指令集同THUMB扩展组合在一起,以减少内存容量和系统成本。同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。该产品的典型用途是数字蜂窝电话和硬盘驱动器。ARM9TDMI采用5阶段管道化ARM9内核,同时配备THUMB扩展、调试和HARVARD总线。在生产工艺相同的情况下,性能可达ARM7TDMI的两倍之多。常用于连网和顶置盒。体系扩展THUMB以16位系统的成本,提供32位RISC性能,特别注意的是它所需的内存容量非常小。嵌入式ICE调试由于集成了类似于ICE的CPU内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。微处理器ARM710系列,包括ARM710、ARM710T、ARM720T和ARM740T低价、低能耗、封装式常规系统微型处理器,配有高速缓存(CACHE)、内存管理、写缓冲和JTAG。广泛应用于手持式计算、数据通信和消费类多媒体。ARM940T、920T系列低价、低能耗、高性能系统微处理器,配有CACHE、内存管理和写缓冲。应用于高级引擎管理、保安系统、顶置盒、便携计算机和高档打印机。STRONGARM性能很高、同时满足常规应用需要的一种微处理器技术,与DEC联合研制,后来授权给INTEL。SA110处理器、SA1100PDA系统芯片和SA1500多媒体处理器芯片均采用了这一技术。ARM7500和ARM7500FE高度集成的单芯片RISC计算机,基于一个缓存式ARM732位内核,拥有内存和I/O控制器、3个DMA通道、片上视频控制器和调色板以及立体声端口ARM7500FE则增加了一个浮点运算单元以及对EDODRAM的支持。特别适合电视顶置盒和网络计算机(NC)。WINDOWSCE的POCKETPC只支持ARMWINDOWSCE可支持多种嵌入式处理器,但基于WINDOWSCE的POCKETPC则只支持ARM一种。微软在对SH3、MIPS、ARM等嵌入式处理器做了评估后认为,ARM是一种性价比较好的选择。由于目前ARM在手持设备市场占有90以上的份额,只支持ARM,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。由于ARM开放其处理器授权,因此,用户在市场上可以在多家整机厂商中进行选择,从而保证了这一市场的竞争性。2ARM芯片CLPS7111主要特点电平27V/33V相对应CPU工作频率13MHZ/18MHZ13MHZ位节电模式,性能相当于33MHZINTER486PCARM710A内核ARM7CPU8K4向缓存CACHEMMU带有64入口TLBTRANSITIONLOOKASIDEBUFFERDRAM控制器支持16位和32位DRAMROM/SRAM/FLASHMEMORY控制可译码4,5或6个独立的256M存储空间段每个存储段支持8位,16位和32位操作,并支持分页模式可编程ROM/SRAM/FLASHMEMORY支持两个低功耗CLPS6700PC卡PCMCIA控制器2K片内SRAM用于程序快速执行片内BOOTROM128BYTE两个同步串行接口支持SPI,或MICROWIRE2兼容音频解码器AUDIOCODEC27位通用接口GPIOGENERALPURPOSEI/OPORT3个8位和1个3位GPIOPORT支持键盘阵列扫描SCANNINGKEYBOARDMATRIX两个异步串口UARTS支持高达1152K波特率内有两个接收发送TX,RX16BYTESFIFOS缓冲支持MODEM控制信号DCTODC转换器接口提供两个96KHZ时钟输出,通过编程DUTYRATIO1/1615/16操作LCD控制器直接信号扫描板接口,单色LCD面板的大小可编程从16到1024个像素,16个像素为一个单位视频帧大小可编程到128KBYTE每个像素点的位数可编程1,2,4位计时器和实时时钟两个16位计时器TIMERCOUNTER和一个32位实时时钟RTC3调试工具及调试方法ARMPROJECTMANAGERAPMINCLUDEARMDEBUGER这个工具由ARM提供主要是开发程序,编程调试ARM芯片,有相当不错的开发环境和远端调试功能,支持汇编和C它带有一个ARM自己的嵌入式操作系统ARMANGEL,用户可以在它的上面开发自己的嵌入式软件,不过这个操作系统不是实时多任务的通过计算机串口与处理器UART相连,设置计算机的超级终端HYPERTERMINAL,通过超级终端察看硬件情况寄存器设置,数据等和程序运行情况,当然程序重要加入向UART送出数据的指令,用BEEP报警也是经常用的这种调试方法是用于底层调试硬件,找出硬件存在的问题VXWORKS在SHELL不能正常运行前,也是采取这种方法来调试程序,不过一般不是硬件问题,而是BSP中存在的问题,需要根据硬件,修改BSP需要说明的是上述方法是在没有硬件仿真器的情况下采用的,仿真器是底层调试硬件程序最好,最简便直观的办法。4ARM7编程要点及示例ARM编程可参考程序示例ARM_BOOTFLASHROM驱动VXWORKSIMAGE装入ARM的过程ARM7有两种运行模式,BOOT模式和NORMAL模式,BOOT模式主要是把程序装入DOWNLOAD或LOADFLASHROM中用的,NORMAL模式是一般运行程序用的ARM7BOOT模式时,FLASH的地址是0X70000000片选型号是CS0NORMAL模式下,FLASH地址为0X00000000ARM7内部有128BYTE的BOOTROM和2K的SRAM,当需要DOWNLOADVXWORKSIMAGE时,ARM启动采用BOOT方式启动运行存在128BYTEBOOTROM中的程序初始化ARM内部的COM口,从COM口接受数据到2K的SRAM,这2K程序是用来真正LOADVXWORKS的,2K程序LOAD完毕后系统自动跳转到这2K程序执行,它的作用是再次初始化内部的COM口,通过COM口接受VXWORKS到DRAM,然后由DRAM写入FLASH。在主板2KSRAM运行的BOOTLOAD程序执行过程,可参看程序示例中ARMBOOTLOAD程序写入完毕后,切换到NORMAL模式重新启动系统,系统自动跳到FLASH0X00000000开始运行VXWORKS。用PC机上的COM1与ARM内部的UART1(COM)通信来DOWNLOADVXWORKS。主要管脚定义32条数据线D0D3128条地址线A0A27LITTLEENDIAN定义,相对应数据排列0123456276条片选信号脚CS0CS5,其实作用相当于地址线A28A314个8位的PORT口PORTA,PORTB,PORTD主要用于外围芯片信号的控制PORTE有双作用例如PORTA控制键盘的行信号,PORTB用于RS232,PORTD用于控制MODEM,FPGA外部中断信号EINT,EXTFIQ编程时要根据主板原理图和硬件手册进行看硬件图纸,该芯片和CPU的那些管脚连结特别是PORT口和片选线查CPU手册,得到PORT口和该片选的硬件地址编程用PORT口直接对芯片操作,如开,关,RESET等,用片选地址和芯片内地址结合对该外围芯片操作EXCEPTIONVECTORS,中断向量表及中断分配VECTOR地址EXCEPTIONEXCEPTIONMODEPRIORITY1HIGH0X0RESETSVC10X4UNDEFINEDINSTRUCTIONUNDEF60X8SOFTWAREINTERRUPTSVC60XCPREFETCHABORTABORT50X10DATAABORTABORT20X14RESERVEDNOTAPPLICABLENOTAPPLICABLE0X18INTERRUPTIRQIRQ40X1CFASTINTERRUPTFIQFIQ3这个向量表必须要放置在系统地址0X00000000一般是逻辑地址,即经过MMU映射后的地址处一般是在这些地址上放跳转指令BL,跳到相应的地址空间执行相应的程序如系统执行从0X00000000RESET开始,RESET跳转到某一地址开始运行操作系统程序示例,中断向量表ARMASM_VECTORSTARTSTARTOFARMPROCESSORVECTORSLDRPC,RESETV00RESETLDRPC,UNDEFV04UNDEFINEDINSTRUCTIONSLDRPC,SWIV08SWIINSTRUCTIONSLDRPC,PABORTV0CINSTRUCTIONFETCHABORTSLDRPC,DABORTV10DATAACCESSABORTSLDRPC,UNUSEDV14RESERVEDWASADDRESSEXCEPTIONLDRPC,IRQV18IRQINTERRUPTSLDRPC,FIQV1CFIQINTERRUPTS中断号分配FIQ,IRQ中断类型中断号NAME说明FIQ0外部中断EXTFIQ管脚NEXTFIQIRQ5外部中断EINT1管脚NEINT1IRQ6外部中断EINT2管脚NEINT2IRQ7外部中断EINT3管脚NEINT3IRQ12内部中断UTXINT1UART1TXFIFO为空中断号也是寄存器INTMR和INTSR的位,所以在ARM中中断的编程要点是看硬件图纸,该外设和CPU的那一个管脚连结查CPU手册,得到中断号及INTMR,INTSR的地址编程注如果不是写底层DRIVER,只是在系统上层编程如VXWORKS,LINUX知道中断号即可程序示例VXWORKS/登记中断号5,和相应的中断例程COMISRINTCONNECTVOIDFUNCPTR5,COMISR,0/使能这中断INTENABLEVOIDFUNCPTR5ARMINTERRUPTSARMPROCESSORSIMPLEMENTFASTANDNORMALLEVELOFINTERRUPT,SIGNALLEDEXTERNALLY,SYNCHRONISEINTERRUPTSBEFOREANEXCEPTIONISRAISEDAFASTINTERRUPTREQUSTFIQWILLDESABLESUBSEQUENTNORMALANDFASTINTERRUPTBYSETTINGTHEIANDFBITINCPSR,ANDANORMALINTERRUPREQUESTIRQWILLDISABLESUBSEQUENTNORMALINTERRUPTBYSETTINGIBITINCPSR计时器中断编程过程ARM7一般内部有两个16位计时器TIMERCOUNTER和一个32位实时时钟RTC,计时器中断属于IRQ中断,这里以计时器1为例叙述一下中断的编程过程设置INTERRUPMASKINTMR1寄存器0X80000240第8位TC1OI计时器1为使能在0X800000300计时器1的数据寄存器TC1D写入指定数据,这样数据开始从这个给定的数开始递减

温馨提示

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

评论

0/150

提交评论