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 设置好导致晶阵不阵。这个是必须做的,但一带而过。目标放的远一点。