当前位置:文档之家› 一个开放源码的嵌入式仿真环境 ― SkyEye

一个开放源码的嵌入式仿真环境 ― SkyEye

一个开放源码的嵌入式仿真环境 ― SkyEye
一个开放源码的嵌入式仿真环境 ― SkyEye

一个开放源码的嵌入式仿真环境― SkyEye

SkyEye 项目开发小组

https://www.doczj.com/doc/9812739950.html,/~skyeye/

I h e a r a n d I f o r g e t,

I s e e a n d I r e m e m b e r,

I d o a n d I u n d e r s t a n d.

摘要:

本文是对开放源码的嵌入式仿真环境SkyEye的综述。首先介绍了SkyEye的背景、目标和存在的意义;接下来对目前SkyEye本身进行了简要的技术分析;然后对SkyEye上已经移植成功的操作系统、典型应用进行了介绍;最后讲述了SkyEye正在开展的工作和将来的发展计划。

一、 SkyEye 的目的与意义

1. SkyEye产生的背景

操作系统是软件产业的基础和龙头,它能左右软件产业发展的方向,是世界软件产业最大的利润来源。对于后PC时代和pervasive computing(普适计算)而言,嵌入式系统将无处不在,其中关键的软件核心技术包括嵌入式操作系统和网络互连中间件等。

所谓嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(要求实时和多任务操作)和应用程序编程。嵌入式操作系统可以广泛应用于 PDA、掌上电脑、手机、信息家电(网络冰箱、机顶盒)等嵌入式设备。

对于一般的嵌入式系统的软件开发和学习,一般不能脱离一个具体的硬件环境。对于想研究嵌入式linux等操作系统和一些底层系统软件(如TCP/IP等)的研究和开发人员,可能存在如下几方面的问题:(1)经常苦于经费不足,缺少足够的硬件开发板和完善的软件开发环境,相关的书籍对一些最新软件的分析还不够全面,无法深入研究和开发嵌入式软件。(2)高层次的软件设计和开发一般不用太考虑底层硬件的实现细节,如果直接处于一个具体的硬件环境下,在开发和研究中可能会陷入硬件的具体细节中不能自拔,而不能把精力放到高层次的软件设计和开发上。(3)如果硬件开发环境不太稳定(这种情况经常见到),且对具体的硬件不是很了解,则可能在排除问题上花费大量的不必要的时间。

对于想了解、学习一般操作系统的实现原理,linux/uclinux操作系统或TCP/IP等系统级软件的实现的人员,目前一般采用的方法是看书和读源代码,这是一种静态的学习方法,但效率较低,比较枯燥,缺少一种动态和亲自实践的感觉。要想深入分析和开发软件,就要动手编程,不能只是看看书,读读代码,只有通过亲手实践才能够掌握软件设计的核心内容。

如何进行动态分析和研究?以相对简单的uC/OS-II 操作系统为例:其作者已经写了一本介绍uC/OS-II 操作系统的书籍,且也有中文版发行。但看完书后,你能够真正掌握uC/OS-II 的实现和操作系统的核心技术吗?我想,可能大部分操作系统的初学者只是知道(不等于了解、掌握)书本上讲的内容,而且书中的例子基于Intel x86, 但x86结构的复杂性进一步限制了大家对一些与硬件相关的uC/OS-II 核心部分(如任务切换、中断处理等)的掌握。如

果能够有一个试验环境,大家能够在这个试验环境中一步一步地看到uC/OS-II是如何执行的,每一行C代码或汇编代码执行的结果是什么,相信对大家全面了解uC/OS-II有很好的帮助。如果大家能够亲自动手,写出一些基于uC/OS-II的应用或者直接修改uC/OS-II代码并成功运行,我想如果到了这一步,大家可以算是真正地掌握uC/OS-II。

上面所指出的问题和需求促使了SkyEye项目的诞生。

2. SkyEye的目标和意义

SkyEye是一个开源软件(opensource software)项目,中文名字是“天目”。SkyEye的目标是在通用的Linux和 Windows平台实现一个仿真集成开发环境,模拟常见的嵌入式计算机系统(目前支持基于arm7tdmi的AT91开发板,带网络仿真功能);可在SkyEye上运行uclinux以及uC/OS-II等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。SkyEye的推出具有下面两方面的意义:

通过SkyEye仿真集成环境可以很方便地进入到嵌入式系统软件学习和开发的广阔天地中。尤其对于缺少嵌入式硬件开发环境和软件开发环境的用户来说,它将是一个非常有效的学习工具和开发手段,因为SkyEye的整个软件系统都是Open Source的,且基于GPL协议(uCOS-II除外)。因此,如果您想学习Liunx操作系统或者进行嵌入式系统开发,但苦于没有硬件支持和money的话,欢迎使用我们的SkyEye仿真环境软件! 如何你想研究与具体硬件无关的系统软件(如TCP/IP协议栈等),采用SkyEye可以有效地提高工作效率,因为你可以直接在uCOS-II和uClinux for SkyEye上进行开发和调试,而与具体硬件打交道的各种driver已经存在,且有源码级调试环境,你只需关心高层的逻辑设计和实现就可以了。

SkyEye本身作为一个开放式的项目体系,可以划分为多个独立的子项目系统。通过参与SkyEye的各个子项目,与大家共同交流、协作,可以帮助您进一步学习、分析、精通Linux内核,掌握ARM嵌入式CPU编程。因此,如果您想成为一个Liunx高手、嵌入式系统专家的话,欢迎加入到我们开发者的行列中来!

在32位嵌入式CPU领域中,ARM系列CPU所占比重相当大,而arm7tdmi是其中最广泛的一个CPU,因此SkyEye首先选择了arm7tdmi作为仿真的目标CPU。目前在SkyEye 上可运行并进行源码级调试uclinux、uC/OS-II操作系统和LwIP(一个著名的嵌入式TCP/IP 实现)等系统软件。SkyEye可用于学习,分析,开发uclinux、uC/OS-II操作系统内核和TCP/IP 实现,了解ARM嵌入式CPU编程。而这一切都可在一个集成环境中完成。如果能够改进SkyEye本身,则大家对ARM,8019 ethernet网络芯片等硬件的了解也会更深入。SkyEye 项目是一个自由软件(Open Source Software)项目,遵循GPL协议。SkyEye可运行在Linux 和Windows平台。它并不能取代开发板等硬件的功能,但通过它可以比较容易进入到嵌入时软件的广阔天地中。由于SkyEye建立在GDB基础之上,使用者可以方便地使用GDB提供的各种调试手段对SkyEye仿真系统上的软件进行源码级的调试,还可以进行各种分析,如执行热点分析、程序执行覆盖度分析等。由于SkyEye提供了源代码和相关文档,有经验的用户完全可以修改和扩充SkyEye来满足自己的需求。

3. 可以在SkyEye上做什么

在SkyEye上可以做什么事情呢?许多人下载了SkyEye和相关在SkyEye上运行的操作系统和应用程序,在自己的计算机上安装并且运行成功。但他们不知道下一步该干什么。其实在SkyEye环境中可以干许多事情:

1.对于嵌入式操作系统的初学者和入门的学生而言,他们可以先看一些有关操作系统和嵌入式操作系统方面的教材和书籍,如与uC/OS、Minix、uClinux、Linux

相关的书籍等。然后可以在SkyEye上开发一些简单的应用程序例子(如进程

间通信、进程优先级、死锁情况,网络应用等),对某些操作系统功能(如进程

调度、内存管理、网络子系统、文件子系统等)进行简单的修改和扩展,并通

过SkyEye进行运行和调试,看看会发生什么情况。

2.对于有一定经验的软件工程师而言,在SkyEye上完成一定的应用系统原型开发是值得一做的事情。比如移植或开发一个文件子系统或网络子系统到一个特

定的操作系统中,相信比在一个真实的开发板上开发要容易一些。在SkyEye

上进行一些操作系统级的移植和开发(如移植RTLinux、RTAI等其它操作系统

到SkyEye上)也是很有挑战性的工作。

3.对于硬件工程师而言,对SkyEye进行扩充,设计新的硬件仿真(如USB、IDE 硬盘等),使得SkyEye的硬件仿真功能更加强大,支持更多功能的软件,是很

有意义的事情。

二、 SkyEye 的技术分析

1. SkyEye总体结构

SkyEye基于GDB /armulator,模仿了一个完整的嵌入式计算机系统-Atmel91X40,目前包括CPU、内存、I/O寄存器、时钟、UART、网络芯片,将来还会有MMU、Cache, LCD、USB等各种硬件。在SkyEye上运行的操作系统和各种系统软件“意识”不到它们是在一个虚拟的计算机系统上运行。

SkyEye从总体上分为四个层次:

用户接口模块:包括命令行用户界面和图形用户界面,即是处理用户的输入命令,并把相关调试数据输出给用户。

符号处理模块:主要处理执行文件的头信息,解释执行文件中内嵌的debuger调试信息,对符号表的管理,对源代码表达式的解析,定位源代码中的语句位置和机器

码的位置关系等。

目标控制模块:主要完成执行控制(如中断程序的执行,设置中断条件等),程序栈结构分析,对具体目标硬件的控制(如本地调试、远程调试和仿真调试的控制)。

目标仿真模块:主要是模仿计算机系统中的主要硬件(包括CPU、内存和各种硬件外设等)的执行,对执行文件的机器指令进行解释,并仿真执行每一条机器指令,产生响应的硬件响应。

2. SkyEye模拟的硬件介绍

目前SkyEye仿真的CPU包括不带MMU的AT91X40和带MMU的ARM720T,它们都是基于由ARM公司提供相关的ARM7TDMI CPU内核。SkyEye还模拟了其它硬件外设,如串口、网络芯片、内存、时钟等。

ARM公司自1990年正式成立以来,一直以IP(Intelligence Property)提供者的身份向各大半导体制造商出售知识产权,而自己不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商的大力支持,在32位嵌入式应用领域获得了很大的成功,目前已经占有75%以上的32位RISC嵌入式产品市场。在低功耗、低成本的嵌入式应用领域确立了市场领导地位。现在设计、生产ARM 芯片的国际大公司已经超过50多家,国内中兴通讯和华为通讯等公司也已经购买ARM公司的技术用于通讯专用芯片的设计。目前非常流行的ARM芯核有ARM7TDMI,StrongARM ARM720T,ARM9TDMI,ARM922T,ARM940T,ARM10等。

ARM RISC architecture

Atmel91X40是美国Atmel公司生产的AT91系列微控制器中的一员,具有ARM7TDMI 核、大容量Flash存储器以及片内SRAM和外围DRAM。这种微控制器的特点是高性能的32位RISC体系结构、高密度的指令集、低功耗以及实时性,扩充的Flash存储器还增加了开发者使用的灵活性。除此以外,大量的内部分组寄存器加速了对异常的处理过程,从而使其更适合于实时控制的应用。8级基于向量的优先级中断控制器和外围数据控制器PDC大大增强了实时器件的性能。此器件适用于开发工业自动化系统、MP3、销售终端、GPS接收机以及无线网络产品等对功耗敏感且要求具有实时性的产品。

3. MMU/Cache 仿真

除了支持仿真不带MMU的ARM7TDMICPU内核和基于ARM7TDMI的Atmel91X40 CPU外,目前SkyEye也支持仿真带MMU的ARM720TCPU。MMU(Memory Management Unit)即存储器管理单元,是用来管理虚拟内存系统的器件。MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表。此表称作TLB(translation lookaside buffers)。(TLB表中保存的是虚址及其对应的物理地址,权限,域和映射类型)。如果没有查到,则进行查找translation table,称为translation table walk(ttw)。经过ttw后将查到的信息保存到TLB。然后根据TLB表项的物理地址进行读写。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。

MMU的两个主要功能是:

①将虚地址转换成物理地址。

②控制存储器存取允许。MMU关掉时,虚地址直接输出到物理地址总线。

MMU/cache的仿真主要是仿真控制MMU/cache的寄存器结构、TLB结构、cache结构、

translation table walk的控制逻辑以及在此基础上内存的读取操作。MMU/cache的仿真主要是依据ARM720T处理器的体系结构进行的,而且MMU/cache的仿真与ARM Linux的移植是分不开的,所以仿真的过程中需要参照ARM Linux和ARM720T对skyeye ARM仿真的部分进行相应的修改。

三、 Skyeye 上已经移植成功的 OS

1. uCLinux

Linux是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,即小的意思,C表示Control,即控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是"针对微控制领域而设计的Linux系统"。uClinux与标准的Linux的一个关键区别是uClinux 只支持不带MMU的CPU,而标准的Linux只支持带MMU的CPU(主要是32位嵌入式MMUless CPU)。为了减少OS的尺寸,uClinux采用了如下做法:1. 删除不需要的内核功能,重新配置内核;2.uClinux的根(root)文件系统采用romfs文件系统;3.uClinux的应用程序库为精简的uClibc,而不是庞大的glibc

UClinux主要针对没有MMU的处理器,即uClinux不能使用处理器的虚拟内存管理技术。uClinux系统对于内存的访问是直接的,(它对地址的访问不需要经过MMU,而是直接送到地址线上输出),所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护(这实际上是很多嵌入式系统的特点),各个进程实际上共享一个运行空间(没有独立的地址转换表)。

uClinux对内存的管理减少同时就给开发人员提出了更高的要求。如果从易用性这一点来说,uClinux的内存管理是一种倒退,退回了到了UNIX早期或是Dos系统时代,开发人员不得不参与系统的内存管理。从内存的访问角度来看,开发人员的权利增大了(开发人员在编程时可以访问任意的地址空间),但与此同时系统的安全性也大为下降。虽然uClinux 的内存管理与标准Linux系统相比功能相差很多,但这是目前嵌入式设备的现状,在嵌入式设备中,由于成本等敏感因素的影响,普偏的采用不带有MMU的处理器,这决定了系统没有足够的硬件支持实现虚拟存储管理技术。

uClinux没有MMU管理存储器,在实现多个进程时(fork调用生成子进程)需要实现数据保护。uClinux的多进程管理通过vfork来实现。这意味着uClinux系统fork调用完程后,要么子进程代替父进程执行(此时父进程已经sleep)直到子进程调用exit退出,要么调用exec执行一个新的进程。uClinux的这种多进程实现机制同它的内存管理紧密相关。uClinux 针对noMMU处理器开发,所以被迫使用一种flat方式的内存管理模式,启动新的应用程序时系统必须为应用程序分配存储空间,并立即把应用程序加载到内存。缺少了MMU的内存重映射机制,uClinux必须在可执行文件加载阶段对可执行文件进行处理,使得程序执行时能够直接使用物理内存。

目前全面分析uClinux的书籍还较少,不过除了上述内存管理和进程管理上与标准的Linux有较大差别外,在其它方面二者基本一致。所以参考目前已有的Linux方面的分析文章对理解uClinux也是很有帮助的。如果要学习Linux设备驱动程序的开发,推荐看《Linux device driver 2》中英文版;如果要深入学习Linux2.4.x的实现,推荐看《Linux内核源代码情景分析》;如果要深入了解UNIX的内部实现机制和相关理论,推荐看《Unix Internal》中英文版;浙江大学也出了不少有关Linux的书籍,建议参考阅读。

2. uC/OS-II

SkyEye 作为一个基于 Atmel 91x40 开发板的仿真环境,在它上面可以移植各种适合于嵌入式开发应用的操作系统。将 uC/OS-II 移植到 SkyEye 上是我们对此做的又一次尝试。uC/OS-II 是一个简单、高效的嵌入式实时操作系统内核。自从1992年以来,已经被应用到各种嵌入式系统中。目前它可以支持 x86、ARM、PowerPC、MIPS 等众多体系结构,并有上百个商业应用实例,其稳定性和可用性是经过实践验证的。同时,它的源代码公开,任何人都可以从https://www.doczj.com/doc/9812739950.html, 的网站上获得全部源码以及其在各种体系结构平台上的移植范例。无论是通过学习 uC/OS-II 来了解实时操作系统的构造,或者是直接使用它来针对具体应用进行开发,都是非常方便和可行的。

最新的 uC/OS-II 的内核已经到了 2.61 版。实际上,2.0 版以上的内核都已经具有可抢占的实时多任务调度功能,另外它还提供了许多系统服务,例如信号量、消息队列、邮箱、内存管理、时间函数等,这些功能可以根据不同的需求进行裁减。可以说,uC/OS-II是一个具备现代操作系统特点的RTOS,同时由于它的结构清晰,注解详尽,使其具有了良好的可扩展性和可移植性。因此,它被广泛地应用于各种架构的微处理器上。

有关于 uC/OS-II 实时操作系统的分析和介绍,可以参考清华大学劭贝贝老师翻译的那本《uC/OS-II -源码公开的实时嵌入式操作系统》。这本书非常详尽的介绍了关于uC/OS-II 的基本概念、内核结构、任务管理、内存管理等重要内容,同时还分析了在 80x86 上的移植范例。

3. ARM Linux

ARM Linux 属于Linux标准发行内核中的一个分支,支持大量带MMU的ARM系列CPU,如ARM720T、Intel StrongARM等。我们移植ARM Linux的目的,一方面是要在Skyeye 上仿真带MMU支持的ARM CPU,目前CPU型号初步定在CPU core为ARM7TDMI,并带MMU支持的ARM720T;另一方面,要让所仿真的环境,可以运行带MMU支持的操作系统,这里我们选择了ARM Linux作为移植对象,并且选择了体系结构为clpx711x的ARM Linux内核,它支持ARM720T,UART串口驱动等,符合Skyeye目前支持的硬件。ARM Linux 的移植,目前主要集中在启动,MMU支持,中断处理(主要是时钟中断),UART,异常处理等方面。有关ARM Linux的更多信息可访问https://www.doczj.com/doc/9812739950.html,/ .

4. 更多的 OS Porting

目前移植在 SkyEye 上的 uC/OS-II 版本为 2.51 版。移植 uC/OS-II 的工作更多的是为了验证 SkyEye 的内部仿真逻辑的正确性。而在SkyEye上的uClinux版本是20020927,在SkyEye上调试uClinux可有效地了解uClinux的实现细节,得到书本上无法得到的知识和经验。

实际上基于 SkyEye 的 OS Porting 的工作可以延续下去,可能你已经自己写过一个简单的基于优先级的任务调度器或者一个相对完整的操作系统内核,那么你都可以基于SkyEye 这个仿真环境在还没有硬件的条件下做前期的验证工作,这样能大大地提高自己开发 OS 的效率和正确性。另一方面,目前已经存在不少优秀的操作系统,如MINIX等,把它们移植到SkyEye上,会大大提高移植人员的实际动手能力和对操作系统的理解能力。

欢迎对嵌入式操作系统感兴趣的人在 SkyEye 上研究、开发并调试各种操作系统。

四、 SkyEye 目前支持的网络协议栈

1. tcp/ip on uCLinux

uCLinux上面有完整的tcp/ip协议栈,但缺少对SkyEye的网络仿真芯片(仿真兼容Ne2k 的8019as)的驱动程序。驱动程序主要包括了初始化,中断处理,接收数据包的处理,发送数据包的处理等工作。驱动程序的具体分析可参考源代码和相关分析文档。

2. lwip on uC/OS-II

μC/OS-II是一个富有开放色彩的RTOS,但是它目前的一些第三方TCP/IP支持都是完全商业化的,很少给出源代码,这影响了μC/OS II的研究和推广。通过把开放源代码的TCP/IP 协议栈LwIP移植到μC/OS-II上来,就获得了一套可免费研究、学习的嵌入式网络软件平台。系统示意图如下图:

LwIP是瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。LwIP的含义是Light Weight(轻型)IP协议。LwIP可以移植到操作系统上,也可以在无操作系统的情况下独立运行。我们目前使用的是LwIP的最新稳定版V0.5.3。

LwIP协议栈在设计时就考虑到了将来的移植问题,因此把所有与硬件、OS、编译器相关的部份独立出来,放在/src/arch目录下。因此LwIP在μC/OS-II上的实现就是修改这个目录下的文件,其它的文件一般不应该修改。主要修改和实现的是以下几部份:与CPU或编译器相关的include文件

与OS相关的一些结构和函数

lib_arch中库函数的实现

网络芯片驱动程序

我们在Skyeye中所仿真的网络芯片是Ne2k,所以目前实现的网络设备驱动是针对Ne2k 的,其它类型的网络芯片驱动可以在LwIP的网站上找到。

做完以上代码移植的工作后,LwIP就可以顺利运行在uC/OS-II下了,在Skyeye中可以从host主机ping通Skyeye上运行的uC/OS-II+LwIP,这说明ARP协议和ICMP协议都运行正常。应用层目前实现了一个tcp echo server,见下文。

3. 更多的TCP/IP 协议栈

uC/OS-II是一个简单的多任务内核,它缺少很多基本的功能如协议栈。但是它的简单也往往成为移植和实验各种协议栈的优点,你不需要考虑太多的问题。它提供的多任务调度、任务间通信、内存管理功能足以实现任何嵌入式TCP/IP协议栈,而又没有linux那样烦琐,所以在uC/OS-II中移植或试验新的协议栈是很方便的。

除了LwIP之外,还有很多开源的嵌入式TCP/IP协议栈,它们各有各的特点,有些功能较全面,有些占用资源出奇地少,能适合不同场合的需要,而且多接触一些不同的思路,对协议和编码能有更好的理解。其中的代表有tinyTCP、ucIP、uIP等,它们的基本思路应该都是一致的,Skyeye小组希望能有更多对TCP/IP协议栈感兴趣的人参与进来,特别是ucIP,它实际上是专门为uC/OS-II设计的,不过我们还没有时间去分析使用它。这些都要留给广大爱好者去做了。

五、 SkyEye 上已经实现的几个简单应用

1. Echo server on lwip

做完LwIP的移植修改工作以后,就可以在μC/OSII中初始化LwIP,并创建TCP或UDP

任务进行测试了。值得注意的是LwIP的初始化必须在μC/OSII完全启动之后也就是在任务中进行,因为它的初始化用到了信号量等OS相关的操作。

LwIP提供了两种API(Application Program's Interfaces,应用程序接口),供用户使用这个协议栈。

第一种是BSD API,这种API非常象BSD标准UNIX中的socket API,所以这样命名。它跟普通的socket api一样是基于open-read-write-close模型的。它提供了一种标准的方法来使用LWIP协议栈。但这种API效率较低,消耗资源较多,因此不推荐使用。

第二种称为RAW API,这种API接口实际上是直接使用了LwIP协议栈中的回调函数(callback functions),从而应用程序和协议栈代码更好地集成在一起,运行在同一个线程即任务中。RAW API相对于普通BSD API来说,速度更快,消耗内存更少,唯一的缺点是编程复杂,对程序员的要求高,考虑到我们是在嵌入式设备中工作,这样的缺点是可以接受的。事实上,BSD API就是用RAW API来实现的。

利用Berkley API实现的tcpecho_thread是一个TCP echo服务器,监听7号端口,这实际上是实现了RFC中最简单的echo协议:收到什么,就往回发同样的内容。编译运行后,用ping ip地址命令可以得到ICMP reply响应。用telnet ip地址7(登录7号端口)命令可以看到echo server的回显效果。说明ARP、ICMP、IP、TCP协议都已正确运行。

2. Genie-shell for uC/OS-II

uC/OS-II只提供了操作系统内核,用户要自己添加文件处理、人机界面、网络接口等重要部分。其中Shell(人机界面)提供了人与机器交互的界面,是系统必不可少的重要组成部分,大部分人认识OS都是从这里开始的。

由于Skyeye下的仿真串口USART已经实现了中断方式的接收(实际是从键盘接收输入),而且串口输出(实际上是输出到终端屏幕)也已经实现,所以实现一个类似DOS或Bash的简化版Shell并不困难。其本质思想就是:Shell作为一个uC/OS-II下的任务,工作于内核之外,占用一个任务号。它接收用户输入的字符,存储到缓冲区,并回显在屏幕上,以回车键为用户输入的结束信号,随后解析用户输入的命令名称、参数,调用相应的命令函数。一直到这个命令函数运行返回,才继续Shell的人机交互界面。其流程图如下:

我们目前在uC/OS-II下实现的Shell起名为Genie Shell,非常简单,只实现了最基本的命令输入、解析参数、调用命令函数功能,以及两条示例性的命令。这个Shell的特色是采

用了一些面向对象的思路来实现Shell的各种命令。Genie Shell 把每个命令看成一个对象,对象的属性是命令名,而对象的方法就是命令的执行函数本身。用户输入命令及参数后,将参数传递给对象的方法并执行。在shell中增加一条命令,就是增加一个对象,并实现这个对象的方法。在c语言中实际是一个带函数指针的结构体。

3. Applications on uClinux

uClinux-dist-20020816和uClinux-dist-20020927已经可以在SkyEye上运行。目前已经在uClinux上成功地执行了shell、ping、ifconfig、telnet客户端(没有对应用程序进行任何修改)等应用程序,其它的应用还没有测试,相信网络方面的应用程序执行没有问题。

六、 SkyEye 正在开展的工作计划

1. LCD仿真

作为单片机系统重要的输出设备,LCD屏幕用的非常广泛。因此我们觉得有必要为Skyeye加入LCD控制器设备仿真,并使用GTK+图形函数库在Xwindow中模拟出一个LCD 屏幕,这样Skyeye上运行的OS中,LCD驱动程序象驱动真正的LCD控制器一样发送控制命令,而Skyeye解释这些控制命令,并相应地在GTK+绘出的窗口中画不同灰度或颜色的点。这里对GTK+的使用仅限于绘制窗口和画点,因为这是LCD屏幕的最基本动作,其它所有的工作如画图,GUI的实现都应该由应用程序利用画点的功能去实现,与Skyeye本身无关。

LCD的buffer ram是映射到内存ram中的,LCD屏幕的每个点对应了内存中的一位或几位,各个点所对应的内存按行序连续存放。LCD上显示什么内容,完全由这块内存决定。LCD控制器会根据这块内存去刷新屏幕显示,刷新频率等参数要根据具体使用的LCD屏幕来决定。OS中的LCD驱动程序要往LCD屏幕上写东西,就是写这块内存。

Skyeye,LCD仿真部份的示意图如下(包括与真实情况的比较):

2. IDE 集成开发环境

IDE集成开发环境是SkyEye的一个重要组成部分。由于SkyEye的用户接口是基于GDB 的,所有支持GDB的IDE集成开发环境都可以很容易地移植为SkyEye的IDE集成开发环境。目前的Windows版本借鉴Dev-Cpp的源代码,使用Delphi编写(这样便于以后移植到Kylix中),主要与cygwin版本的skyeye进行通讯,以进行方便的、可视化的调试。目前的Linux版本是修改过的DDD,以后可能使用Windows版本的移植。将来可能会采用功能强

大,可扩展性强的Eclipse集成开发环境作为SkyEye的IDE集成开发环境。

3. 更多的参与和支持

开发小组的主要联系和讨论方式是maillist、jabber IRC及时讨论、和SkyEye主页上的

留言版。采用小组分散式开发方式和sourceforge提供的开发环境,一般一个小组从(1到

5人不等,由小组长负责),用CVS实现版本管理,强调分析和设计文档的写作工作。

SkyEye的开发工作还很多,主要集中在SkyEye仿真环境的开发和基于SkyEye仿真环

境的上层系统软件的开发。目前已经规划的子项目有:

项目起始时间进展度成员(*表示需要人手) 迫切度

实现初始版 SkyEye on

2002-12 100% 陈渝*****

Cygwin/window & linux

2003-02 100% 李明*****

设计实现uoosii for

SkyEye软件结构框架

分析实现ucosii for

2002-12 100% 陈渝、李明*****

Skyeye

2002-01 100% 李明*****

设计实现 ucosii for

SkyEye的I/O功能

分析实现 LwIP for

2003-01 100% 杨晔、李明、陈渝*****

ucosii for SkyEye

设计实现 SkyEye的网

2003-01 100%杨晔、陈渝*****

络仿真

2003-02 100% 杨晔*****

设计实现shell for ucosii

on SkyEye

2003-02 100% 杨晔*****

设计实现 uart ISR for

ucosii on SkyEye

2002-12 90% 尹首一 ***** 分析redboot/armboot对

AT91EV40的支持

2003-02 85 尹首一 ***** uClinux2.4.x on 开发板

AT91EV40

分析GDB5.0 for

2002-12 85%陈渝、杨晔、王利明 *****

armulator对AT91EV40

的支持

2002-12 70% 陈渝、尹首一 *****

分析uclinux2.4.x对

GDB5.0 for armulator的

支持

分析uclinux2.4.x对

2002-12 70% 陈渝、尹首一 *****

AT91EV40的支持

2002-12 50% 陈渝、杨晔、王利明* *****

分析基于GDB5.0 for

armulator的结构

设计实现 uclinux net

2003-02 50% 陈渝、尹首一* *****

driver for SkyEye

2003-01 50% 王宇轩、韩怡昕* *****

分析和调试DEV-C++源

代码

实现MMU模拟模块for SkyEye 2003-03 90% 王利民宋振宇楼克刚

*

*****

实现 SkyEye支持仿真Linux 2003-03 90% 王利民宋振宇楼克刚

*

*****

实现LCD模拟模块for

SkyEye

2003-03 10% 杨晔、康烁、赵俊良* *****

实现DEV-C++对SkyEye

的支持

2003-03 10% 王宇轩* *****

在Cygwin/windows上实现SkyEye的网络仿真功能N/A 0% N/A

* N/A

分析和调试Eclipse源代码N/A 0% N/A

* N/A

设计实现文件子系统for ucosii on SkyEye N/A 0% N/A

* N/A

设计实现图形子系统for ucosii on SkyEye N/A 0% N/A

* N/A

设计实现各种应用 for ucosii on SkyEye N/A 0% N/A

* N/A

分析RTAI对uclinux2.4.x 的支持(68knoMMU)N/A 0% N/A

* N/A

在SkyEye上安装并运行uclinux2.5.x N/A 0% N/A

* N/A

在SkyEye上实现armnoMMU

RTAI+uclinux2.5.x N/A 0% N/A

* N/A

欢迎感兴趣,有热情和有一定空闲时间的朋友积极参加。请与项目负责人陈渝联系,mailto: chenyu-tmlinux@https://www.doczj.com/doc/9812739950.html,

SkyEye 项目开发小组

2003-3-14

嵌入式系统软件嵌入式系统软件

嵌入式系统软件 杨剑锋 1. 嵌入式操作系统 嵌入式操作系统是个集合,而且是个无限集合 –监控程序?常规操作系统 (红外线?紫外线) –一维和多维 嵌入式操作系统常常有实时要求–早期:嵌入式操作系统= 实时操作系统 –近期: ?1)手持计算机和掌上计算机的出现; ?2)CPU速度的提高; ?3)常规操作系统增加实时进程调度的支持,如 POSIX.4 ?嵌入式操作系统<>实时操作系统 许多嵌入式操作系统的内核是微内核结构 许多嵌入式操作系统都不带磁盘 –根本不支持文件系统 –结构上为了设备驱动而支持文件系统,但不 支持文件系统的文件存储功能 许多嵌入式操作系统不采用存储管理技术,即不支持虚拟存储技术 许多嵌入式操作系统不划分“系统空间”和“用户空间” –操作系统的“内核”与外围应用程序之间不再 有物理的边界; –系统中所谓“进程”实际上全都是内核线程?静态连接、系统调用、进程调度/切换–对任何一个应用程序做细微的修改,都得重新生成整个系统,并且“下载”之; –系统调用的界面太庞大; –共享变量的访问,需要谨慎对待; –把通用操作系统上的应用移植过来需考虑“可重入”的问题;

不分系统空间和用户空间<>必须静态连接–如DOS、CP/M的INT21 不分系统空间和用户空间<>不能用页面映射技术 –但只用于不同进程之间,而非不同空间之间 即使采用了存储管理,基本上都不采用页面交换技术 重启动技术(watch dog) 2. RTOS 是否实时 –一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题; –另一方面同时也是反映的速度在多大的程度上得到保证的问题 中断延迟(Interrupt Latency)–中断不可嵌套 –LINUX的Bottom Half –中断可嵌套:优先级中断 ?大多微处理器不支持; ?LINUX不支持; ?UNIX支持 –与指令集有关 –DMA操作有关 –保证系统调用的原子性有关 调度延迟(Scheduling Latency)–中断处理程序进程处理 –一般调度算法(Round Robin)不能及时选 中 –基于优先级调度算法,一般能及时选中?如果目标进程优先级低呢? –可剥夺调度和不可剥夺调度 ?LINUX是属于什么调度? ????????????→ 事件或软中断 Linux 既不是完全的可剥夺,也不是完全的不可剥夺 上下文切换延迟(Context Switch Latency)–大小取决于CPU和操作系统 –采用MMU > 不采用MMU 只要发生调度,就能选中目标进程吗? –根据时间片的耗用调整优先级 –拉开距离,分等级 对实时进程而言,“应该没有问题”不够。 是否可以不用中断、也不用调度,回到 最简单的“监控程序”?

嵌入式实时操作系统

嵌入式实时操作系统 嵌入式实时操作系统(Embedded Real-time Operation System,RTOS)。 1 嵌入式实时操作系统概念 当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。 2 嵌入式实时操作系统特点 1)多任务; 2)有线程优先级 3)多种中断级别 3 嵌入式实时操作系统应用 在工业控制、军事设备、航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。 采用嵌入式实时操作系统(简称RTOS)能够支持多任务,使得程序开发更加容易,便于维护,同时能够提高系统的稳定性和可靠性。

4 实时操作系统的必要性: 首先,嵌入式实时操作系统提高了系统的可靠性。 其次,提高了开发效率,缩短了开发周期。 实时操作系统的优缺点: 在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。但是,使用嵌入式实时操作系统还需要额外的ROM/RAM 开销,2~5% 的CPU 额外负荷,以及内核的费用。 5 实时系统与非实时系统的根本区别 实时系统与非实时系统的根本区别在于:实时系统具有与外部环境及时交互作用的能力。也就是说实时系统从外部获取信息以及系统得出结论要在很短的限制时间内完成。 它具有嵌入式软件共有的可裁剪、低资源占用、低功耗等特点;实时任务之间可能还会有一些复杂的关联和同步关系,如执行顺序限制、共享资源的互斥访问要求等。 实时操作系统所遵循的最重要的设计原则是:采用各种算法和策略,始终保证系统行为的可预测性(predictability)。可预测性是指在系统运行的任何时刻,在任何情况下,实时操作系统的资源调配策略都能为争夺资源(包括CPU、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。与通用操作系统不同,实时操作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求,也就是说,实时操作系统注重的是个体表现。

嵌入式系统仿真测试平台的体系结构研究

!"##!年第$期 福建电脑注:本文得到广东省科技厅攻关项目资金资助%项目编号"##"&’(&)电子科技大学青年基金项目资助%项目编号*+#"#,#-。 &、 引言目前嵌入式系统开发已经成为了计算机工业最热门的领域之一,嵌入式系统应用渗透到信息家电、工业控制、通信与电子设备、人工智能设备等诸多领域。然而嵌入式系统的软件与目标硬件紧密相关,软件开发周期长,开发成本昂贵,软件质量无法保障.&/."/。特别是嵌入式软件的测试工作,在整个开发周期中通 常占用着大部分时间 (-#01,#0)。软件测试是一个非常重要而又艰苦的过程。软件测试工具用来全部或部分的代替人工进行软件的测试工作。它能极大的节省人力、物力和财力,缩短项目的开发周期。 国际上,许多软件公司致力于开发功能强大的软件测试工具。按获得测试信息的方式分为纯硬件、纯软件、软硬件相结合三种类型的测试工具。纯硬件测试工具如仿真器、逻辑分析仪、开发系统等。纯软件测试工具如234563786的2345938:,是一种软件逻辑分析仪。软硬件相结合的测试工具如以;<公司的=>?938:为代表的虚拟仪器和以@AB 公司的BC58DEFD 为代表的测试工具。这三类测试工具都有一个缺点:没有提供一个集成各种软硬件测试工具的框架,使各类测试工具能紧密协调工作。 为提高测试工作的效率,迫切需要功能强大的嵌入式系统测试工具。 仿真开发在嵌入式系统开发中正在发挥着越来越重要的作用。许多软件公司已经开发出成熟稳定的嵌入式仿真开发工具。但是在嵌入式仿真开发中,仍然缺乏一种嵌入式系统测试工具的集成框架。本文正是基于这个目标,从软件体系结构的角度,研究和设计了一种称为G EFDH G 的嵌入式系统仿真测试平台的集成框架。并基于其上实现了一个嵌入式仿真测试平台3I >EFDH 。 "、 嵌入式系统仿真测试平台的体系结构EFDH 对于大规模复杂软件系统,其总体结构设计远比算法和数据结构的选择更重要.J /.!/。基于这样的认识和背景,本文在对嵌入式测试和嵌入式仿真开发深入研究的基础上,研究和设计了EFDH 的体系结构。"K &EFDH 的结构模型 EFDH 的体系结构主要借鉴了当前流行的嵌入式交叉开发工具的目标服务器L 目标代理结构.’/,分为宿主机端和仿真目标机端两大部分。 EFDH 的结构模型见图&: 图&EFDH 结构模型 EFDH 结构模型的基本特征:&M EFDH 由宿主机端和目标机端两大部分构成,宿主机 端以测试服务器DF (D8NO F86786)为核心;目标机端以测试代理D@P D8NO @Q84O M 为核心。 "M 所有的测试工具不与目标机端交互, 而只与测试服务器DF 进行交互;测试服务器DF 同测试代理D@交互。这样只要更换相应的测试代理D@,即可与不同的仿真开发系统一起工作。 J M 测试服务器DF 与所有测试工具之间通过嵌入式仿真测试工具交换协议EFDDR (ES?85585F3STU>O3C4D8NO DCCU 8RI VW>4Q8X6COCVCU ) 规范接口进行交互。!M 测试服务器DF 和测试代理D@之间通过嵌入式仿真测试协议EFD P ES?85585F3STU>O3C4D8NO X6COCVCU M 规范接口进行交互。 ’M 测试工具以软插件的形式集成到EFDH 中%EFDDR 和EFD 规范定义的接口是公开的和可免费获得的,第三方测试工具非常容易的集成到EFDH 中来。 -M 测试工具多种多样,可以是软件代码测试工具,也可以是硬件诊断测试工具,都可以很容易的集成到EFDH 中来,从而达到各类测试工具的紧密协作。 $M EFDH 中各类测试工具紧密集成到一个图形用户接口中,大大提高了用户的工作效率。 ,M 测试代理D@以一个线程的形式存在于仿真运行环境中,与各类模拟器之间通过固定的接口交互,获取丰富的测试信息。 "K "测试服务器DF 模型 测试服务器DF 是EFDH 的核心结构部件,作为EFDH 的测试管理器,其结构模型如图"。 图"测试服务器DF 结构模型 DF 的主要功能:&M DF 提供相应的EFDDR 协议规范接口,接受来自测试工具的控制命令和状态查询,并提供相应的数据传输接口,向测试工具返回对应的测试结果。 "M DF 提供相应的EFD 协议规范接口,向采集代理发送控制命令信息和状态查询信息,并且根据EFD 协议规范提供的接口收取返回信息。 J M DF 提供测试高速缓冲管理、 测试存储器管理以及流测试协议,管理和控制整个宿主机端。"K J 测试代理D@模型 嵌入式系统仿真测试平台的体系结构研究 邵荣防,罗克露 P 电子科技大学计算机科学与工程学院,四川 成都-&##’!M 【摘要】仿真开发在嵌入式开发中正逐步成为热点,仿真测试工具在仿真开发过程中正发挥着日益重要的作用。本文首先简要分析了当前的嵌入式测试工具,然后给出一种嵌入式仿真测试平台的体系结构EFDH 。基于EFDH 体系结构,实现了一个面向信息家电的嵌入式仿真测试平台3>EFDH 。 【关键词】嵌入式系统仿真开发 仿真测试平台

嵌入式系统实验报告

郑州航空工业管理学院 嵌入式系统实验报告 (修订版) 20 – 20第学期 赵成,张克新 院系: 姓名: 专业: 学号: 电子通信工程系 2014年3月制

实验一ARM体系结构与编程方法 一、实验目的 了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。 二、实验内容 1.ADS1.2 IDE的安装、环境配置及工程项目的建立; 2.ARM汇编语言程序设计(参考附录A): (1)两个寄存器值相加; (2)LDR、STR指令操作; (3)使用多寄存器传送指令进行数据复制; (4)使用查表法实现程序跳转; (5)使用BX指令切换处理器状态; (6)微处理器工作模式切换; 三、预备知识 了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。 四、实验设备 1. 硬件环境配置 计算机:Intel(R) Pentium(R) 及以上; 内存:1GB及以上; 实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器; 2. 软件环境配置 操作系统:Microsoft Windows XP Professional Service Pack 2; 集成开发环境:ARM Developer Suite (ADS) 1.2。 五、实验分析 1.安装的ADS1.2 IDE中包括和两个软件组件。在ADS1.2中建立类型的工程,工程目标配置为;接着,还需要对工程进行、及链接器设置;最后,配置仿真环境为仿真方式。 2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。 ; 文件名:

单片机系统设计与仿真软件

(此文档为word格式,下载后您可任意编辑修改!) PROTEUS —单片机系统设计与仿真软件 一、Proteus 6.7 Professional 界面简介 安装完Proteus后,运行ISIS 6.7 Professional,会出现以下窗口界面: 为了方便介绍,分别对窗口内各部分进行中文说明(见上图)。下面简单 介绍各部分的功能: 1.原理图编辑窗口(The Editing Window ):顾名思义,它是用来绘制原理图的。蓝色方框内为可编辑区,元件要放到它里面。注意,这个窗口是没有滚动条的,你可用预览窗口来改变原理图的可视范围。 2.预览窗口(The Overview Window ):它可显示两个内容,一个是:当你 在元件列表中选择一个元件时,它会显示该元件的预览图;另一个是,当你的鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口

中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色 的方框里面的内容就是当前原理图窗口中显示的内容,因此,你可用鼠标在它上面点击来改变绿色的方框的位置,从而改变原理图的可视范围。 3.模型选择工具栏( Mode Selector Toolbar ):主要模型( Main Modes ): 1*选择元件(components)(默认选择的) 2* 放置连接点 3* 放置标签(用总线时会用到) 4* 放置文本 5* 用于绘制总线 6* 用于放置子电路 7* 用于即时编辑元件参数 (先单击该图标再单击要修改的元件) 配件( Gadgets): 1*终端接口( terminals):有VCC、地、输出、输入等接口 2* 器件引脚:用于绘制各种引脚 3* 仿真图表( gra ph ) :用于各种分析,如Noise Analysis 4* 录音机 5* 信号发生器( generators) 6* 电压探针:使用仿真图表时要用到 7* 电流探针:使用仿真图表时要用到 8* 虚拟仪表:有示波器等 2D 图形( 2D Graphics): 1* 画各种直线 2* 画各种方框 3* 画各种圆 4* 画各种圆弧 5* 画各种多边形 6* 画各种文本 7* 画符号 8* 画原点等 4.元件列表( The Object Selector ):用于挑选元件( components)、终端接口 ( terminals)、信号发生器 (generators)、仿真图表(graph)等。举例,当你选择"元件 (components)”,单击"P”按钮会打开挑选元件对话框,选择了一个元件后(单击了“ OK ”后),该元件会在元件列表中显示,以后要用到该元件时,只需在元件列表中选择即可。 5.方向工具栏( Orientation Toolbar ):旋转:旋转角度只能是90 的整数倍。 翻转:完成水平翻转和垂直翻转。使用方法:先右键单击元件,再点击(左击)相应的旋

单片机系统设计与仿真软件

(此文档为word格式,下载后您可任意编辑修改!) PROTEUS —单片机系统设计与仿真软件 一、Proteus 6.7 Professional 界面简介 安装完Proteus 后,运行ISIS 6.7 Professional,会出现以下窗口界面: 为了方便介绍,分别对窗口内各部分进行中文说明(见上图)。下面简单 介绍各部分的功能: 1.原理图编辑窗口(The Editing Window):顾名思义,它是用来绘制原理 图的。蓝色方框内为可编辑区,元件要放到它里面。注意,这个窗口是没有滚动条的,你可用预览窗口来改变原理图的可视范围。 2.预览窗口(The Overview Window):它可显示两个内容,一个是:当你 在元件列表中选择一个元件时,它会显示该元件的预览图;另一个是,当你的鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色

的方框里面的内容就是当前原理图窗口中显示的内容,因此,你可用鼠标在它上面点击来改变绿色的方框的位置,从而改变原理图的可视范围。 3.模型选择工具栏(Mode Selector Toolbar): 主要模型(Main Modes): 1* 选择元件(components)(默认选择的) 2* 放置连接点 3* 放置标签(用总线时会用到) 4* 放置文本 5* 用于绘制总线 6* 用于放置子电路 7* 用于即时编辑元件参数(先单击该图标再单击要修改的元件) 配件(Gadgets): 1* 终端接口(terminals):有VCC、地、输出、输入等接口 2* 器件引脚:用于绘制各种引脚 3* 仿真图表(graph):用于各种分析,如Noise Analysis 4* 录音机 5* 信号发生器(generators) 6* 电压探针:使用仿真图表时要用到 7* 电流探针:使用仿真图表时要用到 8* 虚拟仪表:有示波器等 2D图形(2D Graphics): 1* 画各种直线 2* 画各种方框 3* 画各种圆 4* 画各种圆弧 5* 画各种多边形 6* 画各种文本 7* 画符号 8* 画原点等 4.元件列表(The Object Selector): 用于挑选元件(components)、终端接口(terminals)、信号发生器(generators)、仿真图表(graph)等。举例,当你选择“元件(components)”,单击“P”按钮会打开挑选元件对话框,选择了一个元 件后(单击了“OK”后),该元件会在元件列表中显示,以后要用到该 元件时,只需在元件列表中选择即可。 5.方向工具栏(Orientation Toolbar):

嵌入式控制系统平时作业

1、什么是嵌入式系统? 答:嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会(U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。 2、举例说明嵌入式的应用。 答: 工业控制 基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8、16、32 位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是8位单片机。但是随着技术的发展,32位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。 交通管理 在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用。目前GPS设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。

信息家电 这将称为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。 家庭智能管理 水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。 POS网络 公共交通无接触智能卡(Contactless Smartcard, CSC)发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。 环境工程 水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。 3、嵌入式操作系统的作用是什么? 答:嵌入式操作系统的主要好处就是屏蔽了底层硬件的差别,给上层应用提供统一的接口,并管理进程调度和资源(如CPU时间、内存)分配等。就跟windows操作系统一样,不管你是用华硕的电脑还是戴尔的电脑,只要装了windows操作系统,你都可以用office、词霸之类的软件。人机界面(MMI)是上层应用show出来的。 简单的嵌入式应用不需要嵌入式操作系统的支持,如单片机,直接用汇编程序就能实现特定的功能。要跑的应用多了,就需要操作系统来进行管理。

常见的四种嵌入式操作系统

(一)VxWorks VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是Tornado嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌人式实时操作系统领域逐渐占据一席之地。 VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持POSIX 1003.1b实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议等。 然而其价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。 (二)Windows CE Windows CE与Windows系列有较好的兼容性,无疑是Windows CE推广的一大优势。其中WinCE3.0是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式操作系统。为建立针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,它能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有一定限制的设备。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。操作系统的基本内核需要至少200KB的ROM。由于嵌入式产品的体积、成本等方面有较严格的要求,所以处理器部分占用空间应尽可能的小。系统的可用内存和外存数量也要受限制,而嵌入式操作系统就运行在有限的内存(一般在ROM或快闪存储器)中,因此就对操作系统的规模、效率等提出了较高的要求。从技术角度上讲,Windows CE作为嵌入式操作系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗方面的表现并不出色,而且和Windows一样占用过的系统内存,运用程序庞大;版权许可费也是厂商不得不考虑的因素。 (三)嵌入式Linux 这是嵌入式操作系统的一个新成员,其最大的特点是源代码公开并且遵循GPL协议,在近一年多以来成为研究热点,据IDG预测嵌入式Linux将占未来两年的嵌入式操作系统份额的50%。 由于其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。遵从GPL,无须为每例应用交纳许可证费。有大量的应用软件可用。其中大部分都遵从GPL,是开放源代

Proteus与单片机实时动态仿真

0.引言 Proteus 是由英国Labcenter electronics 公司开发的EDA 工具软件。它从1989 年出现到现在已经有十多年的历史,在全球广泛使用。Proteus 安装以后,主要由两个程序组成:Ares和Isis。前者主要用于PCB 自动或人工布线及其电路仿真,后者主要采用原理布图的方法绘制电路并进行相应的仿真。除了上述基本应用之外,Proteus 革命性的功能在于它的电路仿真是互动的,针对微处理器的应用,可以直接在基于原理图的虚拟原型上编程,并实现软件代码级的调试,还可以直接实时动态地模拟按钮、键盘的输入,LED、液晶显示的输出,同时配合虚拟工具如示波器、逻辑分析仪等进行相应的测量和观测。 Proteus 软件的应用范围十分广泛,涉及PCB 制版、spice 电路仿真、单片机仿真,在最新的6.9 版本中又加入了对ARM7/LPC2000 的仿真。本文主要以单片机的仿真为例,使大家初步了解该软件的强大功能及其在工程实践和实验教学中的重要作用。 1.Proteus 仿真功能简介 作为一款EDA 仿真软件,Proteus 与同类软件有着很多的相似之处。相比之下,其主要的特点有两个:一是对动态元件的实时仿真,它对“人机对话”的模拟增强了系统的真实性;二是虚拟工具箱的功能,它能与仿真同时进行,测量方便而准确。下面着重介绍一下该软件的这两个突出特点。 1.1.实时动态仿真 与多数仿真软件相似,Proteus 有着数量庞大的元件库。Labcenter 公司与相关的第三方软件阵容共同开发了6000 多个模拟和数字电路中常用的spice 模型以及各种动态元件,基本元件如电阻、电容、各种二极管、三极管、MOS 管、555 定时器等;74 系列TTL 元件和4000 系列CMOS 元件;存储芯片包括各种常用的ROM, RAM,EEPROM, 还有常见I2C 器件等。在丰富的库元件的支持下,原理布图时只要进行相应的调用和连线,通过对每个元件的属性设置完成绘图,然后即可进行仿真和虚拟测量。关于原理图的具体绘制方法不是本文讨论的重点,请参考软件提供的帮助教程。 与Multisim 等仿真软件的一大不同,在于Proteus 支持微处理器的仿真。这些仿真的实现是基于Labcenter 公司提出的VSM 的概念。 VSM,Virtual System Modelling,直接译作“虚拟系统模型”,官方的定义是:将spice电路模型、动态外设以及微处理器的仿真结合起来,在物理原型调试之前用于仿真整个单片机系统的一种设计方法[1]。对动态外设的支持是Proteus在区别于其他等仿真软件最直接的地方。VSM为用户提供了一个实时交互的环境,在仿真的过程中,你可以用鼠标去点击开关和按钮,微处理器根据输入的信号做出相应的中断响应,同时输出运算的结果到显示终端。整个过程与真实的硬件调是极其相似的,在动态外设支持下的实时输入和输出为实验者呈现了一个最接近现实的调试环境。官方资料显示,一个300 MHz Pentium II CPU可以以12MHz的时钟频率仿真一个基本的8051 系统。

嵌入式实验报告

《嵌入式系统导论》实验报告 学院: 学号: 姓名: 上海工程技术大学 电子电气工程学院

实验一GPIO(按键与LED)实验 一、实验要求 1 、掌握基于STM32F103微控制器得嵌入式系统、仿真器与开发用PC机之间得连接方法,能够搭建基于STM32F103微控制器得嵌入式系统交叉开发环境。 2、熟悉常用得嵌入式开发工具KEILMDK或IAR EW ARM得操作环境与基本功能(包括编辑、编译、链接、调试与下载等),学会创建、配置与管理STM32工程,掌握嵌入式程序得基本调试方法,学会使用逻辑分析仪窗口与外设窗口等信息窗口调试嵌入式程序。3、理解LED与按键得构件原理,学会设计它们与微控制器间得接口电路 4 、掌握STM32F103微控制器GPIO得工作原理,熟悉STM32得GPIO库函数 5 、学会使用STM32得GPIO库函数在KEIL MDK或IAR EW ARM下开发基于LED与按键得简单嵌入式应用程序 二、实验环境 1、硬件: ALIENTEK STM32F103嵌入式开发板 2 、软件: KEIL MDK或IAR EWARM 三、实验内容 1、流水灯实验一: 在KEIL MDK或IAR EWARM中建立STM32工程,并使用GPIO库函数与延时循环设计基于无限循环架构得嵌入式应用程序,使开发板上得红色LED以一定周期闪烁。 采用软件仿真得方式调试程序,通过“Logic Analyzer”,观察程序模拟运行时连接红色LED得引脚PA8上得输出波形。 采用硬件下载得方式调试程序,观察程序下载硬件运行时红色LED得闪烁情况。 2、按键控制LED实验: 在KEIL MDK或IAR EWARM 中建立STM32工程,并使用GPIO库函数设计基于无限循环架构得嵌入式应用程序,实现以下功能:当按键KEY0按下时,目标板上红色LED点亮;当按键KEY0释放时,目标板上红色LED熄灭。 采用软件仿真得方式调试程序,通过“Logic Analyzer”与“Peripherals→GPIO C”,观察程序模拟运行时连接红色LED得引脚PA8与连接按键KEY0得PC5上得输出波形。 采用硬件下载得方式调试程序,观察程序下载硬件运行时按键KEY0按下与释放时红色LED得点亮与熄灭情况。 四、硬件设计 1、发光二极管(红色LED)、按键(KEY0)与嵌入式微控制器(STM32F103)得接口电路

Matlab/RTW实时仿真与嵌入式系统开发

Matlab/RTW实时仿真与嵌入式系统开发 引言在日益激烈的竞争中,系统的开发周期显得尤为重要,但开发时间 与系统安全性、可靠性又有一定冲突,如果仍然使用传统的编写代码的模式, 显然有些不妥。本文介绍一种基于Matlab/RTW 实现实时仿真与嵌入式系统 开发的方法。方法所涉及的开发环境如下:◆Microsoft Windows XP SP3:◆Matlab Version 7.5.0.342(R2007b);◆Keil uVersion2V 2.30;◆Proteus 7.1SP2。先借助Matlab/RTW 建立模型并生成RTW(Real-Time Workshop) 代码(C 语言),再使用Keil 编译、调试Matlab 生成的C 语言代码,并且生成HEX 文件。之后,利用Proteus 观察代码生成的效果,以验证代码的正确性。 基本流程如图1 所示。 1 构建Simulink 模型并生成RTW 代码以较为简单的模型为例,用 2 个开关 同时控制一个报警灯模型。当开关1、2 同时闭合时,报警灯亮,逻辑真值表 如表1 所列。在Simulink 中构建对应模型,只有当开关1、2 同时闭合时,报 警灯才亮,故选择如下模型实现上述功能。模型连接如图2 所示。 模型连接好之后,打开参数配置选项卡调整参数。具体修改项及其对应值 如表2 所列。 至此生成模型代码的前期准备已经完成,保存模型,取名Matlab_Test。下 一步就是点击Real_Time Work-shop 选项中的Build 按钮,Matlab 将自动生成模型代码。tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

模型驱动的嵌入式仿真系统设计

—237— 模型驱动的嵌入式仿真系统设计 李秀萍,董云卫 (西北工业大学计算机学院,西安710072) 摘 要:为解决嵌入式系统仿真应用需求多样性的问题并提高系统的开发效率,设计一种通用嵌入式仿真系统。该系统在Matlab/Simulink 开发环境的基础上,采用模型驱动的方法设计仿真模型并构建仿真组件库,实现了仿真系统模型的快速建立。同时设计了多接口、可扩展的仿真器硬件结构,解决了嵌入式系统接口的多样性问题。该仿真系统具有良好的可重用性和可移植性等特点,可用于多种嵌入式软件的开发,具有现实意义。 关键词:仿真系统;模型驱动架构;仿真模型;组件库 Design of Model-Driven Embedded Simulation System LI Xiu-ping, DONG Yun-wei (College of Computer, Northwestern Polytechnical University, Xi’an 710072) 【Abstract 】In order to solve the problem of diverse simulation application and improve the efficiency of development, a general simulation system for embedded software is designed, which adopts Model-Driven Architecture(MDA) development to construct simulation model for embedded system simulation based on the Matlab/Simulink. A simulation component library is built to achieve rapid establishment of the simulation system model. Extensible hardware of simulator is designed to fit variable I/O interfaces of the embedded system. The system has some strong advantages,such as reusability, portability, and can be used in the development of various embedded software. 【Key words 】simulation system; Model-Driven Architecture(MDA); simulation model; component library 计 算 机 工 程Computer Engineering 第36卷 第16期 Vol.36 No.16 2010年8月 August 2010 ·工程应用技术与实现·文章编号:1000—3428(2010)16—0237—03 文献标识码:A 中图分类号:TP391.9 1 概述 嵌入式系统是面向具体应用领域的特定软硬件的紧密结合体。因此,嵌入式软件对特定嵌入式硬件具有较强的依赖性。在嵌入式软件开发前期,由于真实的目标环境还没建立,因此必须向开发人员提供与目标硬件相似的仿真环境,使嵌入式软件能够尽早得到较真实的运行确认[1],以提高嵌入式系统的开发效率、缩短开发周期、减少开发成本。 仿真平台是嵌入式系统开发的重要支持工具,在嵌入式系统开发的很多领域得到广泛应用,但也出现了一些问题:(1)用户应用需求的多样性要求仿真平台具有可配置、可定制的能力;(2)由于开发时间越短越好,因此要求能够在现有仿真硬件的基础上快速地开发出一套仿真软件。为解决上述问题,本文运用模型驱动架构(Model-Driven Architecture, MDA)的思想并基于Matlab/Simulink 开发平台,设计了通用的嵌入式仿真系统。该系统由硬件和软件2个部分组成,硬件提供了多种I/O 接口,实现了平台的可扩展性,能够适应嵌入式系统接口多样性的需求;仿真软件使用模型驱动的开发方法使仿真软件具有可定制、可重用等特点。该仿真系统可以大幅度提高嵌入式系统的开发效率,能够对嵌入式系统的实时性、可靠性等进行验证,具有较高的实用价值。 2 理论基础 MDA 的提出为通用嵌入式仿真系统的实现提供了很好的解决方法。MDA [2]是软件工程领域近年来的重要研究成果,MDA 方法使设计者能够独立于具体平台进行系统设计,而最终又能够在某个具体平台中实现系统,从根本上解决了软件模型与实现代码之间难以同步的问题,实现系统的可重用性,使系统具有良好的可配置性和可移植性。MDA 软件 设计方法已经在现实的软件工程中得到了广泛应用,在仿真领域也得到了应用。 Matlab/Simulink [3]是一种对动态系统进行建模、仿真和分析的软件包,可以快速创建与系统交互的物理对象的动态行为模型。Simulink 使用图形化的编程方式,操作方便直观,允许用户用S 函数自定义模块。S 函数扩展了Simulink 的功能;Matlab 工具RTW(Real-Time Workshop)可用Simulink 模型生成优化的、可定制的、可移植的代码,此程序可以在实时系统和非实时系统等众多目标环境中运行仿真。因此,Matlab/Simulink 为模型驱动的仿真系统开发提供了工具 支持。 3 通用嵌入式仿真系统设计 3.1 嵌入式仿真系统组成 嵌入式仿真系统由仿真主控计算机、仿真器、嵌入式目标机、作动器等组成,如图1所示。目标机和作动器是进行具体仿真的连接对象,这里不作介绍。其中,仿真主控计算 机是一台普通PC , 具有C++ Compiler 、Matlab/Simulink 、RTW 等软件,通过以太网或串口与仿真器相连,在其上进行组件库开发、仿真模型开发、仿真参数设置、代码生成和下载、仿真控制、仿真数据回显和仿真结果分析等。为了满足嵌入式系统的实时性要求,仿真器上运行xPC 目标、VxWorks 等 基金项目:国家自然科学基金资助重点项目“高可靠构件化嵌入式软件设计与验证技术及其支撑环境研究”(60736017) ;国家“863”计划基金资助项目“高可信嵌入式软件生产线”(2007AA010304) 作者简介:李秀萍(1985-),女,硕士研究生,主研方向:嵌入式系统设计与仿真;董云卫,教授、博士生导师 收稿日期:2010-02-11 E-mail :lixiuping0322@https://www.doczj.com/doc/9812739950.html,

利用嵌入式仿真器实现调试功能

利用嵌入式仿真器实现调试功能 引言 本文介绍了一种先进的片上嵌入式仿真系统功能及其应用实例。由于该系统集成在MCU内部,包括复杂断点设置、触发序列发生器及处理器状态存储器等多种功能模块,使工程师在设计电路中实现调试功能。 调试方法对比 调试是嵌入式产品开发人员的主要工作之。随着电路设计趋于复杂化,调试过程也变得愈加困难和耗时。仿真器的小足之处在于小能准确再现实际应用时的工作状态,许多仿真器不仅仿真了CPU内核及少数外设。不过,仿真器也有诸多优点,可提供代码覆盖、配置及条件断点等功能。嵌入式应用通常涉及多个软硬件交互过程。由于MCUT作在不同环境下,实时事件有时由外接电路产生,有时由自身集成的ADC或者计时器产生。有时,MCU还与DSP配合组成更加复杂的系统。在只有CPU内核的仿真器环境内调试、校验IC间通信软件并不容易。

另一种常用方法是使用电路内仿真器(1CE),它使用适配器替代日标Ib路板MCU,并连接了用于模拟MCU活动的复杂电路,同时提供调试功能。ICE吸收了仿真器在真实环境实时运行软件的优点,但其价格昂贵、体积较大且无法提供100%精确度,尤其是涉及到ADC、DAC、比较器、振荡器及及电压参考电路等模拟外设时。 通过在MCU中增加具备调试功能的嵌入式仿真器克服了上述缺点。嵌入式仿真过程中,试用主机通过JTAG等串行接口直接连接到片上仿真逻辑电路。应用程序代码在MCU 的运行状况与没有连接调试接口时想同。由于软件是在实际工作环境下调试,所以在软件开发完成后无需与硬件再进行调试。 某些8位和16位微型控制器现在电具备了嵌入式调试功能,但大多数还只能提供存储器存取、CPU执行控制及硬件断点设置等基本功能,与成熟的ICE相比还有较大的提高空间。最新16位MCU提供的嵌入式仿真模块增加了更多新功能,从而缩小了与ICE的差距,下面将介绍部分新型MCU 高级调试功能及应用实例。 EEM系统构成 集成的增强型嵌入式仿真模块(EEM)包含以下功能块:

单片机软件仿真系统Proteus(海神)介绍及使用

附录A 单片机软件仿真系统Proteus(海神)介绍及使用 一、该软件的特点: ①全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。 ②具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232 动态仿真、I2C 调试器、SPI 调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ③目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18系列、Z80 系列、HC11 系列以及各种外围芯片。④支持大量的存储器和外围芯片。 总之,该软件是一款集单片机和SPICE 分析于一身的仿真软件,功能极其强大,是其他任何一款软件不能相比的。 二、ISIS智能原理图输入系统 ISIS是Preoteus系统的中心,具有控制原理图画图的超强的设计环境。ISIS有以下特性:1、出版质量的原理图 ISIS提供给用户图形外观,包括线宽、填充类型、字符等的全部控制,使用尸能够生成如杂志上看到的精美的原理图,画完图可以以图形文件输出,画图的外形由风格模板定义。 2、良好的用户界面 IsIs有一个无连线方式,用户只需单击元件的引脚或者先前布好的线,就能实现布线 此外,摆放、编辑、移动和删除操作能够直接用鼠标实现.无需去单击菜单或图标。 3.自动走线 只要单击想要连接的两个引脚,就能简单地实现走线。在特殊的位置需要布线时,使用者只需在中间的角落单击。自动走线也能在元件移动的时候操作,自动解决相应连线。节点能够自动布置和移除。既节约了时间,又避免了其他可能的错误。 4.层次设计 ISIS支持层次图设计,模块可画成标准元件,特殊的元件能够定义为通过电路图表示的模块,能够任意设定层次,模块可画成标准元件,在使用中可放置和删除端口的子电路模块。 5、总线支持 ISIS提供的不仅是一根总线,还能用总线引脚定义元件和子电路。因此,一个连线在处理器和存储器之间的32位的处理器总线可以用单一的线表示,节省绘图的时间和空间。6.元件库 ISIS的元件库包含8000个元件,有标准符号、三极管、二极管、热离子管、TTL CMOS、ECL、微处理器,以及存储器元件、PLD、模拟Ic和运算放大器。 7.可视封装工具 原理图和PCB库元件的匹配是由封装工具简化的。在原理图部分的引脚旁边将显示PCB的封装,并允许每个引脚名对应文本和图形的引脚号码。 8.复合元件 ISIS的元件库表达方式有很多种,无论是单个元件、同态复合元件、异态复合元件,还是连接器,都可以在原理图上以独立引脚来表达,不用所有线都连到一个独立元件上。9、元件特性 设计中的每个元件都有一定数日的属性或特性。某些特性控制软件的特定功能(如PCB 封装或仿真)用户也可以添加自己的特性。一旦库建立,就能提供默认值及特性定义。特性定义提供大量的特性描述,当修改元件时,将显示在编辑区域内。

嵌入式软件行业及市场分析

嵌入式行业及市场分析 “后PC时代”的来临及3C融合加速趋势的彰显,给中国以嵌入式软件为核心的嵌入式系统产业的高速增长带来了千载难逢的契机,嵌入式软件产业现已成为中国IT 产业中的一个重要新兴产业和增长点。作为中国软件产业的一个重要组成部分,中国的嵌入式软件产业一直保持着快速的发展,最近几年来的增长速度都超过了30%。远远高于世界嵌入式软件产业和中国软件产业的增长速度。越来越多的国际嵌入式软件巨头将目光瞄向了中国这一新兴市场。最近两年来,微软、风河、Montavista、奇趣、PalmSource等全球嵌入式软件巨头,在中国或收购、或合作、或设立分支机构,争先恐后地进行“圈地运动”,力争在中国市场竞争格局尚未明朗之前占得先机,为公司日后在中国市场赢得有利位置奠定基础。这一系列重大事件标志着中国嵌入式软件产业进入了一个全新的发展阶段。 中国嵌入式软件产业规模到底有多大?发展势头如何?在中国到底有哪些企业在从事嵌入式软件产品的研发和销售?竞争格局如何?未来几年,嵌入式软件产业将出现哪些值得关注的投资机会?这些都是所有关注中国嵌入式软件产业的厂商与用户所迫切需要解答的问题。 2008年,中国嵌入式软件产业与网络通信、数字家庭、办公自动化、航空航天、工业控制、国防军事、医疗系统、安防系统、能源系统、交通系统、金融系统等行业融合正在加深,在全面优化中国制造的产业结构上发挥着越来越重要的作用。但产业标准的滞后、产业分工的不明细及产业协同的缺乏使得中国嵌入式软件核心竞争力的提高无法与产业规模增长同步,阻碍了产业向高级化发展的步伐。面对产业发展的机遇与挑战,我们发布的《2008年中国嵌入式软件产业发展研究报告》,将帮助业界厂商、投资者、产业人士更精确地把握中国嵌入式软件产业发展规律、更深入地梳理应用价值迁移轨迹-更加全面、深刻的产业分析。从产业特点、产品结构、产业链结构、产业链各环节竞争分析等多个维度总结产业发展现状。更加科学、完整的未来发展趋势分析和预测。综合产业政策、用户需求、技术演进、应用创新、产业变迁等多种因素影响力分析,给出有价值的趋势分析与定量预测结果。 本报告根据国家统计局、中国软件协会嵌入式系统分会、中国嵌入式产业联盟等国家政府机构和行业组织协会的统计,对2009-2010年我国嵌入式软件产业的市场规模、行业结构、应用产品以及投资机会等作了详尽的分析和预测。 目录 2009-2010年中国嵌入式软件产业市场发展策略及投资分析报告正文目录 第一章中国软件行业发展状况 第一节中国软件行业发展现状 第二节2008年中国软件收入及经济指针 第三节2008年中国软件业全球占有率 第四节2009年中国软件业的机遇和威胁

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