初学者是选ARM7还是ARM9?uCOS还是Linux?

初学者是选ARM7还是ARM9?uCOS还是Linux?,第1张

  arm7简介

  ARM7系列处理器是英国ARM公司设计的主流嵌入式处理器ARM7内核是0.9MIPS/MHz的三级流水线和冯·诺伊曼结构;ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。ARM7没有MMU。

  ARM7系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T。该系列处理器提供Thumb16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。

  ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。三级流水线:ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个 *** 作同时进行,并使处理和存储器系统连续 *** 作,能提供0.9MIPS/MHz的指令执行速度。ARM7TDMI的流水线分3级,分别为:取指、译码、执行。正常 *** 作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。

  ARM9简介

  ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDMI和ARM9E-S等系列。

  ARM9采用哈佛体系结构,指令和数据分属不同的总线,可以并行处理。在流水线上,ARM7是三级流水线,ARM9是五级流水线。由于结构不同,ARM7的执行效率低于ARM9。平时所说的ARM7、ARM9实际上指的是ARM7TDMI、ARM9TDMI软核,这种处理器软核并不带有MMU和cache,不能够运行诸如linux这样的嵌入式 *** 作系统。而ARM公司对这种架构进行了扩展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等带有MMU和cache的处理器内核。

  ARM9处理能力

  (1)时钟频率的提高

  ARM7处理器采用3级流水线,而ARM9采用5级流水线。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.8~2.2倍。

  (2)指令周期的改进

  指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。

  UCOS简介

  μC/OS II(Micro-Controller OperaTIng System Two)是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,适合很多商业 *** 作系统性能相当的实时 *** 作系统(RTOS)。为了提供最好的移植性能,μC/OS II最大程度上使用ANSI C语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。 μC/OS II可以简单的视为一个多任务调度器,在这个任务调度器之上完善并添加了和多任务 *** 作系统相关的系统服务,如信号量、邮箱等。其主要特点有公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。从1992年开始,由于高度可靠性、鲁棒性和安全性,μC/OS II已经广泛使用在从照相机到航空电子产品的各种应用中。

  μC/OS-II实时多任务 *** 作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。 μC/OS-II 的前身是μC/OS,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在《嵌入式系统编程》杂志的5 月和6 月刊上刊登的文章连载,并把μC/OS 的源码发布在该杂志的B B S 上。

  UCOS应用情况

  1) 高优先级的任务因为需要某种临界资源,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度也称为任务级的上下文切换。

  2) 高优先级的任务因为时钟节拍到来,在时钟中断的处理程序中,内核发现高优先级任务获得了执行条件(如休眠的时钟到时),则在中断态直接切换到高优先级任务执行。这种调度也称为中断级的上下文切换。 这两种调度方式在μC/OS-II的执行过程中非常普遍,一般来说前者发生在系统服务中,后者发生在时钟中断的服务程序中。 调度工作的内容可以分为两部分:最高优先级任务的寻找和任务切换。其最高优先级任务的寻找是通过建立就绪任务表来实现的。μ C / O S 中的每一个任务都有独立的堆栈空间,并有一个称为任务控制块TCB(Task Control Block)的数据结构,其中第一个成员变量就是保存的任务堆栈指针。任务调度模块首先用变量OSTCBHighRdy 记录当前最高级就绪任务的TCB 地址,然后调用OS_TASK_SW()函数来进行任务切换。

  linux简介

  Linux是一套免费使用和自由传播的类Unix *** 作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。

  linux特性

  基本思想

  Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、 *** 作系统、进程等等对于 *** 作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

  完全免费

  Linux是一款免费的 *** 作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的 *** 作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

  完全兼容POSIX1.0标准

  这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

  多用户、多任务

  Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

  良好的界面

  Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行 *** 作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行 *** 作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

  支持多种平台

  Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式 *** 作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

  ARM7与ARM9的区别

  1.时钟频率的提高

  虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构;,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz以上。

  2指令周期的改进

  指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。

  3.MMU(内存管理单元)

  ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。ARM9一般是有MMU的,ARM9940T只有MPU,不是一个完整的MMU。

  这一条很重要,MMU单元是大型 *** 作系统必需的硬件支持,如linux;WINCE等。这就是说,ARM7一般只能运行小型的实时系统如UCOS-II,eCOS等,而ARM9无此限制,一般的 *** 作系统都可以移植。其实即使ARM720T能支持LINUX;WINCE等系统,也鲜有人用,因为以ARM7的运行速度跑这种大型 *** 作系统,实在有点吃力。再者两者的应用领域明显不同,也无此必要。

  4.ARM7比ARM9提供了更好的性能-功耗比。它包含了THUMB指令集快速乘法指令和ICE调试技术的内核。

  5.在从ARM7到ARM9的平台转变过程中,有一件事情是非常值得庆幸的,即ARM9E能够完全地向后兼容ARM7上的软件;并且开发人员面对的编程模型和架构基础也保持一致。

  初学者是选ARM7还是ARM9

  1)明确目的

  学习为应用。你学ARM准备用在什么地方,如果是一般性控制系统或仅仅用来替换8获16位机,ARM7显然是首选;但如果用在网络通信或大型的音视频处理等,则ARM9较合适。

  2)自身基础

  学习ARM的一般有三类人:

  一是计算机专业的:这类人对 *** 作系统等软件知识了解较多,而对硬件知识知之甚少,显然这类人学ARM的话还是做软件好,可以基于LINUX;WINCE等 *** 作系统的ARM9更能符合这类人的要求,当然也有很多计算机专业的人从事ARM7系统的应用软件编写的。但是搞底层的就很少了。

  二是电子类专业的:这类人的硬件基础了相对较好,相反 *** 作系统,数据库等软件知识则差强人意。因此人多电子专业的人员都熟悉单片机,用单片编写点小程序还不在话下,但要用ARM做较大型的软件则有点力不从心,尤其是LINUX;WINCE这种 *** 作系统不是三两个月能轻松搞定的。建议这类人员如无特别需要还是从ARM7和小型 *** 作系统学起。够用就好,不要盲目追求高端。有一点要注意并不是从事ARM9的就比ARM7工资高,反而ARM7的就业机会比ARM9多,这很好理解,好比金字塔,越往顶肯越小。

  三是软硬件基础都不太好的:这类人员有确实需要的,也有赶时髦的,如无大的学习决心还是参加培训的好。当然也可曲线救国,搞懂单片机后,ARM7就不难了。

  最后说一点关于开发板的,初学者买个开发板确实很有必要,但也要选择合适的,初学者合适的就是,资料齐全,有配套教程和学习指导,再加上较及时的技术支持。

  选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、当单片机用:不推荐,因为对于学习来说多进程的系统设计才是ARM7的玩头,至少你也要整个UCOS啊;有朋友问我先学这个当基础不行吗?那当然可以~~但我当时就用了1周搞定,就是我先的ADS在RAM中调试的笔记。后来我清空Flash用的小段程序还是当时写的LED闪烁程序呢。另外1周里其中还因为自己过于菜,没把OM设置好导致晶阵不阵。这个是必须做的,但一带而过。目标放的远一点。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2717358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存