当前位置:文档之家› 基于ARM7核处理器VxWorks系统BSP设计

基于ARM7核处理器VxWorks系统BSP设计

基于ARM7核处理器VxWorks系统BSP设计
基于ARM7核处理器VxWorks系统BSP设计

基于ARM7核处理器VxWorks系统BSP设计

1 介绍

S3C4510B是三星公司推出的针对嵌入式应用的16/32 位嵌入式处理器,该微控制器专为以太网通信系统的集线器和路由器而设计,具有低成本和高性能的特点, S3C4510B中内置了ARM公司设计的16/32位ARM7TDMI处理器, 可以执行32位的ARM指令,也可执行16位的THUMB指令, 并集成了多种外围部件,主要有:

● 时钟频率50MHz

● 内核/IO电压3.3V

● 8KB的Cache/SRAM

● 一个10/100Mbps 以太网控制器,MII接口

● 两个HDLC通道,每个通道可支持10Mbps

● 两个UART通道

● 两个DMA通道

● 两个32位定时/计数器

● 18个可编程I/O口

● 中断控制器,支持21个中断源,包括4个外部中断

● 支持SDRAM,EDO DRAM,SRAM,Flash等

● 具有扩展外部总线

● JTAG接口,支持软件开发,硬件调试

S3C4510B支持目前常用的嵌入式操作系统,如VxWorks、pSoS、ucLinux等,本文将主要介绍VxWorks操作系统下的软件开发。

ARM7TDMI是ARM家族通用的一款32位微处理器,它主要为用户提供了高性能、低价格解决方案。

ARM7TDMI具有三级流水线的32位RISC处理器,处理器结构为冯·诺依曼L oad/Store。该CPU具有两种指令集,即ARM和Thumb指令集。ARM指令集是3 2位,它可以利用CPU最大性能;而Thumb指令集则是16位指令集。

ARM7TDMI内核方块图如图1所示。

2 系统硬件图

该系统主要以S3C4510B为核心,外围集成了以太网卡、SDRAM、FLASH、UART以及HDLC等。图2是以S3C4510B为核心的最小系统设计图。

SDRAM选用HY57V653220(8Mbyte)、两片FLASH分别为AM29F040(存放bootrom)和T28F160BT(作为文件系统用)。

3 VxWorks操作系统下BSP构建

在完成板上基本硬件的测试后,下面我就开始对vxWorks操作系统下BSP进行开发,开发前需要做一些准备工作,如准备开发工具等。

①开发工具用的是Tornado2.2 for ARM;

②参考资料有BSP Kit、S3C4510B DataSheet;

③参考Tornado2.2 for ARM下自带的wrSBCArm7 BSP;

④烧写程序采用编程器。

通常在开发BSP的时候,我们需要在Tornado原带BSP目录下找一个与我们所用的处理器相同或相近。与BSP相关的文件有:romInit.s、sysAlib.s、bootInit.

c、bootConfig.c、sysLib.c、config.h、configNet.h、makefile以及与我们硬件相关的,如串口sysSerial.c等。由于篇幅所限,具体的文件作用在此就不说了。下面主要根据S3C4510B来阐述一下BSP开发步骤。

(1)拷贝BSP

将wrSBCArm7 BSP拷贝一份并命名为4510BSP,接下来的工作就是修改该目录下的文件,从而得到自己的BSP。

(2)修改MakeFile文件

修改4510BSP目录下的makefile文件,修改如下几行:

TARGET_DIR = 4510BSP # changed by caiyang

VENDOR = CAI # changed by caiyang

BOARD = MyArmBoard # changed by caiyang

ROM_TEXT_ADRS = 01000000 # ROM entry address

ROM_WARM_ADRS = 01000004 # ROM warm entry address

ROM_SIZE = 00080000 # number of bytes of ROM space

RAM_LOW_ADRS = 00006000 # RAM text/data address (bootrom) RAM_HIGH_ADRS = 00486000 # RAM text/data address (bootrom)

MACH_EXTRA =

注解:ROM_TEXT_ADRS:BOOT ROM的入口地址。对大多数板来说,这就是ROM地址区的首地址,然而也有的硬件配置使用ROM起始的一部分地址区作为复位向量,因此需要根据此设置偏移量作为它的地址。这个偏移量因CPU结构而定。

ROM_WARM_ADRS:BOOT ROM热启动入口地址。它通常位于固定的RO M_TEXT_ADRS+4的地方。当需要热启动时,sysLib.c文件中sysToMonitor( )函数代码明确的跳转到ROM_WARM_ADRS地址处开始执行。

ROM_SIZE:ROM实际大小。

RAM_LOW_ADRS:装载Vxworks的地址。

RAM_HIGH_ADRS:将Boot Rom Image拷贝到RAM的目的地址。

注意:RAM_LOW_ADRS 和RAM_HIGH_ADRS 都是绝对地址,通常位于D RAM起始地址的偏移量处,该偏移量取决于CPU结构,这需要参考VxWorks内存分布。对于ARM的内存分布请看图3,从图3可以看出RAM_LOW_ADRS在DR AM+0x1000处。这些地址对于S3C4510B来说都应该是重映射后的地址。

(3)修改config.h文件

主要是修改ROM_BASE_ADRS、ROM_TEXT_ADRS、ROM_SIZE、RAM_L OW_ADRS、RAM_HIGH_ADRS和undef掉不需要的部分。注意这些应该和mak efile文件中设置的一致。

(4)修改romInit.s文件

CPU一上电就开始执行romInit( )函数,因此在romInit.s代码段中它必须是第一个函数。对于热启动,处理器将会执行romInit( )加上4后的代码(具体参考sys Lib.c中的sysToMonitor( )函数)。更多的硬件初始化在sysLib.c中sysHwInit( )函数中,romInit( )的工作就是做较少的初始化并把控制权交给romStart( )(在boo tInit.c文件)。

在S3C4510B处理器中,romInit.s文件主要做了以下几个工作:

①禁止CPU中断并切换到SVC32模式;

②禁止中断控制器;

③初始化SYSCFG、EXTDBWTH、ROMCON0、ROMCON1、DRAMCON0等寄存器,同时初始化了FLASH、SDRAM、DM9008等外围设备;

④将FLASH的内容拷贝到SDRAM中;

⑤改变FLASH和SDRAM的基地址,将SDRAM基地址改为0;

⑥初始化堆栈指针;

⑦跳转到C程序romStart( )函数中。

在这里,只需要修改SYSCFG、EXTDBWTH、ROMCON0、ROMCON1、D RAMCON0等寄存器来设置FLASH、SDRAM、DM9008的基地址和大小即可。这需要根据板上的配置来修改,修改的内容在wrSbcArm7.h文件中。

BSP基本部分就已经修改完成,至于bootInit.c和bootConfig.c文件,我们一般不需要修改它,只是在调试过程中为了方便调试,可以将他们拷贝到BSP目录下,然后修改makefile文件,在makefile文件中添加如下两句。

BOOTCONFIG = bootConfig.c

BOOTINIT = bootInit.c

(5)利用tsfs(target server file system)下载

要利用tsfs下载VxWorks,首先需要配置以下内容:

①在config.h文件中添加如下内容

/* Serial port configuration */

#define INCLUDE_SERIAL

#undef NUM_TTY

#define NUM_TTY N_SIO_CHANNELS

#undef CONSOLE_TTY

#define CONSOLE_TTY 0

#undef CONSOLE_BAUD_RATE

#define CONSOLE_BAUD_RATE 38400

/*** WDB ***/

#ifdef SERIAL_DEBUG

#define WDB_NO_BAUD_AUTO_CONFIG

#undef WDB_COMM_TYPE

#undef WDB_TTY_BAUD

#undef WDB_TTY_CHANNEL

#undef WDB_TTY_DEV_NAME

#define WDB_COMM_TYPE WDB_COMM_SERIAL /* WDB in Serial mode */

#define WDB_TTY_BAUD 38400 /* Baud rate for WDB Connection */ #define WDB_TTY_CHANNEL 1 /* COM PORT #2 */

#define WDB_TTY_DEV_NAME "/tyCo/1" /* default TYCODRV_5_2 devic e name */

#endif /* SERIAL_DEBUG */

/* tsfs added by caiyang */

#define INCLUDE_TSFS_BOOT

并修改引导行为

#define DEFAULT_BOOT_LINE par "tsfs(0,0)host:vxWorks f=8 h=169.254.

72.67 e=169.254.72.68 u=caiyang pw=caiyang"

注:串口1用来显示引导信息,相当于PC机中的显示器,串口2用来下载Vx Works和调试。同时串口2波特率不能太高,经测试115200好像不行。

②配置target server

启动Tornado开发环境,选择Tool->target server菜单。在下拉菜单中选“t arget server file system”并选中Enable File System,然后目录指向Vxworks所在的地方。同时注意要把Tornado Registry打开,这样配置完后点击Launch按钮即可连接成功,此后就可以通过串口2下载VxWorks和调试。

一般情况下,我们首先调试好BSP,然后在调试网卡。所以在调试网卡前,我们需要用串口来下载VxWorks映像。

至此,我们的BSP就开发完成。

4 结论

在没有调试BSP的硬件工具如仿真器的时候,我们只能通过点灯或者串口输出来定位程序执行的正确性。这大大增加了调试难度和进程。对于BSP开发,一般需要从一个模板来修改。BSP开发的正确性直接影响到VxWorks系统运行的稳定性。

VxWorks常用命令汇总

VxWorks常用的命令 1.与任务相关的命令 sp function,[arg1],...,[arg9] -启动任务,最多接受9个参数,默认的优先级100、堆栈20000字节 period n,function,[arg1],...,[arg8] -创建一个周期调用function的任务,周期为n秒,最多接受8个参数 repeat m,function,[arg1],...,[arg8] -创建一个反复调用function的任务,调用次数为m,m=0时永久调用,最多也是8个参数 ts tidX -挂起任务 tr tidX -恢复挂起的任务 td tidX -删除任务 i tidX -显示任务基本信息,参数为0时显示全部任务 ti tidX -显示任务详细信息,包括寄存器、堆栈等 tt tidX -显示任务的函数调用关系 checkStack tidX -显示任务堆栈使用的历史统计,参数为0时显示全部任务 [其中tidX可以为任务ID 也可以为任务名] 2、系统信息 lkup ["string"] -在系统符号表中查找并列出含有"string"字符的函数及全局变量,有两个特殊参数: 0,给出符号表统计;""(空字符串),列出全部符号 lkAddr addr -显示addr地址附近的符号表 l addr,[n] -显示addr地址开始的n条指令的反汇编,n省略时默认为10条指令 h [n] -n为0时列出最近执行的shell命令,默认20条;n非0时,设定shell记录的历史命令的数目 d [addr,[number],[width]] -显示addr地址开始的number个单元的内容,width定制每个单元的宽度,可以是1、2、4、8 m addr,[width] -按width宽度修改addr地址的内容,width可以是1、2、4、8 memShow 1 -显示系统分区上空闲和已分配空间的总数等 printErrno value -打印系统定义的错误码的宏 3、与网络相关的命令 ifShow ["ifname"] - show info about network interfaces inetstatShow - show all Internet protocol sockets tcpstatShow - show statistics for TCP udpstatShow - show statistics for UDP ipstatShow - show statistics for IP icmpstatShow - show statistics for ICMP arpShow - show a list of known ARP entries

微处理器系统结构与嵌入式系统设计(第2版) 第3章答案

“微处理器系统原理与嵌入式系统设计”第三章习题解答 3.1处理器有哪些功能?说明实现这些功能各需要哪些部件,并画出处理器的基本结构图。 处理器的基本功能包括数据的存储、数据的运算和控制等功能。其有5个主要功能:①指令控制②操作控制③时间控制④数据加工⑤中断处理。其中,数据加工由ALU 、移位器和寄存器等数据通路部件完成,其他功能由控制器实现。处理器的基本结构图如下: 寄存器组 控制器 整数单元 浮点单元 数据通路 处理器数据传送 到内存数据来自内存数据传送到内存指令来自内存 3.2处理器内部有哪些基本操作?这些基本操作各包含哪些微操作? 处理器基本操作有:取指令、分析指令、执行指令。 取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。 分析指令:对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。 执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。 3.3什么是冯·诺伊曼计算机结构的主要技术瓶颈?如何克服? 冯·诺伊曼计算机结构的主要技术瓶颈是数据传输和指令串行执行。可以通过以下方案克服:采用哈佛体系结构、存储器分层结构、高速缓存和虚拟存储器、指令流水线、超标量等方法。

3.5指令系统的设计会影响计算机系统的哪些性能? 指令系统是指一台计算机所能执行的全部指令的集合,其决定了一台计算机硬件主要性能和基本功能。指令系统一般都包括以下几大类指令。:1)数据传送类指令。(2)运算类指令 包括算术运算指令和逻辑运算指令。(3)程序控制类指令 主要用于控制程序的流向。 (4)输入/输出类指令 简称I/O 指令,这类指令用于主机与外设之间交换信息。 因而,其设计会影响到计算机系统如下性能: 数据传送、算术运算和逻辑运算、程序控制、输入/输出。另外,其还会影响到运算速度以及兼容等。 3.9某时钟速率为2.5GHz 的流水式处理器执行一个有150万条指令的程序。流水线有5段,并以每时钟周期1条的速率发射指令。不考虑分支指令和乱序执行带来的性能损失。 a)同样执行这个程序,该处理器比非流水式处理器可能加速多少? b)此流水式处理器是吞吐量是多少(以MIPS 为单位)? a.=51p T nm S T m n =≈+-串流水 速度几乎是非流水线结构的5倍。 b.2500M IPS p n T T =≈流水 3.10一个时钟频率为2.5 GHz 的非流水式处理器,其平均CPI 是4。此处理器的升级版本引入了5级流水。然而,由于如锁存延迟这样的流水线内部延迟,使新版处理器的时钟频率必须降低到2 GHz 。 (1) 对一典型程序,新版所实现的加速比是多少? (2) 新、旧两版处理器的MIPS 各是多少? (1)对于一个有N 条指令的程序来说: 非流水式处理器的总执行时间s N N T 990 106.1)105.2/()4(-?=??= 5级流水处理器的总执行时间s N N T 991 10)4(2)102/()15(-?+=?-+= 加速比=42.310 +=N N T T ,N 很大时加速比≈3.2 (2)非流水式处理器CPI=4,则其执行速度=2500MHz/4=625MIPS 。 5级流水处理器CPI=1,则其执行速度=2000 MHz /1=2000 MIPS 。 3.11随机逻辑体系结构的处理器的特点是什么?详细说明各部件的作用。 随机逻辑的特点是指令集设计与硬件的逻辑设计紧密相关,通过针对特定指令集进行

嵌入式系统的比较

嵌入式系统的比较 简单介绍ecos, uc/OS,uClinux,RTlinux,Linux 到目前为止接触过QNX、RTLinux、uC/OS-II、Nucleus Plus、VRTX、VxWorks、eCos,总结下来有以下特点: Ecos:多任务抢占机制,可配置(特色),可配置文件系统 uc/OS:代码很少,多任务抢占机制,需自己扩展文件系统 uClinux:非抢占式,没有MMU管理存储器,有文件系统等许多功能 RTlinux:通过在L inux内核与硬件中断之间增加一个精巧的可抢先的实时内核,把标准的Linux内核作为实时内核的一个进程与用户进程一起调度,标准的L inux内核的优先级最低,可以被实时进程抢断。正常的Linux进程仍可以在Linux内核上运行。 Linux:有MMU管理存储器。 1:QNX 的可靠性很好,协议栈、各种外设驱动稳定,只是运行所需资源有些多,需要MMU。如果需要高可靠性应用,QNX可能是最好的选择。 2:RTLinux的实时性与其它RTOS相比有些差。但是,因为好多Linux资源可以利用,是RTLinux的优点。但是运行所需资源比QNX还多,也是需要MMU。可以选用开源的RTLinux 或内容新的商用RTLinux。 3:uC/OS-II比较小巧,移植容易,网上资源很多,核心可以做得很小。但不是免费的,并且驱动需要自己编写,协议栈、图形驱动都要另外加。 4:Nucleus Plus比uC/OS-II庞大,另外提供了文件系统、协议栈、图形界面等许多东西。当然也是分开卖的,不是免费的东西。使用起来比较容易上手。 5:VRTX 是一款比较早的RTOS,现在使用的人已经很少。运行还是比较可靠。配套的文件、协议栈等模块很少。 6:VxWorks是RTOS中的大牛,国内外用的人很多,开发工具功能强大,使用方便,但是价格昂贵。也有基于MMU的高可靠性的产品。所需资源比QNX小,比uC/OS、eCos 多。对于一些私企或者好似小公司来说,可用性值得商榷。 7:eCos是开源的RTOS。针对不同的CPU已经做了许多现成的移植。代码尺寸比Nucleus 的略大。如果不用USB host等,并且不想花费太多的金钱,应该是不错的选择。 μC/OS和uClinux的比较 引言 随着现代计算机技术的飞速发展和互联网技术的广泛应用,从PC时代过渡到了以个人数字助理、手持个人电脑和信息家电为代表的3C(计算机、通信、消费电子)一体的后PC 时代。后PC时代里,嵌入式系统扮演了越来越重要的角色,被广泛应用于信息电器、移动设备、网络设备和工控仿真等领域。 嵌入式系统是以嵌入式计算机为核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、体积、成本、功耗等综合性能有严格要求的计算机系统。随着

嵌入式微处理器系统读书报告

《嵌入式微处理器系统》专题读书报告 姓名:全妤

1、引言 随着医疗电子、智能家居、物流管理和电力控制等方面的不断风靡,嵌入式系统利用自身积累的底蕴经验,重视和把握这个机会,想办法在已经成熟的平台和产品基础上与应用传感单元的结合,扩展物联和感知的支持能力,发掘某种领域物联网应用。作为物联网重要技术组成的嵌入式系统,嵌入式系统的视角有助于深刻地、全面地理解物联网的本质。 2、嵌入式系统的概念 嵌入式系统被定义为以应用为中心、计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积功耗严格要求的专用计算机系统。 2.1嵌入式系统的组成 一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成。嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。 2.1.1 硬件层 硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。

在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。 1)嵌入式微处理器 嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。 2)存储器 嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器。 3)通用设备接口和I/O接口 嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。

vxWorks开发环境构建步骤及开发资源

vxWorks开发环境构建步骤及开发资源 技创科技(Technique Innovator Inc.) https://www.doczj.com/doc/9018370847.html, 一、Tornado集成开发环境构成 Tornado是集成开发环境的名称,主要由帮助及参考文档、操作系统vxWorks、开发工具(编译器、调试器、编辑器、target server等,据统计,挂接在Tornado下的可选工具和第三方有数百个)等三部分构成,分别对应三个目录: i.docs/ 所有文档都集中在该目录中, books.html是根索引,入门级开发请务必查看 以下文档: ●如果要熟悉使用界面及Tornado使用、创建工程,请参考:Tornado用户手册 及Tornado集成开发环境的HELP->content调出来的联机帮助文档; ●vxWorks的编译是使用标准GNU Makefile来编译连接的,要了解Makefile语 法请参考”GNU Make”;具体的Make rules存放在target/h/make/目录下。 ●如何调试?请参考“Debugging with GDB” ●vxWorks构成、特点及kernel,编程等:请参考:VxWorks Programmer's Guide, 系统调用、库函数接口标准等,请参考:VxWorks Reference Manual ●有关BSP(board support package)的构成、初始化、底层驱动等,请参考“BSP Reference” ●网络应用编程指南(socket编程): “VxWorks Network Programmer's Guide” ii.host/ 该部分存放主机端(开发机)的工具,如Tornado.exe,make.exe,编译器、调试器及TCL命令解释器等等,开发中要用到的工具都存放在目录 host\x86-win32\bin 下,部分命令是.exe文件,部分是.bat的,其中有torvars.bat文 件,是设置Tornado集成开发环境的环境变量用的,在使用其他工具前,要运行它 设置正确的环境变量及可执行文件搜索路径。 iii.target/ vxWorks操作系统、源码、BSP、设备驱动、头文件、配置文件等config/ BSP的存放地方,底层开发者绝大部分时间在该目录下度过,该目录下除了all/和comps/外,其他每个目录对应一种硬件板的BSP,开发者在 做BSP开发时,原则上除了对应BSP目录能修改外,target/目录下的其他 所有目录都不应该作出改动,否则会影响到其他BSP,常用BSP有: pid7t/ →ARM公司推出的pid7 ARM7TDMI评估板的BSP integratorX/ →ARM公司推出的integratorXXX评估板的BSP tk4510a/ →我们要使用的S3C4510B板的BSP SNDS100/ →三星公司推出的SNDS100(KS3C50100/S3C4510B)板的 BSP h/ 头文件存放地点,包括vxWorks的及所有其他组件的 arch/arm/ ARM体系结构相关头文件 make/ 编译连接时要用到的规则都存放在这里 vxWorks.h wind Kernel(vxWorks的核心”Wind Kernel”的API及常量说明) lib/ vxWorks是一个商用操作系统,其不开放源码部分的.o文件及.a(库文件)文件存放在这里(当然,除了config/目录外,所有其他目录下的*.c源码在编

微处理器原理及其系统设计 第一章答案

第1章 1.将下列十进制数转换成二进制数: (1)58;(2)67.625; (3)5721; 解:(1)58D = 0011 1010B (2)67.625D = 0100 0011.1010B (3)5721D = 0001 0110 0101 1001B 2.将二进制数变换成十六进制数: (1)1001 0101B;(2)11 0100 1011B;(3)1111 1111 1111 1101B;(4)0100 0000 10101B;(5)0111 1111B;(6)0100 0000 0001B 解:(1)1001 0101B = 95H (2)11 0100 1011B = 34BH (3)1111 1111 1111 1101B = FFFDH (4)0 1000 0001 0101B = 815H (5)0111 1111B = 7FH (6)0100 0000 0001B = 401H 3.将十六进制数变换成二进制数和十进制数: (1)78H;(2)0A6H;(3)1000H;(4)0FFFFH 解:(1)78H = 120D = 0111 1000B (2)0A6H = 166D = 1010 0110B (3)1000H = 4096D = 0001 0000 0000 0000H (4)0FFFFH = 65535D = 1111 1111 1111 1111B 4.将下列十进制数转换成十六进制数: (1)39;(2)299.34375;(3)54.5625 解:(1)39D = 27H (2)299.34375D = 12B.58H (3)54.5625D = 36.9H 5.将下列二进制数转换成十进制数: (1)10110.101B;(2)10010010.001B;(3)11010.1101B 解:(1)10110.101B = 22.625D

vxworks653编程手册

一.V xWorks653运行时系统 1.1. 运行时层 一个vxworks653模块由下面四层组成: ■core OS—必需 ■partition—至少需要一个(vThreads 或COIL-based),每个都在一个分区的操作系统之中■APEX shared library—ARINC 653 应用所需 ■POSIX shared library—POSIX 应用所需 1.1.1.Core OS层 核心操作系统提供服务给分区。 缺省的,核心操作系统使用ARINC653规范中的时间抢占的调度(TPS)来调度分区。Vxworks653的核心操作系统还可以采用APPS调度策略在TPS调度的空闲时间内调度优先级

抢占调度(PPS)使能的分区。 核心操作系统提供给每个VThreads分区操作系统的服务包括: ●分区系统资源 ●调度分区 ●代表分区的操作系统执行trap异常 ●定义和强制分区边界 ●装载分区 ●使用端口和通道在分区间传递消息 ●处理I/O ●代表应用完成系统调用 ●支持分区的调试 ●监控分区和系统的健康 1.1. 2.vThreads 层 vThreads分区操作系统在核心操作系统分配给该分区的时间内调度vThreads中的线程。vThreads不直接与设备交互,而是通过核心操作系统的系统调用。 1.1.3.APEX 层 构建在vThreads之上,遵循ARINC653规范,并且提供相应功能和API。 1.1.4.POSIX层 构建在vThreads之上,遵循用于实时扩展的POSIX标准(1003.1b)。 1.2. 装载和启动 当目标板加电时,按照下面的步骤进行装载和启动 ●初始的启动码装载核心操作系统,分区操作系统,共享库,以及应用 ●核心操作系统初始化自身,启动它自己的子系统 ●核心操作系统创建分区 ●核心操作系统启动分区调度器,并且让应用初始化自身 核心操作系统可以在初始化完成之后下载在线装载的应用程序到分区。应用可以在分区运行之时装载到分区。

常见的嵌入式操作系统

常见的嵌入式操作系统 分类:嵌入式操作系统2012-12-11 10:06 459人阅读评论(1) 收藏举报嵌入式操作系统 嵌入式操作系统与通用的操作相比较主要特点在于: 1.小内核,稳定可靠。 2.需要可装卸、可裁剪,以便能灵活应对各种不同的硬件平台。 3.面向应用,强实时性,可用于各种设备控制当中。 国际上常见的嵌入式操作系统大约有40种左,右如:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive 。他们基本可以分为两类,一类是面向控制、通信等领域的实时操作系统,如windriver公司的vxworks、isi的psos、qnx系统软件公司的qnx、ati的nucleus等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理(pda)、移动电话、机顶盒、电子书、webphone等,系统有Microsoft的WinCE,3Com 的Palm,以及Symbian和Google的Android等。 一、VxWorks VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是T ornado嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌人式实时操作系统领域逐渐占据一席之地。VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持POSIX 1003.1b实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。 然而其价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。 二、Windows CE Windows CE与Windows系列有较好的兼容性,无疑是Windows CE推广的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式操

微处理器系统与嵌入式系统1—7章最全答案合集

“微处理器系统原理与嵌入式系统设计”第一章习题解答 1.1 什么是程序存储式计算机? 程序存储式计算机指采用存储程序原理工作的计算机。 存储程序原理又称“·诺依曼原理”,其核心思想包括: ●程序由指令组成,并和数据一起存放在存储器中; ●计算机启动后,能自动地按照程序指令的逻辑顺序逐条把指令从存储器中 读出来,自动完成由程序所描述的处理工作。 1.2 通用计算机的几个主要部件是什么? ●主机(CPU、主板、存); ●外设(硬盘/光驱、显示器/显卡、键盘/鼠标、声卡/音箱); 1.3 以集成电路级别而言,计算机系统的三个主要组成部分是什么? 中央处理器、存储器芯片、总线接口芯片 1.4 阐述摩尔定律。 每18个月,芯片的晶体管密度提高一倍,运算性能提高一倍,而价格下降一半。 1.5 讨论:摩尔定律有什么限制,可以使用哪些方式克服这些限制?摩尔定律还会持续多久?在摩尔定律之后电路将如何演化? 摩尔定律不能逾越的四个鸿沟:基本大小的限制、散热、电流泄露、热噪。具体问题如:晶体管体积继续缩小的物理极限,高主频导致的高温…… 解决办法:采用纳米材料、变相材料等取代硅、光学互联、3D、加速器技术、多核…… (为了降低功耗与制造成本,深度集成仍是目前半导体行业努力的方向,但这不可能永无止,因为工艺再先进也不可能将半导体做的比原子更小。用作绝缘材料的二氧化硅,已逼近极限,如继续缩小将导致漏电、散热等物理瓶颈,数量集成趋势终有终结的一天。一旦芯片上线条宽度达到纳米数量级时,相当于只有几个分子的大小,这种情况下材料的物理、化学性能将发生质的变化,致使采用现行工艺的半导体器件不能正常工作,摩尔定律也就要走到它的尽头了。业界专家预计,芯片性能的增长速度将在今后几年趋缓,一般认为摩尔定律能再适用10年左右,其制约的因素一是技术,二是经济。)

简单微处理器的设计

简单微处理器的设计 摘要:本课程设计采用EDA技术设计简单微处理器。系统设计采用自顶向下的设计方法。它由数的输入,数的比较,数的交换和结果输出四部分组成。系统实现采用硬件描述语言VHDL把系统电路按模块化方式进行设计,然后进行编程、时序仿真并分析。系统结构简单,使用方便,功能齐全,精度高,具有一定的应用价值。 关键词:处理器;输入;比较;交换

目录 1 引言 (1) 1.1课题设计的背景、目的 (1) 1.2 课程设计的内容 (1) 2 EDA、VHDL简介 (2) 2.1 EDA简介 (2) 2.2 VHDL简介 (2) VHDL语言的特点 (2) VHDL的设计流程 (3) 3 简单微处理器的设计过程 (4) 3.1设计规划 (4) 3.2 各模块设计及相应程序 (4) 4 系统仿真 (8) 1.数的输入. (8) 2 数的比较。 (8) 3 交换两个数。 (9) 4 结果输出(从小到大). (9) 结束语 (11) 致谢 (12) 参考文献 (13) 附录 (14)

1 引言 随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日新月异,而处理器,作为计算机中的一个重要部分,其性能从很大程度上决定了计算机的性能。本设计介绍的简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。 1.1课题设计的背景、目的 微处理器技术的发展是与微电子技术即大规模集成电路技术的发展分不开的。微电子技术以每18个月集成度提高一倍的速度迅速发展。20世纪80年代初,主要是16位微处理器8086/8088。1985年推出了80386微处理器,完成了16位体系结构向32位体系结构的转变。1989年80486出现了。80486的设计目标是提高指令执行速度和支持多处理器系统。80486在芯片内部增加一个8KB的高速缓冲存储器(cache),还增加了相当于80387的浮点部件(FPU),在基本指令的实现上,采用硬布线逻辑而不是微程序技术。1993年3月,Intel公司推出了第一代“奔腾”微处理器(Pentium),微处理器技术发展进入了一个新的阶段。到目前为止,“奔腾”已有四代产品。“奔腾”的设计思想是把如何提高微处理器内部指令执行的并行性作为主导。指令执行的并行性越好,微处理器的性能就越高。 本次设计的目的就是了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用电子称的设计,巩固和综合运用所学课程,理论联系实际,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解VHDL语言的精髓,达到课程设计的目标。 1.2 课程设计的内容 本设计主要介绍的设计一台简单微处理器,要求具有以下验证程序所要求的功能:输入包含10个整数(无符号数)的数组M,按从小到大的顺序输出这10个数。 ( 1 )程序开始及输入10个数据。 ( 2 )数的比较。

VxWorks操作系统RTP介绍和使用方法

VxWorks 操作系统RTP 介绍和使用方法 从VxWorks 6.x开始引入RTP(VxWorks real time process projec模t) 式编程,这种模式的优点是应用程序相互独立,互不影响,而且增加了内核的稳定性,缺点是由于“内核态”与“用户态”的内存拷贝,其执行效率有所降低,随着CPU 速度越来越快,这点效率的牺牲已经越来越不重要。相比较于传统的DKM (downloadable kernel module project ),RTP适合多个团队独立运作,然后汇总 联试,这种模式除了全局函数不能再shell 里直接调用外,其对应用程序几乎不 做任何约束,原有的DKM 工程代码稍作修改即可正常运行。内核变化较大,需 要添加较多的组件,内存需要较好的划分,为保持应用程序直接调用函数调试的 习惯,需要封装接口供用户使用。 现简单的介绍RTP使用方法,并给出demo 代码供参考。 1. 新建并编译工程: (1) File->new-> VxWorks real time process projec如t, 图【1】 图【1】 (2) 一路next 后,选择如图【2】所示的编译器

图【2】 (3) 选择Finish 后,工程新建完毕。 (4) 导入源文件:这里的源文件名称是fooRtpApp.c ,一种较快捷的方式是选 中新建的工程,按下F5,源文件会出现在工程中. (5) 右键选择编译,出现如图【3】,选择Continue 继续。 图【3】 编译完成后,会生成vxe 格式的可执行文件,此处为usrAppA.vxe 。 2. 下载可执行性文件 待板子启动后,使用ftp 将vxe 文件下载到板子中。步骤如下: (1)运行->cmd,打开对话窗口,如图【4】所示:

物联网操作系统的必备特性

物联网操作系统的必备特性 物联网所带来的机遇与挑战都是空前的。要抓住机遇,迎接挑战,是否拥有最佳的操作系统做为基础是极为关键的问题。 那么,物联网环境对操作系统提出了哪些不同于以往的需求?产品开发商采用怎样的操作系统,拥有哪些特征或技术,最有可能在物联网的发展中把握先机?基本上,今后的RTOS 不仅必须具备传统的实时性、确定性和可靠性,还必须提供高度互联、全面安全、远程管理等物联网环境所要求的全新能力。最近,风河公司推出了VxWorks7,对这套在嵌入式领域主导多年的RTOs(实时操作系统)进行了再次创新,其目标正是“物联网市场已达 实时操作系统 (The RTOS for thelnternet of Things) ”。实时性依然是物联网操作系统的必备特性 实时操作系统( RTOS,RealTimeOperation System)是指能够在确定的时间对内部或者外部的事件做出正确的响应。在实时操作系统中,进程执行结果的正确与否不仅与逻辑运算或数学计算结果的正确性相关,而且与得出这个正确结果的时间有关。也就

是说,在实时系统 中,如果一个进程的运算结果虽然 是正确的,但是由 于它完成的时间超出了给定的最后期限,那么这个结果就是毫无意义的。 例如汽车中使用的气囊。当报告车辆碰撞的传感器通知CPu 后,操作系统应快速地发出打开气囊的任务,并且不允许任何其他非实时处理进行干扰,晚一秒钟展开气囊比没有气囊的情况更糟糕,这就是一个典型的实时系统。 通常认为,实时操作系统要求速度非常快。但实际上,实时操作系统强调的不仅仅是速度,而是时间关系的次序和确定性。例如,一条货轮在码头等待各地的卡车运来货物之后装船运往海外,规定好了离港启航的时间。那么,如果有一辆卡车在货轮离港时间之后才把货物运到了码头,逻辑上它虽然完成了陆地货运任务,但已经没有任何意义了。货车行驶速度和气囊打开速度当然不可相提并论,但就它与货轮配合的时间顺序而言具有同样都是实时系统,都必须要满足的是时序确定性,而跟速度有多快不一定相关! 再例如,如果使用足够高性能的CPU,Windows 可以提供非常快的速度。但是,当某些后台任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务也会很长时间无响应。并不是说Windows 不够

EPON常用命令讲解

EPON常用命令讲解 ?数据业务基本排查 ?语音业务基本排查 ?930软件脚本简介 ?其他常用命令 ?典型案例分析 数据业务基本排查 基本思路: 在PON系统内GSWC、EC2、ONU各业务环节上应保证: 配置正确 配置生效 MAC地址正确转发 ?FTTH型ONU ?FTTB型ONU 配置核查 Onu switch目录: show vlan all显示所有端口vlan; show vlan 查看交换芯片单个vlan及其所属端口的信息,如果此端口配置为出口剥离vlan,相应端口显示为UN;反之显示为VF show vlan default 显示所有端口的untag属性的vlanid; Onu Debug下相关命令: ddd show port [|all] vlan config显示系统QinQ不使能下的Fe端口vlan的配置信息show port [|all] vlan service显示系统QinQ使能下的Fe端口vlan的配置信息show port [|all] vlan translation table显示端口的软件vlan转换表 EC2 Pon目录: show qinq_config <1-2> <1-24> 查询qinq模式下ONU端口业务信息 端口检查 show port status查看交换芯片端口的状态,可以查看用户端口是否接了终端,工作模式是否正确等 查看地址转发表

ONU swtich目录 show arl查看mac地址转发表,会显示学习到的端口、vlanid和mac地址,如果用户的vlan id同时上下行数据中学到,其中26端口( CPU端口)表示下行数据正常,用户端口1-24表示上行数据正常; OLT fdb目录 show fdb slot <1-8,11-18>查看上行数据时,查看业务卡(EC2)fdb表 show fdb slot 29查看下行数据时,查看上联口fdb表 主控盘学的地址的VID应该是最外层VLAN的VID。 如果,上下行fdb表都正确,但是拨号拨不上去,可以在OL T的上连口抓包,查看进出的包内容。如果有出去的包而无回来的包,则可以判断出是上游设备出问题。 如果fdb表学习不正确,则VLAN配置有问题,可以根据fdb表的情况,先判断问题出现在哪一个设备上,再查看VLAN配置有无问题。 其他处理方式: 如时延大、丢包、组播业务等问题,可分别在EPON系统与其他系统的接口处利用抓包工具查看定位,由于上联口只能封装单层vlan,Qinq和单层vlan方式会略有差别。 FTTN型ONU 与其他ONU差异 FTTN型ONU相对其他类型ONU比较独立,对于普通的数据、语音业务,OLT相当于“透传”的通道。 配置核查: FSWB Profile目录下 创建/修改/查看ADSL2+端口模板参数: add xaplus profile ; set dsl-profile ; show dsl-profile ; 主要查看4个方面: 1.编码类型(lineCoding) 一般编码类型在开通的下行速率低于8Mb/s时采用G .dmt,大于8M时采用adsl2plusauto。 2.线路类型(channelMode) 线路类型采用interleaved更为稳定 3.训练速率(dnFastMaxTxRate,dnIntlMaxTxRate,upFastMaxTxRate,upIntlMaxTxRate) ADSL 一般最大上行可达速率为800Kb/s,下行可达速率为8Mb/s ADSL2+一般最大上行可达速率为1Mb/s,下行可达速率为28Mb/s 配置时上行速率不要超过1Mb/s,推荐640Kb/s

几种主流嵌入式操作系统分析

几种主流嵌入式操作系统分析 1.嵌入式Linux 嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化 在容量只有几KB或者几MB 字节的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。 这与它自身的优良特性是分不开的。 嵌入式Linux 同Linux 一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式Linux 还在Linux 基础上 做了部分改进,如下所示。 ? 改善的内核结构 Linux 内核采用的是整体式结构(Monolithic),整个内核是一个单独的、非常大的程序,这____________样虽然能够使系统的各个部分直接沟通,提高系统响应速度,但与嵌入式系统存储容量小、 资源有限的特点不相符合。因此,在嵌入式系统经常采用的是另一种称为微内核(Microkernel) 的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断 处理等,而类似于文件系统和网络协议等附加功能则运行在用户空间中,并且可以根据实际 需要进行取舍。这样就大大减小了内核的体积,便于维护和移植。 ? 提高的系统实时性 由于现有的Linux 是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行 和响应速度,但从本质上来说并不是一个嵌入式实时操作系统。因此,利用Linux 作为底层 操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,如RT-Linux 已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等 各种领域。 嵌入式Linux 同Linux 一样,也有众多的版本,其中不同的版本分别针对不同的需要在内核等方面加入了特定的机制。嵌入式Linux 的主要版本如表4.1所示。 表4.1 嵌入式Linux主要版本 版本简单介绍 μCLinux 开放源码的嵌入式Linux 的典范之作。它主要是针对目标处理器没有存储管理单元 MMU,其运行稳定,具有良好的移植性和优秀的网络功能,对各种文件系统有完备 的支持,并提供标准丰富的API RT-Linux 由美国墨西哥理工学院开发的嵌入式Linux硬实时操作系统。它已有广泛的应用 Embedix 根据嵌入式应用系统的特点重新设计的Linux发行版本。它提供了超过25种的Linux 《嵌入式Linux应用程序开发详解》——第4章、嵌入式系统基础 系统服务,包括Web服务器等。此外还推出了Embedix的开发调试工具包、基于图 形界____________面的浏览器等。可以说,Embedix是一种完整的嵌入式Linux解决方案

VxWorks操作系统MakeFile

VxWorks操作系统MakeFile(一) 时间:2008-8-24 夜 版权申明:本文为水煮鱼为水煮鱼@博客园撰写,不得用于商业用途,如需摘用,请与水煮鱼联系。 1、介绍 本文将介绍为什么要将你的C源代码分离成几个合理的独立文档,什么时候需要拆分,那又怎么拆分呢? 然后再介绍如何使用GUN Make使你的编译和链接步骤自动化。可能你使用的是其他的make工具,但是其实道理都差不多。当然如果你对自己的编程工具有怀疑的话,可以不妨实际的试试。 2、多文件项目介绍 a. why? 为什么使用多文件项目?他们有什么好处呢? 从表面上看,多文件项目是够复杂的了,又要头文件,又需要extern申明,并且如果你要查找一个文件的话,还需要在更多的文件里搜索。 但是如果把其考虑成一个项目,那一个项目根据功能划分为小的模块,那就不难理解了。 想想如果是一个一万行代码,如果你把其放到一个文件里,则在编译的时候,则需要对一万行代码进行重新编译。不过如果你如果把其放到不同的文件里,那修改一行,则只需要编译一个文件就可以了。可能你会说,一万行代码,就算全部编译,那点时间也基本可以忽略不计,但是实际情况是,在一个大的系统里,可能代码达到几十万甚至上百万,千万行代码的规模。以我们的项目为例,目前代码规模已经达到了上千万行的级别,如果全部重新编译,则将耗费几个小时甚至半天的时间。如果将其划分多多个文件,则修改一行所引入的编译代码,将不会随着你代码规模的增大而增大。所以多个文件的优点不言自明了。 不过对于不便于搜索的问题,其实只要文件划分得当,也并不会造成多大的困难。其实,从多个目标文件生成一个程序包比从一个单一文件生成程序包要好的多。当然,实际上这是不是一个优势还与你所使用的系统有关。但是当使用gcc/ld(一个GUN C编译器/连接器)把一个程序包连接到一个程序时,在连接的过程中,它会尝试不去连接没有使用到的部分,但它每次只能从程序包中把一个完整的目标文件排除在外。因此,如果你修改了一个程序包中某一个目标文档中任何一个符号的话,那么这个目标文件整个都会被连接进来。要是一个程序包被非常充分的分解的话,那么经过链接后,得到的可执行文件会比从一个大目标文件组成的程序包连接得到的文件小的多。 并且常常我们的程序是模块化的,高内聚,低耦合,使得文件之间共享部分被减少到了最少,因此采用多文件的方式,可以比较容易的找到代码中的bug。 b.when? 那什么时候分解你的项目? 如果你开发的是一个大项目,在开始前,应该好好考虑一下你将如何实现,并且将生成几个文件来存放你的代码。当然,在项目的开发过程中,你可以建立新的我文件,但是这将打乱你的整体布局,可能造成你整体结构的调整。因此特别建

简单微处理器的设计与实现

实验五简单微处理器的设计与实现 一、设计任务和技术指标 运用在“数字电路与逻辑设计”课程中学过的基本理论知识,设计并用可编程逻辑器件实现一个简单的八位操作数的微处理器。完成微处理器硬件系统设计和指令系统设计两方面的任务,使微处理器能够实现两个不带符号位的八位二进制数原码相乘等功能。 二、简单微处理器介绍 1.微处理器硬件系统及原理 微处理器硬件系统包括运算器、控制器、存储器以及其它必要的逻辑部件。图4-1是一个微处理器的参考原理框图,具体说明如下: (1)程序计数器PC:存放将要执行指令的地址。 (2)指令存储器IROM,存放程序指令,每条指令的长度为W,指令的个数为L。 (3)指令寄存器IR:存放被执行指令的操作码,直接供运算控制器。 (4)控制器CON:产生一系列时序逻辑信号,控制微处理器各个部件协调一致地完成每条指令相应的操作,实现两个操作数的运算。 (5)通用寄存器堆R0-R7:用来临时存放运算过程中读出和写入的数据。 (6)缓冲寄存器RS和RD:用于存放ALU的两个输入操作数。 (7)运算器ALU和进位寄存器C:运算器ALU对两个操作数RS和RD进行加、减或逻辑运算处理,在进行加减运算时还接受控制器的进位输入信号CI,ALU的运算结果送给通用寄存 器或特殊寄存器。ALU还根据运算结果设置进位标志C和零标志Z。 (8)运算结果显示送七段数码管显示,用十六进制显示。 输入 输出 图4-1 简单微处理器框图 2.处理器指令系统及功能 处理器的基本指令字长为W位,指令的每一位从高到低用D W、D W-1、…D1、D0表示,有些微处理器的一条指令包括多个指令字长,即每条指令的长度不一样,例如Intel的80386等。本实验为了简化设计,规定所有的指令都是单指令字的指令,即所有指令的长度都是W。基本的指令系统一般包括

嵌入式操作系统的种类与特点

1.3.1 嵌入式操作系统的种类、特点与发展 1.嵌入式操作系统的种类 一般情况下,嵌入式操作系统可以分为两类: 非实时操作系统:面向消费电子产品等领域,这类产品包括个人数字助理(PDA)、移动电话、机顶盒、电子书等。 实时操作系统RTOS(Real-Time Embedded Operating System):面向控制、通信等领域,如windriver公司的vxworks、isi的psos、qnx系统软件公司的qnx等。 (1)非实时操作系统 早期的嵌入式系统中没有操作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。前台程序通过中断来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。在程序运行时,后台程序检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的操作。对于实时性要求特别严格的操作通常由中断来完成,仅在中断服务程序中标记事件的发生,不再做任何工作就退出中断,经过后台程序的调度,转由前台程序完成事件的处理,这样就不会造成在中断服务程序中处理费时的事件而影响后续和其它中断。 实际上,前后台系统的实时性比预计的要差。这是因为前后台系统认为所有的任务具有相同的优先级别,即是平等的,而且任务的执行又是通过FIFO队列排队,因而对那些实时性要求高的任务不可能立刻得到处理。另外,由于前台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其它任务得不到机会被处理,从而造成整个系统的崩溃。由于这类系统结构简单,几乎不需要RAM/ROM的额外开销,因而在简单的嵌入式应用被广泛使用。 (2)实时操作系统 所谓实时性,就是在确定的时间范围内响应某个事件的特性。而实时系统是指能在确定的时间内执行其功能并对外部的异步事件做出响应的计算机系统。其操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关。“在确定的时间内”是该定义的核心。也就是说,实时系统是对响应时间有严格要求的。 实时系统对逻辑和时序的要求非常严格,如果逻辑和时序出现偏差将会引起严重后果。实时系统有两种类型:软实时系统和硬实时系统。软实时系统仅要求事件响应是实时的,并不要求限定某一任务必须在多长时间内完成;而在硬实时系统中,不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理。通常,大多数实时系统是两者的结合。实时应用软件的设计一般比非实时应用软件的设计困难。实时系统的技术关键是如何保证系统的实时性。实时操作系统可分为可抢占型和不可抢占型两类。 嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。 从某种意义上说,没有操作系统的计算机(裸机)是没有用的。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。 操作系统的实时性在某些领域是至关重要的,比如工业控制、航空航天等领域。想像飞机正在空中飞行,如果嵌入式系统不能及时响应飞行员的控制指令,那么极有可能导致空难事故。有些嵌入式系统应用并不需要绝对的实时性,比如PDA播放音乐,个别音频数据丢失并不影响效果。这可以使用软实时的概念来衡量。

相关主题
文本预览
相关文档 最新文档