文档库 最新最全的文档下载
当前位置:文档库 › 嵌入式软件设计B

嵌入式软件设计B

嵌入式软件设计B
嵌入式软件设计B

东北大学继续教育学院

嵌入式软件设计试卷(作业考核线上) B 卷

学习中心:院校学号:姓名:

(共7 页)

一、选择题(10小题,每题2分,共20分)

1. ( C )不是常规意义上的嵌入式系统。

A. 手机

B. MP3

C. PC机

D. 数码相机

2. 可用作嵌入式操作系统的有(A )

A. Linux(Vxworks,uc/os-II)

B. windows2000

C. windowsXP

D. DOS

3. ARM7TDMI采用(A )级流水线。

A. 3

B. 4

C. 5

D. 6

4. 若前次运算结果为负数,则CPSR的(A )为1

A. N

B. Z

C. C

D. V

5. 中断服务程序的最后一条指令必须是(C )

A. MOV PC,R14

B. MOV PC,R14_und

C. SUBS PC,R14_fiq,#4

D. SUBS PC,R14_irq,#4

6. 将R0+0x12地址处的数据读出,装载到R1中,能实现这个功能的语句是(D )

A. STR R1,[R0,#0x12]

B. LDR R1,[R0,#0x12]

C. STR R1,[R0,-#0x12]

D. LDR R1,[R0,-#0x12]

7. LPC2210/2212/2214具备外部存储器接口,通过外部存储器控制器(EMC)可以扩展4个Bank的存储器组,每个Bank寻址空间为(B )

A. 4MB

B. 8MB

C. 16MB

D. 32MB

8. AHB和VPB外设区域都是2MB,可各自分配最多(D)个外设。

A. 16

B. 32

C. 64

D. 128

9. 交叉编译的环境建立在(A )

A. 开发板上

B. 目标系统上

C. 宿主机上

D. 应用程序上

10. 操作系统结构不包括(A )

A. 数据库

B. 引导系统

C. 内核

D. 根文件系统

二、判断题(10小题,每题1分,共10分)

1. (√)Inte处理器也属于嵌入式处理器。

2. (√)嵌入式系统的软件一般都需要固化。

3. (×)单片机就是嵌入式系统,它与嵌入式系统没有区别。

4. (√)掌握部分常用ARM指令可以方便ARM程序调试。

5. (√)ARM指令集具有高效、快速的特点,它是Thumb指令集的子集。

6. (√)Thumb指令集具有灵活、小巧的特点,但是代码密度低。

7. (×)LPC2000系列微控制器的片内SRAM支持64位的读写访问。。

8. (×)晶振输出的时钟频率最大为40MHz

9. (√)Linux系统是商用操作系统。

10.(√)Linux系统由内核、shell、文件系统和应用程序组成。

三、填空题(10小题,每题2分,共20分)

1. 嵌入式系统经历了近30年时间,经历了无操作系统阶段,简单操作系统阶段,

实时操作系统阶段,面向Internet阶段。

2. 嵌入式系统的软件层次结构包括:硬件抽象层HAL、板级支持包BSP、设备驱动层、实时操作系

统RTOS、、操作系统API及应用程序。

3. ARM7有两种处理器状态,分别是ARM 状态和Thumb 状态。

4. ARM7TDMI采用三级流水线(取指译码执行)流水线,使用冯·诺依曼(V on Neumann )

结构,指令和数据共用一条32 位总线存储器编址方式。

5. 调用子程序是用指令CALL的编号为FNC01 指令,子程序返回指令是指令SRET

的编号为FNC02 。

6. Thumb指令集具有灵活、小巧的特点,却仍然保持ARM的大多

数性能上的优势,它是ARM指令集的子集。

7. Linux操作系统由内核、Shell、文件系统和应用程序四部分组

成。

8. LPC2000系列芯片有两个复位源,外部复位复位和看门狗复位复位。

9. Boot Block映射到片内存储器,Flash映射到片内存储器。

10.大多数引导系统都包含两种不同的操作模式:启动加载模式和下载模式。

四、名词解释及简答题(5小题,每题6分,共30分)

1. 嵌入式系统

答:嵌入式系统一般指非PC 系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于PC 中BIOS 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。

嵌入式系统几乎包括了生活中的所有电器设备,如掌上PDA 、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。

嵌入式系统的硬件部分,包括处理器/ 微处理器、存储器及外设器件和I/O 端口、图形控制器等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用EPROM 、EEPROM 或闪存(Flash Memory) 作为存储介质。软件部分包括操作系统软件( 要求实时和多任务操作) 和应用程序编程。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。

2. ARM处理器模式和处理器状态

答:ARM处理器模式:ARM微处理器支持7种运行模式,分别为:

用户模式(usr):ARM处理器正常的程序执行状态。

快速中断模式(fiq):用于高速数据传输或通道处理。

外部中断模式(irq):用于通用的中断处理。

管理模式(svc):操作系统使用的保护模式。

数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

系统模式(sys):运行具有特权的操作系统任务。

未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

ARM处理器状态ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。

进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。

进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。

3. ARM7TDMI(-S)有几种寻址方式?LDR R1,[R0,#0x08]属于哪种寻址方式?

答:有8种寻址方式:1.寄存器寻址 2.立即寻址3.寄存器移位寻址 4.寄存器间接寻址5.基址寻址6.多寄存器寻址7.堆栈寻址8.相对寻址;

“LDR R1,[R0,#0x08]”属于基址寻址。

4. 存储器映射

答:存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配的,给存储器分配地址的过程就称为存储器映射。如图 1.所示。

在完成了存储器映射后,用户就可以按地址去访问对应的存储单元。

5. Linux系统有什么特点?

答:Linux操作系统在短短的几年之内得到了非常迅猛的发展,这与Linux具有的良好特性是分不开的。Linux包含了Unix的全部功能和特性。简单的说,Linux具有以下主要特性:

1 开放性

2 多用户

3 多任务

4 良好的用户界面

5 设备独立性

6 供了丰富的网络功能

7 可靠的系统安全

8 良好的可移植性

Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。可移植性为运行Linux的不同计算机平台与其他任何机器进行准确而有效的通信提供了手段,不需要另外增加特殊的和昂贵的通信接口

五、问答题(2小题,每题10分,共20分)

1.CMP指令的操作是什么?写一个程序,判断R1的值是否大于0x30,是则将R1减去0x30。

答:CMP是通过相减来比较两个操作数的大小,影响标志位但是不保存结果。

8086的汇编编程如下:

data segment

R1 db 36H

data ends

code segment

assume cs:code,ds:data

begin: mov ax,data

mov ds,ax

mov al,R1

cmp al,30H ;将R1放入al中,与30H比较

jna stop ;不大于则转到标号stop处

sub al,30H ;大于或等于,则减去30H

stop:

mov ax,4c00h

int 21h

code ends

end begin

2. Linux系统由哪四部分组成?

Linux主要分为4个部分:内核(kernel)、shell、文件结构和实用工具。

一、内核

内核主要作用是运行程序和管理硬件。

内核包括几个主要部分:进程管理、内存管理、硬件设备驱动、文件系统驱动、网络管理和其他一些部分。内核最重要的部分是内存管理和进程管理。

二、shell

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令,并把它送入内核去执行。

shell实际上是一个命令解释器。

目前有如下主要版本的shell。

1. Bourne shell:贝尔实验室开发。

2. BASH:GNU开发。

3. Korn shell:针对Bourne shell的发展。

4. C shell:sun公司开发。

shell中的命令分为内部命令和外部命令。前者包含在shell之中,如cd、exit等,查看内部命令可用help 命令。后者存于文件系统某个目录下的具体可操作程序,如cp等,查看外部命令的路径可用which。

三、文件结构

文件结构是文件存放于磁盘上的组织方法。

四、实用工具分为三类:

1. 编辑器:用于编辑文件。

2.过滤器:用于接收数据并过滤数据。

3.交互程序:允许用户发送信息或接收来自其他用户的信息。

Linux上的过滤器主要有ed、ex、Vi、Emacs。ed和ex是行编辑器,vi和Emacs是全屏幕编辑器。

嵌入式软件开发流程图

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

嵌入式底层软件开发方法

嵌入式底层软件开发方法 自从20世纪70年代单片机出现以来,嵌入式系统已获得了较为深入的研究, 提出了一些嵌入式软件的开发方法,但嵌入式系统仍处于发展阶段,嵌入式系统 已经显示出广阔的应用前景。 1.嵌入式系统的定义 嵌入式系统又称为嵌入式计算机系统,是指嵌入到对象体系中的专用计算机系统。对象系统则是指嵌入式系统所嵌入的宿主系统,嵌入性、专用性与计算机系统 是嵌入式系统的三个基本要素。嵌入式系统通常被描述为:以应用为中心,以计 算机技术为基础,软硬件可剪裁,适应于应用系统对功能、可靠性、成本、体积和 功耗有严格要求的专业计算机系统。 2.嵌入式系统的发展历程 嵌入式系统是在硬件和软件交替发展的支撑下逐渐趋于稳定和成熟的,它有着 悠久的历史。从20世纪70年代单片机的出现到现在各种嵌入式微处理器、微控制 器的大规模应用,嵌入式系统己经有了30多年的发展历史。纵观嵌入式技术的发展,大致经历了以下几个发展阶段。 (1)无操作系统阶段:主要是以功能简单的专用计算机或单片机为核心的可编 程控制器形式存在的系统,具有监测、伺服、设备指示等功能,一般没有操作系统 的支持,通过汇编语言编程对系统进行直接控制。主要特点是:系统结构和功能都 相对单一,处理效率较低,存储容量较小,几乎没有用户接口,比较适合于各类专 用领域。 (2)以嵌入式处理器和嵌入式操作系统为标志的嵌入式系统:主要特点是出现 了高可靠、低功耗的嵌入式处理器,嵌入式操作系统能运行于各种不同类型的微处 理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;片上系统(System On Chip,SOC)使得嵌入系统越来越小,具有大量的应用程序接口,开发应用程序简单,应用软件丰富。 3.嵌入式系统的构成及其特点 1)嵌入式系统的组成 嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件 系统等组成,具有专用性、可嵌入性、实时性、可移植性和分布式等特点。其中, 嵌入式微处理器是嵌入式硬件系统的核心部分,它担负着控制、协调系统工作的重 要任务,通常具有实时多任务处理能力、中断处理能力、存储器保护能力和低功耗 能力;支撑硬件主要包括存储介质、通信部件和显示部件等;支撑硬件的驱动程 序、操作系统、应用软件等一起构成嵌入式软件。

嵌入式系统

第一章绪论 1.嵌入式系统的定义、特点和分类 2.嵌入式操作系统 3.嵌入式系统的选型 4.嵌入式系统的发展趋势 5.嵌入式系统的关键技术 6.嵌入式系统的应用 思考与练习 1.什么是嵌入式系统?嵌入式系统的特点是什么? 2.请说出嵌入式系统与其它商用计算机系统的区别。 3.嵌入式系统的关键技术有哪些? 4.请说明嵌入式系统技术发展及开发应用的趋势。 5.你知道嵌入式系统在我们日常生活中哪些设备中应用?说明其采用的处理器是什么?采用的哪一个嵌入式操作系统? 6.开发嵌入式系统的计算机语言主要有哪几种?分别用在什么场合?7. 嵌入式系统和专用集成电路的关系是什么? 第二章嵌入式系统设计方法 1. 需求分析与系统分析法 2.软硬件协同设计方法 3.嵌入式硬件开发方法 4.嵌入式软件开发方法 5.构件式开发方法 6.软件调试与软件测试方法 思考与练习 1.请说出嵌入式系统设计的主要方法及设计流程。在嵌入式系统开发的总体设计中,需要进行哪几方面的工作? 2.嵌入式硬件调试的主要方法及技术手段有哪些? 3.什么是构件式开发方法?说明该方法对嵌入式系统开发具有什么意义,并举例说明。4.需求分析阶段分为哪几个步骤?每个步骤完成什么工作? 5.在进行系统设计时,概要设计和详细设计的工作内容有什么不同? 6.在嵌入式系统实现阶段,需要选择开发平台,通常开发平台的选择包括哪些内容?7.在当今IT 时代,为了使产品尽快进入市场,就产品开发阶段,你认为有哪些方法可以加快产品的开发速度? 8.什么是“黑盒”测试?什么是“白盒”测试?什么是“灰盒”测试? 9.嵌入式系统开发中,使用软件组件技术有什么好处? 10.什么是知识产权核(Intellectual Property Core,简称IP Core)?指出“软知识产权核(Soft IP Core)”、“硬知识产权核(Hard IP Core)”、“固知识产权核(Firm IP Core)”的意义和差别。 11.根据嵌入式软件开发的不同阶段,嵌入式开发工具有哪些种类? 12.从底层硬件到上层应用,嵌入式软件的开发可以分为哪几种? 13.什么是交叉开发环境? 14.什么是OCD 调试方法?指出OCD 的主要形式JTAG 和BDM 的特点和区别? 15.嵌入式软件的调试运行环境和固化运行环境主要区别是什么?

嵌入式软件开发入门教程

C语言是嵌入式软件开发人员必须熟练掌握的编程语言。作为C语言的初学者重点掌握基本数据类型、复合数据类型、流程控制、数组、指针、函数这几方面的基本知识。本人建议通过观看视频教学的方式进行学习,这样既快速又通俗易懂,当然前提是必须找到优质的教学视频资源。此外,可以配合入门书籍谭浩强的《C语言程序设计》进行学习。如果想深入的学习可以参考美国人写的人民邮电出版社出版的《C Primer Plus》。 方法/步骤2: C语言的磨炼 掌握了基本的C语言语法以后并不代表我们就学会了C语言,关键是如何灵活的去运用。我们可以练习编写C语言学习书籍的课后习题或者在网站上搜索C语言笔试题库进行练习。也可以百度寻找经典的C 语言编程案例进行学习。总之,就是将C语言运用的越熟练越好。至于开发环境可以选择VC++ 6.0 或者linux。 方法/步骤3: 硬件电路基础

嵌入式软件工程师还必须懂一些硬件电路的基本知识。当然,对于刚入门的软件开发人员没必要非常精通电路技术,熟悉基本的电子元器件的功能即可。例如,电阻、电容、电感的作用以及符号,三极管、MOS管导通截止的条件,微处理器、晶振的基本概念等。至于,以上这些基本知识我们可以通过童诗白的第四版《模拟电子技术基础》和网上查阅的资料进行学习。 方法/步骤4: 如何看懂原理图 作为嵌入式软件开发人员我们经常会和硬件打交道,我们的程序最终会被烧录到微处理器内部运行。所以,我们必须要会看硬件原理图,看懂之后才知道如何写程序。首先,我们要知道嵌入式硬件最小系统的组成部分,包括电源电路、晶振、微处理器、复位电路。然后以微处理器为中心向四周查看,主要看我们可以操纵的外设资源。以上知识的学习我们不妨经常浏览一下某些知名IT网站其他人上传的经典原理图。 方法/步骤5: 基本外设知识

嵌入式系统软件开发和设计流程复习课程

* 本文由hquwgz贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 嵌入式系统及应用 第九章嵌入式系统软件的开发 主要内容 嵌入式软件开发工具嵌入式系统开发模式实时软件分析设计方法 第一节嵌入式软件开发工具 嵌入式软件开发工具的分类嵌入式软件的交叉开发环境嵌入式软件实现阶段的开发过程嵌入式软件开发工具的发展趋势 / 嵌入式软件开发工具 “工欲善其事,必先利其器”嵌入式软件开发工具的集成度和可用性将直接关系到嵌入式系统的开发效率。 嵌入式软件开发工具的分类 嵌入式软件开发阶段 嵌入式软件开发工具的分类 根据不同的阶段,嵌入式软件开发工具可以分为: 需求分析工具(Requirement Analysis Tools)软件设计工具(Software Design Tools) 编码、调试工具(Coding Tools) 测试工具(Testing Tools) 配置管理工具、维护工具等 Rational Rose RealTime ObjectGeode Rhapsody TAU Tornado LambdaTOOL pRISM+ Spectra Win CE Platform Builder CodeWarrior Xray Debugger Logiscope CodeTEST … Phases Requirement Analysis Software Design Coding Test Release 主要嵌入式软件开发工具产品 嵌入式软件开发工具的分类 嵌入式软件的开发可以分为以下几种: 编写简单的板级测试软件,主要是辅助硬件的调试开发基本的驱动程序开发特定嵌入式操作系统的驱动程序(板级支持包)开发嵌入式系统软件,如:嵌入式操作系统等开发应用软件 嵌入式软件开发工具的分类 从以上嵌入式软件开发分类来看,嵌入式软件开发工具可以分为: 与嵌入式OS相关的开发工具,用于开发: ` 基于嵌入式OS的应用部分驱动程序等 与嵌入式OS无关的开发工具,用于开发: 基本的驱动程序辅助硬件调试程序系统软件等 嵌入式软件的交叉开发环境 交叉开发环境是指用于嵌入式软件开发的所有工具软件的集合,一般包括: 文本编辑器交叉编译器交叉调试器仿真器下载器等 交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。 运行平台Target ]

软件设计说明书嵌入式软件范例

一、XXXXX-XXX 热压机自动控制系统软件的设计 LCD—液晶显示器,因其具有微功耗、平板化等一系列显著特点而广泛应用于仪器仪表、计算机显示终端、各类电子显示装置等各个方面。LCD的后工序生产工艺包括COG、COF、FOG、FOB,XXX-XXX 热压机正是为FOG段工艺而开发设计的。 XXXXX-XXX热压机自动控制动系统软件(以下简称XXX系统)是由PLC、气动元件和电动元件组成,其特点是通过传感器采集外部信号,输入到PLC内部进行计算处理,以控制外部执行元件,使之完成一系统的机构动作,达到生产所需的工艺要求。 ㈠ XXX 系统的性能和结构 XXX 系统主要由PLC、GOT(触摸屏)、伺服电机、气缸电磁阀、电磁继电器、光电传感器、磁性传感器、温度处理器、温度传感器以及各种按钮组成。 1、XXX 系统的主要性能和技术参数 ●主机电源:Vac-----220VAC/50HZ ●传感器电源:Vdd-----+24V ● PLC接口:40位输入、32位输出、1个RS232通信串口 ●工作温度:-10℃~+55℃ ●存储温度:-20℃~+60℃ 2、XXX 系统的内部地址 XXX 系统的内部地址及主要功能部件: ●输入继电器— X ●输出继电器— Y ●辅助继电器— M ●定时器— T ●计数器— C ●数据寄存器— D ●变址寄存器— Z 3、XXX 系统的外部引线功能定义 XXX 系统共有82根引脚,具体定义如下: ㈡指令描述 XXX 系统主要有如下指令: ㈢人机界面(GOT) 1、参数设置

人机界面(GOT)可用于参数设置和数据的显示(如图所示) 2、手动操作 人机界面亦可制作手动调试所需的各种按键,以替代繁琐的按钮(如图) 3、生产信息 人机界面还可用于显示生产时的各种数据以及PLC内部的信息,比如外部引脚的通断 信息、生产时产生的报警信息等(如下图) ㈣ XXX 系统的接口及编程 1、硬件接口 XXX系统与电脑的接口可以有两种方式:直接控制方式和间接控制方式。直接控制方式就是将PLC的RS232接口直接与电脑的RS232接口对接(如图1-1);间接控制方式就是将PLC的RS232接口与触摸屏的RS232接口对接,然后将电脑的RS232接口与触摸屏的RS422接口对接,然后对该外设进行间接操作而实现控制(如图1-2)。 2、程式流程方框图 A、系统回原点流程图 B

嵌入式软件开发流程

.嵌入式软件开发流程

————————————————————————————————作者:————————————————————————————————日期:

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成品,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。本书在4.1.5节对各种不同的嵌入式操作系统进行了比较,读者可以以此为依据进行相关的选择。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。 由于本书主要讨论嵌入式软件的应用开发,因此对硬件开发不做详细讲解,而主要讨论嵌入式软件开发的流程。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

嵌入式软件系统设计方案案例

待定颜色 修改颜色 疑问颜色 采集器软件系统设计方案 版本历史

目录 1.引言 (5) 1.1 目的 (5) 1.2 背景和范围 (5) 1.3 定义 (5) 1.4 参考资料 (5) 2.系统结构 (5) 2.1 系统功能 (5) 2.2硬件系统框架 (6) 2.2 软件系统框架 (7) 3.上行规约解析模块设计说明 (9) 3.1描述 (9) 3.2功能 (9) 3.3设计思路(算法、流程) (9) 3.4接口 (10) 3.5资源分配、性能 (12) 3.6测试方法 (12) 4.读写参数模块设计说明 (12) 4.1描述 (12) 4.2功能 (12) 4.3设计思路(算法、流程) (13) 4.4接口 (13) 4.5资源分配、性能 (14) 4.6测试方法 (14) 5.周期抄表任务管理 (14) 5.1描述 (14) 5.2功能 (14) 5.3设计思路(算法、流程) (14) 5.4接口 (14) 5.5资源分配、性能 (14) 5.6测试方法 (15) 6.读历史电量数据模块设计说明 (15) 6.1描述 (15) 6.2功能 (15) 6.3设计思路(算法、流程) (15) 6.4接口 (15)

6.5资源分配、性能 (15) 6.6测试方法 (15) 7.数据存储和电表信息存储管理 (15) 7.1描述 (15) 7.2功能 (16) 7.3设计思路(算法、流程) (16) 7.4接口 (20) 7.5资源分配、性能 (20) 7.6测试方法 (20) 8.数据交换模块设计说明 (21) 8.1描述 (21) 8.2功能 (21) 8.3设计思路(算法、流程) (21) 8.4接口 (21) 8.5资源分配、性能 (21) 8.6测试方法 (21) 9.广播校时任务模块设计说明 (21) 9.1描述 (21) 9.2功能 (22) 9.3设计思路(算法、流程) (22) 9.4接口 (22) 9.5资源分配、性能 (22) 9.6测试方法 (22) 10.更改RS485通讯速率设计说明 (23) 10.1描述 (23) 10.2功能 (23) 10.3设计思路(算法、流程) (23) 10.4接口 (23) 10.5资源分配、性能 (23) 10.6测试方法 (23) 11.抄表记录周期任务设计说明 (23) 11.1描述 (23) 11.2功能 (23) 11.3设计思路(算法、流程) (23) 11.4接口 (23) 11.5资源分配、性能 (24)

嵌入式软件开发流程

嵌入式软件的开发流程 嵌入式系统是指用于执行独立功能的专用计算机系统。它由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。嵌入式系统以应用为中心,以微电子技术、控制技术、计算机技术和通讯技术为基础,强调硬件软件的协同性与整合性,软件与硬件可剪裁,以此满足系统对功能、成本、体积和功耗等要求。最简单的嵌入式系统仅有执行单一功能的控制能力,比如说单片机的应用,在唯一的ROM 中仅有实现单一功能控制程序,无微型操作系统。复杂的嵌入式系统,例如个人数字助理(PDA)、手持电脑(HPC)等,具有与PC几乎一样的功能。实质上与PC的区别仅仅是将微型操作系统与应用软件嵌入在ROM、RAM 和/或FLASH存储器中,而不是存贮于磁盘等载体中。很多复杂的嵌入式系统又是由若干个小型嵌入式系统组成的。 近些年来,随着以计算机技术,通讯技术为主的信息技术的快速发展和Internet 的广泛应用,传统的控制学科正在发生变革,出现了许多新的生长点。伴随而来的一个现象是控制专业的相当多的学生在毕业后进入了计算机,通讯行业,以致有人说学控制没有用,自动化专业可以取消了。这些情况的出现使我们控制教育工作者反复思考,传统的控制应如何拓宽它的领域?控制专业应该教什么才使学生感到有用?流行的嵌入式操作系统可以分为两类:一类是从运行在个人电脑上的操作系统向下移植到嵌入式系统中,形成的嵌入式操作系统,如微软公司的Windows CE及其新版本,SUN公司的Java操作系统,朗讯科技公司的Inferno,嵌入式Linux等。这类系统经过个人电脑或高性能计算机等产品的长期运行考验,技术日趋成熟,其相关的标准和软件开发方式已被用户普遍接受,同时积累了丰富的开发工具和应用软件资源。 另一类是实时操作系统,如WindRiver 公司的VxWorks,ISI 的pSOS,QNX系统软件公司的QNX,ATI 的Nucleus,中国科学院凯思集团的Hopen嵌入式操作系统等,这类产品在操作系统的结构和实现上都针对所面向的应用领域,对实时性高可靠性等进行了精巧的设计,而且提供了独立而完备的系统开发和测试工具,较多地应用在军用产品和工业控制等领域中。Linux 是90年代以来逐渐成熟的一个开放源代码的操作系统。PC机上的Linux 版本在全球数以百万计爱好者的合力开发下,得到了非常迅速的发展。90 年代末uClinux,RTLinux 等相继推出,在嵌入式领域得到了广泛的关注,它拥有大批的程序员和现成的应用程序,是研究开发工作的宝贵资源。 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。

嵌入式系统完整开发方案学习资料

嵌入式系统完整开发 方案

本文提纲 嵌入式系统完整解决方案 一、前言:简单介绍嵌入式技术的飞速发展以及作为嵌入式领域老牌劲旅的旋极 公司在这方面所提供的完整解决方案; 二、由美国ATI公司生产的Nucleus操作系统特点及其优势; 三、根据用户所选用的CPU的不同,编译器有多种不同的选择:Paradigm开发 工具、CAD-UL开发工具,ARM公司的SDT2.5X 和ADS1.X,GreenHill 编译器; 四、嵌入式开发中,代码的调试也是重要的一步,因此必须选择好的调试工具才 能生产出好的软件,通常的调试手段有三种:ICE、ICD和MONITOR,我们向大家推荐由德国Lauterbach公司生产的Trace32-ICE/ICD; 五、用户需要RTOS厂商提供原型工具,以便可以在主机上来仿真目标软件环 境; 六、最后举例说明基于ARM/MIPS的开发方案。

嵌入式系统完整开发方案 xx旋极信息技术有限公司 在嵌入式技术飞速发展的今天,嵌入式产品已经出现在社会的各个领域,包括航空、航天、军事、仪表、工业控制及家庭消费等。全球每年要消耗掉30亿颗嵌入式微处理器,嵌入式系统带来的工业年产值已经超过了1万亿美元。而在这些嵌入式应用中,大多采用了嵌入式实时多任务操作系统(RTOS)。 早期的嵌入式应用程序都是在没有操作系统支持的裸机上用汇编语言和C语言来开发,这也正是目前我国大多数嵌入式开发的工作模式。为了能够有效利用高档单片机的处理能力,现代的嵌入式产品开发大多选用RTOS作为软件的核心。这样,不仅能够把系统软件和应用软件分开处理,还可以极大地简化系统的开发过程,提高可靠性,并缩短产品上市的时间。可以说RTOS 使嵌入式软件的编写从“小生产方式”进入了“大生产方式”。 旋极公司作为国内嵌入式技术领域的老牌劲旅,从xx93年公司创建之初就致力于嵌入式技术的引进和开发。起初,只是作为国外厂商的代理,向用户提供相应的开发工具,现在,为了适应市场的要求,改变了以前的模式,从简单的提供开发工具发展到向用户提供完整的解决方案。这其中包括:操作系统(图形、网络、浏览器等)、仿真器、编译器、原型工具等产品和我们为用户提供的全方位的技术支持服务。 一、操作系统 在这里我们要向大家推荐的操作系统是Nucleus,它是美国ATI公司的产品,是为实时嵌入式应用而设计的一个抢先式多任务操作系统。其95%的代码由ANSI C语言写成,因此结构性和可移植性非常好。Nucleus操作系统的设计采用了面向对象的方法,整个软件由多个功能明确的组件构成,因此结构清晰,便于裁减和复用。 Nucleus操作系统还拥有丰富的外围模块(如下图所示),如TCP/IP网络协议栈(包括各种应用层的协议)、多种风格的图形系统(Windows和Mac风格)、基于RAM/Flash存储器的文件系统、以及一个功能可定制的Internet浏览器。

嵌入式软件开发流程

嵌入式软件开发流程

————————————————————————————————作者:————————————————————————————————日期:

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

《嵌入式软件设计》答案

东北大学继续教育学院 嵌入式软件设计试卷(作业考核线上) B 卷学习中心:福建南平奥鹏学习中心院校学号:C03599011730067姓名王华仁 (共 5 页) 一、选择题(10小题,每题2分,共20分),请将答案填入下表。 1. 以下哪个不是嵌入式系统设计的主要目标? A. 低成本 B.低功耗 C. 实时要求高 D. 超高性能 2. 下面关于哈佛结构描述正确的是: A. 存储空间与IO空间分离 B. 程序存储空间与数据存储空间分离 C. 存储空间与IO空间合并 D. 程序存储空间与数据存储空间合并 3. 从层次结构来看,嵌入式系统包括: A. 硬件层 B. 板级支持包 C. 实时操作系统和应用软件 D. 以上都是 4. 下面哪一种工作模式不属于ARM异常模式? A. 快速中断模式 B. 管理模式 C. 系统模式 D. 数据访问中止模式 5. 处理器从存储器读数据的指令(加载指令)的助记符是: A. SWP B. SWPB C. LDR D. STR 6. 指令“ADD R2, R1, #10”的寻址方式为: A. 立即寻址 B. 寄存器间接寻址 C. 多寄存器寻址 D. 堆栈寻址

7. 单系统需要小量的高速缓存,最合适的存储器是: A. SRAM B. DRAM C. EEPROM D. Flash 8. AHB和VPB外设区域都是2MB,可各自分配最多()个外设。 A. 16 B. 32 C. 64 D. 128 9. 使用HOST-TARGET联合开发嵌入式系统,()不是必须的。 A. 目标系统 B. 宿主机 C. 银河麒麟操作系统 D. 交叉编译器 10. 操作系统结构不包括() A. 数据库 B. 引导系统 C. 内核 D. 根文件系统 二、判断题(10小题,每题1分,共10分),请将答案填入下表。 1. (√)嵌入式处理器的结构有哈佛结构和冯诺依曼结构之分。 2. (×)处于就绪状态的任务只能切换到运行状态。 3. (√)将模拟信号转换成数字信号的电路是DA转换器。 4. (√)在操作系统的设备管理中引入缓存,其主要目的是改善CPU和I/O设备间速度不匹 配的情况。 5. (√)ARM指令集具有高效、快速的特点,它是Thumb指令集的子集。 6. (×)Nand Flash比Nor Flash成本高,可靠性差。 7. (×)虚拟内存的主要用途是扩充存储容量。 8. (√)C语言程序可以嵌套加入汇编语言程序模块。 9. (√)操作系统中的存储管理室对内存中用户区进行管理。 10.(√)操作系统结构包括引导系统、内核和根文件系统

软件设计说明书嵌入式软件范例

软件设计说明书嵌入式 软件范例 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

一、XXXXX-XXX 热压机自动控制系统软件的设计 LCD—液晶显示器,因其具有微功耗、平板化等一系列显着特点而广泛应用于仪器仪表、计算机显示终端、各类电子显示装置等各个方面。LCD的后工序生产工艺包括COG、COF、FOG、FOB,XXX-XXX 热压机正是为FOG段工艺而开发设计的。 XXXXX-XXX热压机自动控制动系统软件(以下简称XXX系统)是由PLC、气动元件和电动元件组成,其特点是通过传感器采集外部信号,输入到PLC内部进行计算处理,以控制外部执行元件,使之完成一系统的机构动作,达到生产所需的工艺要求。 ㈠ XXX 系统的性能和结构 XXX 系统主要由PLC、GOT(触摸屏)、伺服电机、气缸电磁阀、电磁继电器、光电传感器、磁性传感器、温度处理器、温度传感器以及各种按钮组成。 1、XXX 系统的主要性能和技术参数 ●主机电源:Vac-----220VAC/50HZ ●传感器电源:Vdd-----+24V ● PLC接口:40位输入、32位输出、1个RS232通信串口 ●工作温度:-10℃~+55℃ ●存储温度:-20℃~+60℃ 2、XXX 系统的内部地址 XXX 系统的内部地址及主要功能部件: ●输入继电器— X ●输出继电器— Y ●辅助继电器— M ●定时器— T ●计数器— C ●数据寄存器— D ●变址寄存器— Z

3、XXX 系统的外部引线功能定义 XXX 系统共有82根引脚,具体定义如下:

㈡指令描述 XXX 系统主要有如下指令:

嵌入式软件开发的几点个人理解

嵌入式软件开发的几点个人理解 一、软件的概念 软件,是一系列按照特定顺序组织的计算机数据和指令的集合。我们日常生活中接触最多的软件大概要算应用软件了。在21世纪的今天,电脑、手机等智能设备进入千家万户,基本上每个现代化的家庭中或多或少拥有一台电脑或一部手机,我们每天都用着电脑或者手机中的应用软件享受着科技带给这个世界的便利。然而软件的概念却并不只是在这些应用软件中,一般来讲,软件被划分为编程语言、系统软件、应用软件,其中系统软件包括操作系统和支撑软件。另外,软件并仅包括可以在广义计算机上运行的电脑程序,还包括与这些电脑程序相关的文档。学术界将软件定义为程序加文档的集合体,确实非常贴切。 对于软件和硬件,这两者之间从来是相互依存,相得益彰的。硬件是实在的,有模有样的。软件是程序性的,是一系列的指令。个人认为,我们其实可以将人的身体与灵魂分别比作硬件和软件,软件的存在必须依附于硬件才能体现软件的价值;而硬件因为有了软件的存在,才具备了更加丰富的功能。 二、软件开发中的编程语言 软件的编程语言有多种、常见的编程语言有Pascal、Python、Ruby、Java、C、C++、C#、Basic、PHP等。这些编程语言各有特点,其中进行嵌入式系统开发常用的语言有C、C++、Java 等语言。 2.1、C语言 C语言是介于汇编语言和高级语言之间的语言,属于高级语言,也称为中级语言,是集汇编和高级语言优点于一身的程序设计语言。于1972年在美国贝尔实验室里问世,早期的C语言主要用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了九十年代,C语言开始进入其他操作系统,并很快在各类大、中、小和微型计算机上得到广泛的应用,成为当代最优秀的程序设计语言之一。 C语言的特点: 1)是一种结构化语言,层次清晰,便于按模块化方式组织程序,易于调试和维护。 2)C语言的表现能力和处理能力极强,不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进行位级别的操作。

嵌入式软件开发流程

嵌入式软件开发流程
一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌 入式系统的开发主要分为系统总体开发、 嵌入式硬件开发和嵌入式软件开发 3 大部分, 其总 体流程图如图 1.1 所示。
图 1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定 的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬 件和软件都可以实现的功能, 就需要在成本和性能上做出抉择。 往往通过硬件实现会增加产 品的成品,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌 入式操作系统的选择以及开发工具的选择等。 本书在 4.1.5 节对各种不同的嵌入式操作系统 进行了比较,读者可以以此为依据进行相关的选择。比如,对开发成本和进度限制较大的产 品可以选择嵌入式 Linux,对实时性要求非常高的产品可以选择 Vxworks 等。 由于本书主要讨论嵌入式软件的应用开发,因此对硬件开发不做详细讲解,而主要讨论 嵌入式软件开发的流程。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图 4.15 中“软件设计实现”部分所示, 它同通用计算机软件开 发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式 软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多, 为了更好地帮助读者选择开发工具, 下面首先对嵌入 式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择 IBM 的 Rational Rose 等软件, 而在程序开发阶段可以采用 CodeWarrior 下面要介绍的 ADS ( 的一个工具)等,在调试阶段所用的 Multi-ICE 等。同时,不同的嵌入式操作系统往往会有 配套的开发工具,比如 Vxworks 有集成开发环境 Tornado,WindowsCE 的集成开发环境 WindowsCE Platform 等。此外,不同的处理器可能还有对应的开发工具,比如 ARM 的常用 集成开发工具 ADS、IAR 和 RealView 等。在这里,大多数软件都有比较高的使用费用,但 也可以大大加快产品的开发进度,用户可以根据需求自行选择。图 4.16 是嵌入式开发的不 同阶段的常用软件。
图 1.2 嵌入式开发不同阶段的常用软件
嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分, 其中又可以分为编译和调试两 部分,下面分别对这两部分进行讲解。 1.交叉编译 . 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上 执行的代码。在第 3 章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的 CPU 所能识别的 机器代码,由于不同的体系结构有不同的指令系统。因此,不同的 CPU 需要有相应的编译器,而交叉编译 就如同翻译一样,把相同的程序代码翻译成不同 CPU 的对应可执行二进制文件。要注意的是,编译器本身 也是程序,也要在与之对应的某一个 CPU 平台上运行。嵌入式系统交叉编译环境如图 4.17 所示。

嵌入式软件设计答案

东北大学继续教育学院嵌入式软件设计试卷(作业考核线上) B 卷 学习中心:福建南平奥鹏学习中心院校学号:姓名王华仁 (共 5 页) 一、选择题(10小题,每题2分,共20分),请将答案填入下表。 1. 以下哪个不是嵌入式系统设计的主要目标? A. 低成本 B.低功耗 C. 实时要求高 D. 超高性能 2. 下面关于哈佛结构描述正确的是: A. 存储空间与IO空间分离 B. 程序存储空间与数据存储空间分离 C. 存储空间与IO空间合并 D. 程序存储空间与数据存储空间合并 3. 从层次结构来看,嵌入式系统包括: A. 硬件层 B. 板级支持包 C. 实时操作系统和应用软件 D. 以上都是 4. 下面哪一种工作模式不属于ARM异常模式? A. 快速中断模式 B. 管理模式 C. 系统模式 D. 数据访问中止模式 5. 处理器从存储器读数据的指令(加载指令)的助记符是: A. SWP B. SWPB C. LDR D. STR 6. 指令“ADD R2, R1, #10”的寻址方式为: A. 立即寻址 B. 寄存器间接寻址 C. 多寄存器寻址 D. 堆栈寻址 7. 单系统需要小量的高速缓存,最合适的存储器是: A. SRAM B. DRAM C. EEPROM D. Flash 8. AHB和VPB外设区域都是2MB,可各自分配最多()个外设。 A. 16 B. 32 C. 64 D. 128 9. 使用HOST-TARGET联合开发嵌入式系统,()不是必须的。

A. 目标系统 B. 宿主机 C. 银河麒麟操作系统 D. 交叉编译器 10. 操作系统结构不包括() A. 数据库 B. 引导系统 C. 内核 D. 根文件系统 二、判断题(10小题,每题1分,共10分),请将答案填入下表。 1. (√)嵌入式处理器的结构有哈佛结构和冯诺依曼结构之分。 2. (×)处于就绪状态的任务只能切换到运行状态。 3. (√)将模拟信号转换成数字信号的电路是DA转换器。 4. (√)在操作系统的设备管理中引入缓存,其主要目的是改善CPU和I/O设备间速度不匹配的 情况。 5. (√)ARM指令集具有高效、快速的特点,它是Thumb指令集的子集。 6. (×)Nand Flash比Nor Flash成本高,可靠性差。 7. (×)虚拟内存的主要用途是扩充存储容量。 8. (√)C语言程序可以嵌套加入汇编语言程序模块。 9. (√)操作系统中的存储管理室对内存中用户区进行管理。 10.(√)操作系统结构包括引导系统、内核和根文件系统 三、填空题(10小题,每题2分,共20分) 1. 嵌入式系统是以(应用)为中心、以(计算机技术)为基础、软件硬件可裁剪、适应应用系统 对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 2. 嵌入式系统的三要素是,嵌入、(专用)和(计算机)。 3. 嵌入式软件的体系结构通常包括:驱动层、(操作系统层)、中间层和(应用层)。 4. ARM7有两种处理器状态,分别是(ARM)状态和( Thumb)状态。 5. 嵌入式处理器的分类包括三种,分别是:(微控制器(或单片机))、嵌入式微处理器、(数字信号

嵌入式软件测试方法(精)

1、引言 随着经济的发展和科技的进步,信息技术的发展使人类进入数字时代,而伴随着计算机技术发展起来的嵌入式技术得到了巨大的发展,改变了人们的日常。随着对嵌入式产品对各方面的要求越来越高, 对嵌入式产品的性能有着决定性影响的嵌入式软件的测试显得尤为重要。 嵌入式的目的是保证软件满足需求规格说明,与非嵌入式软件的测试目的是一样的。系统失效是系统没有满足—个或多个正式需求规范中所要求的需求项,嵌入式软件有其特殊的失效判定准则。 而且嵌入式软件对可靠性的要求比较高。安全性的缺陷往往会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件、嵌入式硬件进行严格的测试、确认和验证。 一般来说,软件测试有 7个基本阶段,即单元或模块测试、集成测试、外部、回归测试、统测试、验收测试、安装测试。嵌入式软件测试在 4个阶段上进行,即模块测试、集成测试、系统测试、硬件 /软件集成测试。前 3个阶段适用于任何软件的测试,硬件 /软件集成测试阶段是嵌入式软件所特有的, 目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。 2、嵌入式软件测试环境 嵌入式软件测试的测试环境主要有两种: 1目标环境测试:基于目标的测试测试全面有效,但是消耗较多的经费和时间。 2宿主环境测试:基于宿主的测试代价较小,但是有些对环境要求高的功能和性能宿主机无法模拟, 测试无法实现。 目前的趋势是把更多的测试转移到宿主环境中进行,把宿主环境测试无法实现的复杂和独特功能放在目标环境测试。我们的重点是基于宿主环境的测试,基于目标环境的测试作为补充。

在两个环境中可以出现不同的软件缺陷,重要的是目标环境和宿主环境的测试内容有所选择。在宿主环境中,可以进行逻辑或界面的测试、以及与硬件无关的测试。在模拟或宿主环境中的测试消耗时间通常相对较少,用调试工具可以更快地完成调试和测试任务。而与定时问题有关的、中断测试、硬件接口测试只能在目标环境中进行。在软件测试周期中,基于目标的测试是在较晚的“硬件 /软件集成测试”阶段开始的,如果不更早地在模拟环境中进行白盒测试,而是等到“硬件 /软件集成测试”阶段进行全部的白盒测试,将耗费更多的财力和人力。 3、白盒测试与 白盒测试或基本代码的测试主要任务为检查程序的内部设计,或者在开发环境中进行硬件仿真,一般不必在目标硬件上进行。根据源代码的组织结构查找软件缺陷,要求测试人员对软件的结构和功能有详细深入的了解。白盒测试与代码覆盖率密切相关,可以在测试中计算出代码的覆盖率,保证测试的充分性。嵌入式软件测试通常要求有较高的代码覆盖率,要选择最重要的代码进行白盒测试。 黑盒测试在某些情况下也称为功能测试。这类测试方法根据软件的用途和外部特征查找软件缺陷,不需要了解程序的内部结构。黑盒测试不依赖代码,从实际使用的角度进行测试。黑盒测试与需求紧密相关, 需求规格说明的质量会直接影响测试的结果。在进行嵌入式软件黑盒测试时,要把系统的预期用途作为重要依据,根据需求中对负载、定时、性能的要求,判断软件是否满足这些需求规范。 4、内容 嵌入式软件测试的内容主要为:软件代码测试、编程规范标准符合性测试、代码编码规范符合性测试、开发维护文档规范符合性测试、用户文档测试。 其中软件测试服务范围包括:系统级测试、应用测试、中间件测试、 BSP 及驱动程序测试、嵌入式硬件设计测试。

相关文档
相关文档 最新文档