当前位置:文档之家› 用vs2013 velt-0.1.4进行嵌入式开发

用vs2013 velt-0.1.4进行嵌入式开发

用vs2013 velt-0.1.4进行嵌入式开发
用vs2013 velt-0.1.4进行嵌入式开发

用vs2013+velt-0.1.4进行嵌入式开发

插件安装

1.1什么是VEL T

VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发。利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译,并根据编译时的错误信息正确定位到源码。目前的版本是0.1.4,仅支持vs2013。此插件可以在CSDN下载频道下载(https://www.doczj.com/doc/6b8076284.html,/detail/lights_joy/8429771)。下面是它的基本功能:

1.支持x86 Linux,海思hi3516/hi3520,MinGW这几个平台,提供这几个平台的项目模

板。

2.完成UBOOT的编译,并根据编译的错误信息自动定位到相应的文件位置。

3.完成LINUX内核的编译,并根据编译的错误信息自动定位到相应的文件位置。

4.在VS下完成Linux内核的配置。

5.不使用Makefile进行Linux应用程序的编译。

6.使用Makefile进行Linux应用程序的开发。

7.使用SSH连接目标机器并用gdb进行应用程序的调试。

8.使用Telnet连接目标机器并用gdb进行应用程序的调试。

9.在VS中集成Linux终端(Poderosa),支持SSH/Telnet/Com,在打开终端时自动将VS的变量导出为

bash里的变量,如ProjectDir等。

1.2VEL T的基本原理

VELT本身并不包含任何编译工具,它所做的工作仅仅是把VS2013这个前端和不同的GNU编译器连接起来而已,真正的编译与调试仍然由交叉编译工具完成!

在进行代码编译的时候,VELT采用的是远程编译的方法,当VS进行编译操作的时候,VELT使用SSH登录到Linux主机系统中进行编译,再分析编译过程中产生的信息,将之转换为vs能够识别的信息,这样VS

就可以在IDE中正确定位错误发生的文件!

VELT依赖于Linux的samba或者虚拟机的共享目录功能来实现项目文件的共享,不支持用scp将文件上传到Linux后进行编译。

在调试这一块,VELT目前仅能支持Linux下console应用程序的调试,且只能使用gdb,不支持gdbserver,其调试引擎的结构为:

如上图所示,VELT在WINDOWS端运行了两个辅助程序。一个是RemoteConsole,这个程序的主要作用是显示远端程序的输出,并接受用户输入传送给远端。另一个是python解释器,这个解释器用于完成SSH/TELNET/COM连接,并负责调用远端Linux上的gdb。这两个应用程序仅当启动调试的时候才运行,平常并不使用它。

当启动项目调试时,VC调试引擎将加载RemoteConsole.exe,由于这是一个WINDOWS的本地程序,所以VS可以正常加载。当VC引擎启动时,VELT扩展将接收到此事件,并调用自己的调试引擎,在这个调试引擎中,它将通过网络连接RemoteConsole,以控制GDB的运行并接收gdb的事件,将之反映到IDE中。

1.3开发环境

下面是一个典型的嵌入式开发环境配置:

主机开发环境:

系统:WIN8 64位

开发工具:vs2013 + velt-0.1.4

虚拟机:Vmware workstation-11.0。

编译主机开发环境:

虚拟机的系统用于交叉编译和嵌入式开发中各种服务的提供。

操作系统:RHEL-6.3,此虚拟机仅用于开发,不考虑其安全性的配置。

开发工具:gcc、不同平台下的交叉编译工具链。

系统服务:开启tftp、samba、ftp、ssh

目标机:想使用的平台,如海思、TI、ADI等平台,或者虚拟机的Linux。

连接方式:telnet / ssh / com

调试方式:gdb / gdbserver

1.4目录共享

首先将windows目录通过vmware的共享目录功能共享给Linux,如f:\work,在Linux下看到的目录就是/mnt/hgfs/share/work。

其次将Linux下的目录通过samba服务共享给windows,如/work,映射到windows下的z:\,这里需要注意的是samba的帐号和我们后面用SSH登录的帐号应当一致,避免由于权限问题造成不必要的干扰。

当进行uboot和linux内核的开发时,代码只能放在linux的虚拟硬盘中,而不能放在windows系统中,因为它们需要使用符号链接,也需要区分大小写。

而在进行普通应用程序开发时,如果没有使用符号链接,只需要将代码放在windows目录下,这样可以加快vs的代码分析速度。

1.5Sdf文件位置

由于VS2013浏览信息放在SDF文件中,而项目文件可能放在虚拟机的共享目录中,因此需要更改SDF文件的路径,务必保证它位于windows直接管理的硬盘上,否则在编译大项目时将导致运行速度缓慢。

1.6VEL T安装

下面开始安装VELT插件:

1、解开VELT的压缩包,放到某个目录下,如我的目录是:F:\projects\src\gdb2012\EmbedLinux

此目录应当避免空格与中文文件名!

2、在环境变量中添加一个叫EMBEDLINUX_ROOT的环境变量:

注意路径结尾的反斜杠。

3、安装release目录下的EmbedLinux.Installer-0.1.4.vsix:

安装完成后应当可以在vs的帮助信息中看到这个插件:

也可以在工具->扩展和更新中看到:

4、将msbuild\Platforms目录下的所有文件复制到:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms

5、打开VS的新建项目窗口,可以看到新添加的三个平台:

至此安装完成!

进行海思平台UBOOT 的开发

本文讨论用它来进行海思平台的UBOOT开发。在开发前应当先在Linux下安装好海思SDK 中的交叉编译器。依照VELT的要求将Linux下的/work/通过samba共享出来,在Windows下映射为Z:\。

1.1准备uboot并共享

解压缩海思SDK中提供的u-boot-2010.06.tgz,将其解压到/work/projects/test,由于/work目录已经通过samba共享给windows,因此这个路径在windows下看起来就是Z:\projects\test\

1.2创建uboot工程

接下来在VS中新建一个Hisilicon平台的uboot工程:

注意这里选择的路径Z:\projects\test,这是我们存放uboot的根目录。

当然,这个项目也不是一定要放在这个位置,只是VELT的项目模板是这么配置的,我们为了偷懒少配置路径,也就选择了和它一样的路径。

1.3配置编译主机的相关信息

接下来我们需要配置编译主机的信息,打开项目属性页:

这里的信息需要根据你的实际配置进行更改!

1.4编译uboot

在进行上述配置后就可以编译uboot了,第一次编译应当选择清理或者重新生成操作,这样VELT会先执行make godeyes_config操作,完成系统配置。

很轻松吧!

1.5修改编译命令

有时我们需要更改make的命令,此时可以通过项目属性中的Make页来完成:

在这里可以写上自己需要的编译命令。

VELT在登录编译主机后将执行这些bash命令。

注意这里的命令是在编译主机上执行的bash指令,而不是windows下的命令!!!

同样,重新生成和清理的命令也可以自行修改。

1.6IntelliSense配置

在UBOOT中,为了让IntelliSense更准确地进行代码分析,我们需要告诉它配置文件的所在,如默认情况下是u-boot-2010.06\include\configs\godeyes.h,在IntelliSense的强制包含文件中加上此文件:

再加上两个预处理器的定义:

这里的路径和预处理器定义都不会影响到UBOOT的编译行为,只是让VS能够正确分析我们的代码而已!

1.7手工编译

有时我们需要登录编译主机进行一个手工操作,此时可以使用VELT提供的连接编译主机功

能:

VELT会打开一个bash窗口:

可以看到,VELT已经将部分的变量导出为Bash的变量了,我们可以方便地使用这些变量,如:

cd $ProjectDir

就可以进入我们的项目文件所在的目录了。

而且可以使用bash的代码补全功能访问这些变量,如输入$Pr并按tab时,bash会自动将其补全为$ProjectDir

1.8项目文件添加

VELT的项目模板只添加了少数几个文件做为示例,可以根据自己的需要将UBOOT的其它文件添加进来!

1.9错误处理

当开发过程中有语法错误时,VELT可以正确定位到错误所在的位置:

双击这个错误行就可以自动打开文件进行修改了!

进行海思平台Linux内核的开发

本文讨论用它来进行海思平台的Linux内核开发。在开发前应当先在Linux下安装好海思SDK中的交叉编译器。依照VELT的要求将Linux下的/work/通过samba共享出来,在Windows下映射为Z:\。

1.1准备内核代码并共享

解压缩海思SDK中提供的linux-2.6.35.tgz,将其解压到/work/projects/test,由于/work目录已经通过samba共享给windows,因此这个路径在windows下看起来就是Z:\projects\test\

1.2创建内核工程

接下来在VS中新建一个Hisilicon平台的内核工程:

注意这里选择的路径Z:\projects\test,这是我们存放内核代码的根目录。

当然,这个项目也不是一定要放在这个位置,只是VELT的项目模板是这么配置的,我们为了偷懒少配置路径,也就选择了和它一样的路径。

1.3配置编译主机的相关信息

接下来我们需要配置编译主机的信息,打开项目属性页:

这里的信息需要根据你的实际配置进行更改!

1.4内核配置

在第一次编译之前,必须配置内核参数并保存:

不论有没有进行修改,都必须保存一次配置!!

1.5编译内核

在进行上述配置后就可以编译了,直接按F7生成项目。

很轻松吧!

这里有一个小BUG,当编译有警告时,VEL T也认为生成过程有错误!

1.6修改编译命令

有时我们需要更改make的命令,此时可以通过项目属性中的Make页来完成:

在这里可以写上自己需要的编译命令。

VELT在登录编译主机后将执行这些bash命令。

注意这里的命令是在编译主机上执行的bash指令,而不是windows下的命令!!!

同样,重新生成和清理的命令也可以自行修改。

1.7加快IntelliSense的分析速度

在VELT项目模板的IntelliSense配置中,已经加上了linux内核的include目录,但由于这些文件是通过SAMBA共享的,严重影响了IntelliSense的速度,因此我们将其复制到windows 下,然后修改IntelliSense的包含目录,让其指向本地的文件:

这里的路径和预处理器定义都不会影响到UBOOT的编译行为,只是让VS能够正确分析我们的代码而已!

经过这个操作可以发现IntelliSense分析代码的速度明显加快!!

1.8手工编译

有时我们需要登录编译主机进行一个手工操作,此时可以使用VELT提供的连接编译主机功能:

VELT会打开一个bash窗口:

可以看到,VELT已经将部分的变量导出为Bash的变量了,我们可以方便地使用这些变量,如:cd $ProjectDir

就可以进入我们的项目文件所在的目录了。

而且可以使用bash的代码补全功能访问这些变量,如输入$Pr并按tab时,bash会自动将其补全为

ARM嵌入式系统基础与开发教程丁文龙

第1章嵌入式系统概述 1.填空题 (1)嵌入式系统硬件平台嵌入式软件 (2)硬件抽象层HAL 板级支持包BSP 设备驱动程序 (3)嵌入式微处理器嵌入式微控制器嵌入式片上系统SoC 2.选择题 (1)B (2)A B D (3)D 3.简答题 (1)什么是嵌入式系统?列举几个熟悉的嵌入式系统的产品。 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。常见的有汽车、手机、MP3等等。 (2)嵌入式系统由哪几部分组成? 嵌入式系统从大的方面分嵌入式系统硬件平台和嵌入式软件两大部分,其中软件部分又具体分为若干层次。对于包含有操作系统的嵌入式系统来讲,嵌入式系统软件结构包含4个层次:设备驱动层、实时操作系统RTOS层、应用程序接口API层、应用程序层。 (3)简述嵌入式系统的特点。 系统内核小;专用性强;系统精简;软件固化;嵌入式软件开发要想走向标准化,就必 须使用多任务的操作系统;嵌入式系统开发需要开发工具和环境。

第2章ARM体系结构 1.填空题 (1)Cortex-R4处理器Cortex-A8处理器 (2)ARM Thumb (3)R13 R14 R15 (4)8 16 32 2.选择题 (1)A C D (2)A (3)B C D 3.简答题 (1)简述ARM可以工作的几种模式。 ARM体系结构支持7种处理器模式:用户模式、快中断模式、中断模式、管理模式、 中止模式、未定义模式和系统模式。 (2)ARM7内部有多少个寄存器? 在ARM7TDMI处理器内部有37个用户可见的32位寄存器,其中31个通用寄存器,6个状态寄存器。 (3)描述一下如何禁止IRQ和FIQ的中断? 在一个特权模式下,都可通过置位CPSR中的I位来禁止IRQ。 在一个特权模式中,可通过置位CPSR中的F标志来禁止FIQ异常。 (4)请描述ARM7TDMI进入异常或退出异常时内核有何操作? 当异常发生时,ARM处理器尽可能完成当前指令(除了复位异常)后,再去处理异常,并执行如下动作: ①进入与特定的异常相应的操作模式; ②将引起异常指令的下一条指令的地址保存到新模式的R14中; ③将CPSR的原值保存到新模式的SPSR中; ④通过设置CPSR的第7位来禁止IRQ;如果异常为快中断,则要设置CPSR的第6位禁止快中断; ⑤给PC强制赋向量地址值。 退出异常时: ①将LR中的值减去偏移量后移入PC,偏移量根据异常的类型而有所不同; ②将SPSR的值复制回CPSR; ③清零在入口置位的中断禁止标志。

Unity3D经典入门教程(精)

一、Unity基础 本部分是你开始Unity的关键。、这里将解释Unity的界面,菜单项,使用资源,创建场景,和发布。当你完全阅读了该部分后,你将能够理解Unity是如何工作的,以及如何使其更加有效的工作,和如何将简单的游戏放置在一起。 1. 界面学习 现在我们开始学习Unity,如果你还没有打开 Unity,你可以通过双击位于Application->Unity文件夹中的 Unity图标来运行它,当它第一次运行时你将看到如下的场景: Unity运行时的缺省场景,如果你打开过任何实例,你的屏幕会与上图不同 有很多需要学习的东西,让我们花费点时间来观察理解上述界面。我们将介绍每一个接口 元素。 概要主窗口的每一个部分都被称为视图(View)。在 Unity中有多种类型的视图,但是,你

不需要同时看见所有的视图。不同的布局模式(Layout modes)包含的视图是不同的。通过单击布局下拉控件来选择不同的布局,该控件位于窗口的右上角。 布局模式选择下拉列表 现在,单击布局选择,并单击Animation,切换到动画布局 (Animation layout)。还可以从菜单中选择Window->Layouts->Animation来切换。动画布局包含所有的视图,这是昀好的用来介绍它们的方法。

通过视图左上角的名称你可以迅速的分辨这些视图。这些视图是:场景视图(Scene View)-用于放置物体游戏视图(Game View)-表示游戏在运行时的外观层次视图(Hierarchy)-当前场景中的游戏物体的列表工程视图(Project)-显示当前打开工程中所有可用的物体和资源检视视图(Instpector)-显示当前选中物体的细节和属性时间线(Timeline)-用于为当前选中物体创建基本的时间线动画 场景视图(Scene View) 场景视图 场景视图(Scene View)是一个可交互的沙盘。你将使用它来选择并在场景中定位所有的游戏物体(GameObjects),包括玩家,摄像机,敌人等。在场景视图中操纵并修改物体是Unity非常重要的功能。这是昀好的通过设计者而不是玩家的角度来查看场景的方法。在场景视图中你可以随意移动并操纵物体,但是你应该知道一些基本的命令以便有效的使用场景视图。 第一个你应该知道命令是FrameSelected命令。这个命令将居中显示你当前选中的物体。你可以在层次视图(Hierarchy)单击任何物体,然后移动你的鼠标到场景视图上并按F键。场景视图将移动以居中显示当前选择的物体。这个命令是非常有用的,你将在场景编辑的

arm嵌入式系统基础教程课后答案.doc

arm 嵌入式系统基础教程课后答案【篇一:arm 嵌入式系统基础教程习题答案周立功】 /p> 1 、举出3 个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的 专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(embedded microprocessor unit, empu) 嵌入式微控制器(microcontroller unit, mcu) 嵌入式dsp 处理器(embedded digital signal processor, edsp) 嵌入式片上系统(system on chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实 时操作系统提高了系统的可靠性。其次,提高了开发效率,缩短了 开发周期。再次,嵌入式实时操作系统充分发挥了32 位cpu 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务 是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结 束项目 4 个阶段。识别需求阶段的主要任务是确认需求,分析投资 收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定 期监控进展,分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系 统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行 的初期,在客户和开发团队都还未投入大量资源之前,风险的评估

项目开发计划书(模板)

项目开发计划书 文档状态:文档编号: [ ] Draft 编撰: [ √] Released 编撰日期: [ ]Modifying 保密级别: 文档版本: 1.0.0 项目名称 (The English Name ) 项目开发计划书 XXX项目小组

- 1 -

修订表 编号生成版本修订人修订章节与内容修订日期1 2 3 4 5

审批记录 版本审批人审批意见审批日期1.0.0

目录 2 引言 (1) 1 1.1 编写目的 (1) 1.2 项目背景 (1) 1.3 术语和缩写词定义 (1) 1.4 参考资料 (1) 3 2 项目概述 (1) 2.1 工作内容 (1) 2.1.1 项目软件过程定义 (1) 2.1.2 定义生命周期 (2) 2.1.3 任务简述 (2) 2.1.4 软件规模估计 (2) 2.1.5 工作量估算 (2) 2.1.6 关键计算机资源 (2) 2.1.7 软件工程设备和支持工具 (2) 2.1.8 风险估计 (3) 2.2 度量目标 (3) 2.3 条件和限制......................................................................................................................... 错误!未定义书签。 2.4 产品 (5) 2.4.1 软件工作产品 (5) 2.4.2 运行环境 (5) 2.4.3 服务 (5) 2.4.4 验收标准 (5) 4 3 实施计划 (5) 3.1 任务分解和进度安排 (5) 3.2 沟通 (6) 3.3.1 相关组或个人职责 (6) 3.3.2 组间关系 (6) 3.4 预算 (7) 5 4 专题计划要点 (7) 6 附录 (7) 1

[学习引导]4412开发板之嵌入式技术学习步骤及项目案例

嵌入式技术的学习步骤(基于iTOP-4412) 北京迅为电子有限公司

嵌入式技术的知识体系 ?适用于iTOP-4412开发板及配套教程的学习步骤 ?嵌入式的知识面广泛,初学者难于入门 ?本节阐述嵌入式技术学习步骤,适用于初学者 ?力图起到提纲挈领的作用,在大量学习资料中有一个比较清晰的脉络?最后会介绍一个实战案例

首先要搞明白几个重要文件的意义?学习方法:首先要掌握基础架构 ?对于架构来说,最基本的东西就是要搞清楚几个概念(几个文件的意义): –bootloader引导程序(UBOOT) –linux操作系统内核(kernel) –文件系统(可能包含2个文件) ?推荐大家首先研读:“澄清几个基本概念-迅为精英版聊天记录.doc” –该文件在QQ群共享中 ?开发编译环境的搭建、源代码的编译和烧写、应用和驱动的建立等等都是围绕这几个文件展开的!

第二步:搭建开发编译环境 ?64位WIN7系统--》虚拟机--》ubuntu ?对于初学者,推荐按照教程的要求和步骤来做,这样少走弯路,效率更高 ?其他系统不是不可以,但可能会遇到各种安装和编译过程的问题 ?熟练掌握以后,再去创新,这时才可以去做各种不同的尝试 ?搭建开发环境,有的时候并不顺利,需要克服一些安装问题 ?迅为已经把安装步骤做了很大程度的简化,比如虚拟机上的ubuntu镜像,直接拷贝进去就可以用了,避免了通过网络安装各种插件 ?搭建完成,就可以按照教程学习源代码编译和系统的烧写。 ?再次强调:这些工作都是围绕那三个文件展开的(实际是4个文件) ?Linux或Android系统的编译和烧写都是依赖于这个开发环境的。

6、汇编学习从入门到精通(荐书)

汇编学习从入门到精通Step By Step 2007年12月15日星期六00:34 信息来源:https://www.doczj.com/doc/6b8076284.html,/hkbyest/archive/2007/07/22/1702065.aspx Cracker,一个充满诱惑的词。别误会,我这里说的是软件破解,想做骇客的一边去,这年头没人说骇客,都是“黑客”了,嘎嘎~ 公元1999年的炎热夏季,我捧起我哥留在家的清华黄皮本《IBM-PC汇编语言程序设计》,苦读。一个星期后我那脆弱的小心灵如玻璃般碎裂了,为了弥补伤痛我哭爹求妈弄了8k大洋配了台当时算是主流的PC,要知道那是64M内存!8.4G硬盘啊!还有传说中的Celeon 300A CPU。不过很可惜的是在当时那32k小猫当道的时代,没有宽带网络,没有软件,没有资料,没有论坛,理所当然我对伟大的计算机科学体系的第一步探索就此夭折,此时陪伴我的是那些盗版光盘中的游戏,把CRACK_XXX文件从光盘复制到硬盘成了时常的工作,偶尔看到光盘中的nfo 文件,心里也闪过一丝对破解的憧憬。 上了大学后有网可用了,慢慢地接触到了一些黑客入侵的知识,想当黑客是每一个充满好奇的小青年的神圣愿望,整天看这看那,偷偷改了下别人的网页就欢喜得好像第一次偷到鸡的黄鼠狼。 大一开设的汇编教材就是那不知版了多少次的《IBM-PC汇编语言程序设计》,凭着之前的那星期苦读,考试混了个80分。可惜当时头脑发热,大学60分万岁思想无疑更为主流,现在想想真是可惜了宝贵的学习时间。 不知不觉快毕业了,这时手头上的《黑客防线》,《黑客X档案》积了一大摞,整天注来注去的也厌烦了,校园网上的肉鸡一打一打更不知道拿来干什么。这时兴趣自然转向了crack,看着杂志上天书般的汇编代码,望望手头还算崭新的汇编课本,叹了口气,重新学那已经忘光了的汇编语言吧。咬牙再咬牙,看完寻址方式那章后我还是认输,不认不行啊,头快裂了,第三次努力终告失败。虽然此时也可以爆破一些简单的软件,虽然也知道搞破解不需要很多的汇编知识,但我还是固执地希望能学好这门基础中的基础课程。 毕业了,进入社会了,找工作,上班,换工作成了主流旋律,每天精疲力尽的哪有时间呢?在最初的中国移动到考公务员再到深圳再到家里希望的金融机构,一系列的曲折失败等待耗光了我的热情,我失业了,赋闲在家无所事事,唯一陪伴我的是那些杂志,课本,以及过时的第二台电脑。我不想工作,我对找工作有一种恐惧,我靠酒精麻醉自己,颓废一段日子后也觉得生活太过无聊了,努力看书考了个CCNA想出去,结果还是被现实的就业环境所打败。三年时间,一无所获。 再之后来到女朋友处陪伴她度过刚毕业踏入社会工作的适应时期,这段时间随便找了个电脑技术工作,每月赚那么个几百块做生活费。不过这半年让我收获比较大的就是时间充裕,接触到了不少新东西,我下定决心要把汇编学好,这时我在网上看到了别人推荐的王爽《汇编语言》,没抱什么希望在当当网购了人生中的第一次物,19块6毛,我记得很清楚,呵呵。 废话终于完了,感谢各位能看到这里,下面进入正题吧。

ARM嵌入式系统基础教程复习

《嵌入式系统基础教程》复习 1.什么是嵌入式系统?其特点有些什么? 答:嵌入式系统是“以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。” 特点:1)是专用的计算机系统,用于特定的任务; 2)资源较少,可以裁减; 3) 功耗低,体积小,集成度高,成本低; 4)使用实时操作系统; 5) 可靠性要求更高,具有系统测试和可靠性评估体系; 6)运行环境差异大 7)大部分程序固化在ROM中; 8) 较长的生命周期; 9)嵌入式微处理器通常包含专用调试电路 2.嵌入式系统的BooTLoader的功能是什么? 答:BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码。通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。(对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,但在系统启动时都必须运行BootLoader,为系统运行准备好软硬件环境。) 3.目前嵌入式操作系统有哪些? 答:1)μC/OS-II 嵌入式操作系统内核;2)VxWorks嵌入式实时操作系统;3)WinCE操作系统;4)Linux操作系统;5)Symbian操作系统 4.构造嵌入式开发环境有哪几种形式? 答:1)交叉开发环境;2)软件模拟环境;3)评估电路板 5.嵌入式系统开发的基本流程? 答:1)系统定义与需求分析; 2)系统设计方案的初步确立; 3)初步设计方案性价比评估与方案评审论证; 4)完善初步方案、初步方案实施; 5)软硬件集成测试; 6)系统功能性能测试及可靠性测试。 6.什么是可编程片上系统? 答:用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统SOPC。它是一种特殊的嵌入式系统,首先它是SOC,即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。 7.有时要使用Thumb技术的原因 答:(Thumb指令集是把32位的ARM指令集的一个子集重新编码后形成的一个特殊的16位指令集。)在性能和代码大小之间取得平衡,在需要较低的存储代码时采用Thumb指令系统用Thumb指令编写最小代码量的程序(能够很好的解决代码长度的问题),却取得以ARM代码执行的最好性能,可以带来低功耗,小体积,低成本。 8.ARM处理器的工作模式有哪几种? 答:1)正常用户模式(user); 2)快速中断模式(fiq); 3)普通中断模式(irq); 4)操作系统保护模式(svc)或管理模式; 5)数据访问中止模式(abt); 6)处理未定义指令的未定义模式(und); 7)运行特权级的操作系统任务的系统模式(sys)。 9.寄存器R13,R14,R15的专用功能各是什么? 答:1)寄存器R13保存堆栈指针SP;

软件工程项目管理计划书 完整版

储蓄业务项目管理计划书 1.简介 项目概述 本项目要开发一个银行系统,系统一共分为储蓄业务、贷款业务、外汇交易、网上银行、信用卡业务和系统管理六个子系统。本团队负责其中的有关储蓄业务 的子系统。通过团队合作开发整个子系统,使团队成员获得软件工程开发的实际训练。本系统采用目前主流的B/S开发架构,将与整个银行系统一起发布。不单独发布。交付的产品包括可执行的文件、源代码、技术文档与用户使用手册等。本系统的开发过程中的主要工作是子系统需求分析、系统总体设计、子系统源代码开发、子系统测试、交付团长进行最后的集成、整个系统的测试。关键里程碑是制定项目管理计划书、制定需求设计规格说明书初稿、制定系统设计报告的初稿、进行子系统运行情况的检查与测试、进行系统集成后的运行情况的检查与测试。项目所需工具是个人电脑和开发工具。进度为11周,工程量为3人/天。 项目范围说明 (1)提交文档:项目管理计划、需求规格说明,设计报告、测试报告、用户使用手册和项目个人总结。其中项目总结为每人一份,每个小组所有成员的总结装订在一起;其余文档每组提交一份。每个团队可将各小组的文档综合到一起,各小组也可自行分开提交,具体方式由团队内部协商确定。所有文档需要提交电子版和打印稿。 (2)源程序检查:一共两次。第一次检查每个小组的子系统运行情况。第二次检查每个团队内六个小组集成后完整的银行系统运行情况,检查完成后需要提交程序源文件和可执行的系统。程序检查安排在上机时间进行。 软件项目计划书的演化 软件项目计划书在第三周周末前经由小组讨论、共同撰写、汇总整合三步骤形成初稿,第四周以后根据项目的进展可以对其进行修改,需要有组员提出修改意,在全体会上讨论通过,并由组长整理修改意见并作出相应的修改。其余组员同步获得更新稿。 2.项目组织管理 过程模型 表1.过程模型表 团队的分工与合作

嵌入式经典书籍100册

嵌入式工程师必读100本专业书籍 ——从小白到大牛你只差这100本书《大话数据结构》 《鸟哥的linux私房菜》 《疯狂android讲义》 《第一行代码》 《linux内核设计与实现》 《驱动设计开发》 《linux内核解密》 《unix环境高级编程》 《linux内核设计与实现》 《essential C++》 《嵌入式linux》 《linux设备驱动》 《c语言深度解剖》 《linux下的c编程》 《C Primer Plus(第五版)》 《ARM体系结构与编程(第二版)》 《lINUX设备驱动开发详解(第三版)》 《android开发艺术探讨》 《c++plus》 《Unix环境高级编程》 《与大数据同行——学习和教育的未来》 《用户体验的要素》 《编程与艺术》 《ARM嵌入式体系结构与接口技术》 《cortex-m0接口编程》 《C语言程序设计:现代方法》 《C++ Primer》

《数据结构》(严蔚敏) 《算法导论》 《Linux设备驱动开发》 《代码大全》 《深入理解计算机系统》 《UNIX环境高级编程》 《计算机安全原理》 《UNIX网络编程》 《HeadFirst设计模式》 《linux驱动》(宋保华) 《C++ primer4》 《qt5精彩实例》 《ldd3》 《C++高级编程》 《c语言教程》 《实战linux编程精髓》 《ARM教程》 《JAVA编程思想》 《HTML+CSS网页设计与布局从入门到精通》《C语言深度解剖》 《深度实践嵌入式Linux系统移植》 《unix高级编程》 《c嵌入式一站式教学》 《编译原理》 《深度实践嵌入式Linux系统移植》《UNIX环境高级编程》 《linux网络编程》 《C语言程序设计》 《unix环境高级编程》 《嵌入式linuxc语言程序设计基础教程》

孟祥莲嵌入式系统原理及应用教程部分习题答案

习题1 1. 嵌入式系统的概念的是什么?答:嵌入式系统是以应用为中心,以计算机技 术为基础,软、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。(嵌入式系统是嵌入式到对象体系中的,用于执行独立功能的专用计算机系统。) 2. 嵌入式系统的特点是什么? 答:系统内核小;专用性强;运行环境差异大;可靠性要求高;系统精简和高实时性操作系统;具有固化在非易失性存储器中的代码嵌入式系统开发和工作环境 4. 嵌入式系统的功能是什么?答:提供强大的网络服务小型化,低成本,低 功能;人性化的人机界面;完善的开发平台 5. 嵌入式系统的硬件平台由哪些部分组成?答:嵌入式系统的硬件是以嵌入式处理器为核心,由存储器I/O 单元电路,通信模块,外部设备必要的辅助接口组成的。 7. 嵌入式操作系统的主要特点是什么?答:体积小;实时性;特殊的开发调试环境。 8. 叙述嵌入式系统的分类。答:按嵌入式微处理器的位数分类可以分为4 位、 8 位、16 位、32 位和64 位等;按软件实时性需求分类可以分为非实时系统(如PDA), 软实时系统(如消费类产品)和硬实时系统(如工业实时控制系统)按嵌入式系统的复杂程度分类可以分为小型嵌入式系统,中型嵌入式系统和复杂嵌入式系统。 习题2 处理器和工作状态有哪些?

答:ARM犬态:此时处理器执行32位的的字对齐的ARS旨令。 Thumb犬态:此时处理器执行16位的,半字对齐的Thumb旨令 2.叙述ARM9内部寄存器结构,并分别说明R13 R14 R15寄存器的 作用。 答:共有37个内部寄存器,被分为若干个组(BANK,这些寄存器包括31个通用寄存器,包括程序计数器(PC指针)6个状态寄存器。R13用作堆栈指针,R14称为子程序链接寄存器,R15用作程序计数器。处理器的工作模式有哪些? 答:用户模式:ARM处理器正常的程序执行状态。 快速中断模式:用于高速数据传输或通道处理 外部中断模式:用于通用中断处理管理模式:操作系统使用的保护模式数据访问终止模式:当数据或指令预期终止时进入该模式,可用于虚拟存储器及存储保护 系统模式:运行具有特权的操作系统任务 未定义指令终止模式:当未定义的指令执行时进入该模式,可用 于支持硬件协处理器的软件仿真。 微处理器支持的数据类型有哪些? 答:ARM微处理器中支持字节(8位)、半字(16位),字(32 位)

项目开发计划书模板

1、引言 1.1、编写目的 为了更好地完成东北电力大学校友录管理信息系统项目,为项目的进一步开发工作作出计划,同时确定出工程实施计划与进度,并以此作为分项详细设计与具体实施的依据,编写本报告。本报告应提交给东北电力大学信息工程学院一份以共同协商并配合下一步工作,也作为进行下一步项目开发工作的依据。 1.2、背景 待开发的软件系统为校友录管理信息系统。本项目任务由东北电力大学信息工程学院提出,东北电力大学挑战者工作室负责开发,用户为东北电力大学历届毕业生以及信息工程学院。 1.3、定义 列出本文件中用到的专门术语的定义和外文首字母词的原词组。 项目开发计划 MIS 管理信息系统 C/S 客户机/服务器 B/S 浏览器/服务器 1.4、参考资料 1.4.1 《校友录管理信息系统可行性分析报告》 1.4.2 双方开发合同及技术附件 1.4.3 《中华人民共和国计算机信息系统安全保护条例》 1.4.4 《计算机软件开发规范(GB8566-88)》 1.4.5 《计算机软件产品开发文件编制指南(GB8567-88)》 1.4.6 中华人民共和国身份证标准代码表 2、项目概述 2.1、工作内容 主要工作内容:

1、到东北电力大学信息工程学院、东北电力大学校友信息管理办公 室进行业务调研; 2、整理用户需求,生成用户需求分析报告; 3、对系统进行详细设计,提供详细设计方案报告; 4、进行校友录管理信息系统进行编码; 5、进行内部测试; 6、进行系统应用调试; 7、进行系统后期维护。 2.2、主要参加人员 专家组成员: 项目组成员:

9 刘洋 10 刘晓 测试员 11 胡云飞 12 美工何鑫、衣秀文 13 文档录入员刘洋 2.3、产品 2.3.1、程序 DBMS选用微软公司的Access2000,前台开发工具选用Adobe公司的网页开发工具Dreamweaver、Firework和JavaScript。 2.3.2、各子系统功能简介 2.3.2.1前台服务系统: 用户的注册、登陆、密码找回、密码修改、个人信息修改、个人消息信箱管理、对网站服务意见的发送。 班级的注册、登陆、信息修改、成员管理、论坛的使用与管理、其他附加服务(投票、点歌等)。 2.3.2.1前台服务系统: 供系统管理员进行班级注册批准、班级信息管理、用户信息管理等操作。 2.3.2、文件 用户操作指南 开发工具安装与使用指南 数据库开发指南 应用软件手册 2.3.3、服务 东北电力大学挑战者工作室为校友录系统的建设与开通提供全面的技术支持与服务:

嵌入式软件工程师学习指南

嵌入式软件工程师学习 1. 嵌入式软件课程体系 自学嵌入式确实不大现实(当然也不是说没有这个可能),毕竟嵌入式难度也是比较大的。嵌入式的应用主要是几个方向: 一是系统开发:侧重开发环境搭建、内核原理、交叉编译等; 二是嵌入式Linux应用开发:侧重Linux应用编程、内核编译、系统调用; 三是底层驱动开发:侧重嵌入式Linux系统下的驱动开发、内核的深入分析。 不过初进门者主要往系统开发和应用开发发展,有了相关工作经验再进一步向底层驱动靠。 嵌入式课程的目标,想自学完课程,要掌握以下知识点: ◆Linux命令、工具和C编程基础 ◆嵌入式Linux C语言强化 ◆嵌入式Linux上的C编程训练 ◆Linux高级编程及编程训练 ◆嵌入式ARM处理器体系结构及编程训练 ◆嵌入式Linux内核环境搭建和编程训练 ◆嵌入式Linux驱动理论及驱动程序开发训练 ◆Android应用研究和系统开发 ◆Android体系结构和系统移植 ◆嵌入式ARM Linux项目实践和训练 嵌入式软件方面最重要的课程包括: (1)嵌入式微处理器结构与应用 这是一门嵌入式硬件基础课程,我院用这门课取代了传统的“微机原理与接口”课程(目前国内已有少部分高校IT专业这样做了,因为讲x86微机原理与接口很难找到实际用处,只为教学而已)。我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM 处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书 (xxx Specification),您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式实验室10月份建好后,您做了一些实验后就会觉得看得见摸得着。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C 语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要靠汇编写程序(我看到过很多公司是这样做的)。当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人

周立功-ARM嵌入式系统基础教程课后习题答案11

第一章 思考与练习 1、举出3个书本中未提到的嵌入式系统的例子。 答:红绿灯控制,数字空调,机顶盒 2、什么叫嵌入式系统 嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系 统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、什么叫嵌入式处理器?嵌入式处理器分为哪几类? 嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。 嵌入式微处理器(Embedded Microprocessor Unit, EMPU) 嵌入式微控制器(Microcontroller Unit, MCU) 嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP) 嵌入式片上系统(System On Chip) 4、什么是嵌入式操作系统?为何要使用嵌入式操作系统? 是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。 其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。 第二章 1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么? 项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。 识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。 提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。 执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展, 分析项目偏差,采取必要措施以实现目标。 结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。 2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险? 在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。 需求风险;时间风险;资金风险;项目管理风险 3、何谓系统规范?制定系统规范的目的是什么? 规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。 4、何谓系统规划?为何要做系统规划 系统规划就是拟定一个开发进程,使项目在合理的进程范围中逐渐建构完成。其目地是让客户可以进一步地掌握系统开发的进程,并确定检查点,以让双方确定项目是否如预期中的进度完成。 5、为什么在项目结束前需要进行项目讨论? 项目的讨论一个项目进行的反馈机制。通过这一个程序,项目团队的经验才可以被记录 下来,也就是说,这是一个撰写项目历史的过程。 第三章 1、ARM7TDMI中的T、D、M、I的含义是什么? 64 位乘法指令(带M 后缀的)、支持片上调试(带D 后缀的)、高密度16 位的Thumb 指令机扩展(带T 后缀的)和EmbededICE 观察点硬件(带I 后缀的) 2、ARM7TDMI采用几级流水线?使用何种存储器编址方式? 三级流水线(取指译码执行);使用了冯·诺依曼(V on Neumann )结构,指令和数据共用一条 32 位总线。 3、ARM处理器模式和ARM处理器状态有何区别? 处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。 4、分别列举ARM的处理器模式和状态。 状态: ARM 状态32 位,这种状态下执行的是字方式的ARM 指令

《ARM嵌入式系统基础教程》试题及答案

《ARM嵌入式系统基础教程》试题及答案 一、选择题 1、以下说法不正确的是(B )。 A、任务可以有类型说明 B、任务可以返回一个数值 C、任务可以有形参变量 D、任务是一个无限循环 2下列描述不属于RISC计算机的特点的是(C)。 A.流水线每周期前进一步。B.更多通用寄存器。 C.指令长度不固定,执行需要多个周期。 D.独立的Load和Store指令完成数据在寄存器和外部存储器之间的传输。 3 存储一个32位数0x2168465到2000H~2003H四个字节单元中,若以大端模式存储,则2000H存储单元的内容 为(D)。 A、0x21 B、0x68 C、0x65 D、0x02 4 μCOS-II中对关键代码段由于希望在执行的过程中不被中断干扰,通常采用关中断的方式,以下X86汇编代码正确而且不会改变关中断之前的中断开关状态的是(D) A.先CLI、执行关键代码、再STI B. 先STI、执行关键代码、再CLI C. 先POPF、CLI、执行关键代码、再PUSHF D. 先PUSHF、CLI、执行关键代码、再POPF。 5 RS232-C串口通信中,表示逻辑1的电平是(D )。 A、0v B、3.3v C、+5v~+15v D、-5v~-15v 6 ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是(A)。 A.R0 = R2 + (R3 << 1) B. R0 =( R2<< 1) + R3 C. R3= R0+ (R2 << 1) D. (R3 << 1)= R0+ R2 7 IRQ中断的入口地址是(C)。FIQ的入口地址为0x0000001C A、0x00000000 B、0x00000008 C、0x00000018 D、0x00000014 8 S3C2420X I/O口常用的控制器是(D)。 A.端口控制寄存器(GPACON-GPHCON)。 B.端口数据寄存器(GPADAT-GPHDA T)。 C.外部中断控制寄存器(EXTINTN)。 D.以上都是。 9 实时操作系统中,两个任务并发执行,一个任务要等待其合作伙伴发来信息,或建立某个条件后再向前执行,这种制约性合作关系被成为(A)。 A. 同步 B. 互斥 C. 调度 D. 执行 10 和PC系统机相比嵌入式系统不具备以下哪个特点(C)。 A、系统内核小 B、专用性强 C、可执行多任务 D、系统精简 11 、ADD R0,R1,#3属于(A)寻址方式。 A. 立即寻址 B. 多寄存器寻址 C. 寄存器直接寻址 D. 相对寻址 12、GET伪指令的含义是(A) A. 包含一个外部文件 B. 定义程序的入口 C. 定义一个宏 D. 声明一个变量 13、存储一个32位数0x876165到2000H~2003H四个字节单元中,若以小端模式存 储,则2000H存储单元的内容为(C)。 A、0x00 B、0x87 C、0x65 D、0x61 14、μCOS-II操作系统不属于(C)。 A、RTOS B、占先式实时操作系统 C、非占先式实时操作系统 D、嵌入式实时操作系统 15、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDR R0,[R1,#8]!后R0的值为(D )。 A. 0x2000 B. 0x86 C. 0x2008 D. 0x39 16、寄存器R13除了可以做通用寄存器外,还可以做(C )。 A、程序计数器 B、链接寄存器 C、栈指针寄存器 D、基址寄存器 17、FIQ中断的入口地址是(A)。

工程项目计划书

工程项目计划书

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

GET/QP/16-01V1.2 No.: 200_____ 项目计划书 工程名称: 工程地点: 施工单位: 编制单位: 编制人: 编制日期:年月日 审批负责人: 审批日期:年月日

项目计划书编写提纲 一、项目提出的背景和必要性 包括国内外现状、知识产权状况和发展趋势;技术突破对产业技术进步的重要意义和作用;项目可能形成的产业规模和市场前景。 二、项目主要开发和建设内容 包括项目的主要科技攻关内容、项目目标及开发任务。 三、项目实施的技术方案 包括项目的技术路线、工艺的合理性和成熟性,关键技术的先进性和创新点;产品技术性能水平与国内外同类产品的比较;项目承担单位在实施本项目的优势。 四、项目组织机构和人员安排 包括项目的组织形式、产学研联盟运作机制及分工安排;项目的实施地点;项目承担单位负责人、项目领军人物主要情况;项目开发的人员安排。 五、项目实施进度计划 包括项目阶段考核指标(含主要技术经济指标,可能取得的专利尤其是发明专利和国外专利情况)及时间节点安排;项目的验收指标。 六、项目资金需求及来源 包括项目新增总投资估算、资金筹措方案(含自有资金、银行贷款、科教兴市专项资金、推进部门配套资金等)、投资使用计划。 七、项目经济和社会效益分析 包括项目未来三年或五年生产成本、销售收入和利税估算;财务内部收益率、投资回收期、投资利润率、财务净现值等指标的动态财务分析;社会效益分析。 八、项目风险分析及应对措施 包括项目技术、市场、资金等风险分析及应对措施。 九、其它需要说明的事项

粤嵌开发板电子相册嵌入式课程设计

课程设计说明书题目:电子相册 课程名称:嵌入式系统 学院: 专业:学号: 姓名: 指导教师: 完成日期: 2017年6月10日

目录 1. 设计的工程背景 任务阐述 设计任务: 制作一个电子相册,要求每个人一种特效,结果显示在ARM开发板上。开发平台为LINUX。 电子相册简介: 以数字照片的存储和浏览为主要功能,具有内置数据存储器、USB等卡接口、强大的文件管理等特征。 背景: 在市场需求上,随着数码相机的普及,作为一种以数字照片的保存、回放和浏

览为核心的功能产品迎合了消费者需求,嵌入式linux的电子相册比一般电子相册更具优越性和实用性。目前市场,目前主流电子相册软件普遍体积庞大、占用内存多、硬件要求高。所以开发一个运行速度快,占用空间小,对硬件要求较低的功能实用的嵌入式Linux电子相册很有意义。 Linux开发优势: Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux 是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。 Linux是我国软件的国策,尤其是在IT行业,庞大的使用群体、开放的体系和丰富资源使得Linux将是日后普及和推广的重点。Linux的优越性日益凸显Linux将是我们学习和工作实用的首选。目前,很多网络技术、服务器、网络设备都是基于Linux操作系统,并且在不少时尚的手机、PDA、媒体播放器等消费类电子产品中已经广泛使用Linux作为操作系统。 在Linux软件国策的指引下,Linux已经得到很大的普及。很多学生已经自发地通过书籍、互联网等资源学习Linux。综上所述,提高技术水平就是以市场流行需求为导向进行研发,特别是像嵌入式种工程类的技术。在条件允许的情况下,我们甚至应该时刻与国际接轨,掌握当前最领先的技术。 任务分析 设计的目标是制作5种电子相册特效,每个人负责制作一种。在制作前期,首先要查阅资料,了解电子相册的背景和制作原理,对其形成大致的设计方案。然后,根据资料安装linux和虚拟机软件,搭建开发环境,安装交叉编译。最后,根据自己设计的方案进行尝试,不断修改错误,直到达到目标。 课题项目管理计划进度表

嵌入式系统开发基础1

青岛理工大学琴岛学院计算机系实验教材 Linux嵌入式系统 实验指导书

青岛理工大学琴岛学院计算机科学系 二0一0年四月

前言 随着后PC时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。巨大的市场潜力,无穷的商机,吸引了各路英豪纷踵沓来。 硬件方面,各大电子厂商相继推出了自己的专用嵌入式芯片,漫天而至的是mp3,PDA,无线上网装置,让人们充分感受到了这股强劲之势;软件方面,在Vxworks、pSOS、Neculeus 和Windows CE等嵌入式操作系统引领下,也出现了空前繁荣的局面,但这些专用操作系统都是商业化产品,其高昂的价格使许多面向低端产品的小公司望而却步,并且其源代码的封闭性也大大限制了开发者的积极性。 近两年在我国登陆并蓬勃发展的Linux,也已广泛应用于各类计算应用,不仅包括IBM 的微型Linux腕表、手持设备(PDA和蜂窝电话)、因特网装置、客户机、防火墙、工业机器人和电话基础设施设备,甚至还包括了基于集群的超级计算机。Linux在高端服务器的优越表现及其天生具有的突出特点,就注定它必将在低端嵌入式系统中再次给人们以惊喜,而基于嵌入式Linux操作系统的应用,必定给我们未来的工作和生活带来翻天覆地的变化。 Linux价格低廉、功能强大,可以运行在X86,Alpha,Sparc,MIPS,PPC,MOTOROLA,NEC,ARM等硬件平台上,而且开放源代码,可以定制。我们所介绍的硬件平台是基于ARM体系结构,由北京博创兴业科技有限公司开发的UP-CUP 3000 平台、UP-CUP 2410-S 平台系列以及UP-CUP P270A 平台系列实验仪器。UP-CUP 3000 平台的CPU为ARM7TDMI内核的三星 S3C44B0X01芯片,由于没有MMU(内存管理单元)只能运行uClinux,UP-CUP 2410-S 平台系列的CPU为ARM920T内核的三星S3C2410芯片,由于有MMU可以运行标准的ARM-LINUX 内核。UP-CUP P270 平台系列实验仪器为Intel XSCALE ARM10系列CPU。通过这些硬件平台,我们可以学习嵌入式LINUX中的针对有MMU和无MMU的不同开发过程。UP-CUP 3000 平台和UP-CUP P270 平台系列产品及其相关资料可以访问博创公司的网站获得。本书以 S3C2410系列中的UP-CUP S2410 经典平台为例,详细介绍嵌入式 Linux的开发过程。 指导书参考与引用了许多相关资料,在此一并致谢。本指导书仅供内部学生学习使用。由于时间仓促,编者水平有限,书中疏漏之处在所难免,欢迎读者批评指正,并提出宝贵意见和建议,以便不断改进。 编者江艳飞 二0一一年四月 目录

ARM嵌入式系统基础教程第二版课后习题答案

第1章嵌入式系统概述 (1)举出3个本书中未提到的嵌入式系统的例子。 答:键盘、鼠标、扫描仪。 (2)什么叫嵌入式系统? 答:嵌入到对象体系中的专用计算机应用系统。 (3)什么叫嵌入式处理器?嵌入式处理器分为哪几类? 答:嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。分为3类:1.注重尺寸、能耗和价格;2.关注性能;3.关注全部4个需求——性能、尺寸、能耗和价格。 (4)什么是嵌入式操作系统?为何要使用嵌入式操作系统? 答:嵌入式操作系统是操作系统的一种类型,是在传统操作系统的基础上加入符合嵌入式系统要求的元素发展而来的。原因:1.提高了系统的可靠性;2.提高了开发效率,缩短了开发周期。3.充分发挥了32位CPU的多任务潜力。 第2章ARM7体系结构 1.基础知识 (1)ARM7TDMI中的T、D、M、I的含义是什么? 答:T:高密度16位Thumb指令集扩展;D:支持片上调试;M:64位乘法指令;I:Embedded ICE硬件仿真功能模块。 (2)ARM7TDMI采用几级流水线?使用何种存储器编址方式? 答:3级;冯·诺依曼结构。 (3)ARM处理器模式和ARM处理器状态有何区别? 答:ARM处理器模式体现在不同寄存器的使用上;ARM处理器状态体现在不同指令的使用上。 (4)分别列举ARM的处理器模式和状态? 答:ARM的处理器模式:用户模式、系统模式、管理模式、中止模式、未定义模式、中断模式、快速模式;ARM的处理器状态:ARM状态、Thumb状态。 (5)PC和LR分别使用哪个寄存器? 答:PC:R15;LR:R14。 (6)R13寄存器的通用功能是什么? 答:堆栈指针SP。 (7)CPSR寄存器中哪些位用来定义处理器状态?

相关主题
相关文档 最新文档