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()函数来进行使命切换。