




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
东莞理工学院城市学院
《嵌入式系统设计》课程实验指导书
编写人:李建辉
审核人:刘林泉、李建辉
教研室主任:龙允聪
系主任:廉玉忠
城市学院计算机与信息科学系
二O一五年三月
第一章嵌入式系统
1.1嵌入式系统概述
嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器、微处理器、
存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求
实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控
制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般就具备以下4个特点:
(1)对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而
使内部的代码和实时内核心的执行时间减少到最低限度。
(2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为
了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利
于软件诊断。
(3)可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处
理器。
(4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备
中靠电池供电的嵌入式系统更是如此,如需要功耗只有mW甚至NW级。
嵌入式计算机系统同通用型计算机系统相比具有以下特点:
(1)嵌入式系统通常是面向特定应用的嵌入式CPU与通用型的最大不同就是嵌入式CPU
大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点,
能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于
小型化,移动能力大大增强,跟网络的耦合也越来越紧密。
(2)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用
相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新
的知识集成系统。
(3)嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样
的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力
(4)嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进
行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
(5)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或
单片机本身中,而不是存贮于磁盘等载体中。
(6)嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中
的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。
1.2嵌入式处理器
嵌入式系统的核心部件是各种类型的嵌入式处理器,目前据不完全统计,全世界嵌入式
处理器的品种总量已经超过1000多种,流行体系结构有30几个系列,其中8051体系的占
有多半。生产8051单片机的半导体厂家有20多个,350共多种衍生产品,仅Philips就有
近100种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理
器设计部门。嵌入式处理器的寻址空间一般从64kB至IJ16MB,处理速度从0.1MIPS到2000
MIPS,常用封装从8个引脚到144个引脚。根据其现状,嵌入式计算机可以分成下面几类.
(1)嵌入式微处理器(EmbeddedMicroprocessorUnit,EMPU)
嵌入式微处理器的基础是通用计算机中的CPU。在应用中,将微处理器装配在专门设计
的电路板上,只保留和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样
的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。和工业控制计算机相
比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点,但是在电路板上必须
包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较
差。嵌入式微处理器及其存储器、总线、外设等安装在一块电路板上,称为单板计算机。如
STD-BUS,PC104等。近年来,德国、日本的一些公司又开发出了类似“火柴盒”式名片大
小的嵌入式计算机系列OEM产品。嵌入式处理器目前主要有Aml86/88、386EX、SC-400,Power
PC、68000、MIPS、ARM系列等。
(2)嵌入式微控制器(MicrocontrollerUnit,MCU)
嵌入式微控制器又称单片机,顾名思义,就是将整个计算机系统集成到一块芯片中。嵌
入式微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总
线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、FlashRAM、
EEPROM等各种必要功能和外设。为适应不同的应用需求,一般一个系列的单片机具有多种
衍生产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。
这样可以使单片机最大限度地和应用需求相匹配,功能不多不少,从而减少功耗和成本。
和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗
和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资
源一般比较丰富,适合于控制,因此称微控制器。
嵌入式微控制器目前的品种和数量最多,比较有代表性的通用系列包括8051、P51XA、
MCS-25KMCS-96/196/296,C166/167,MC68HC05/11/12/16,68300等。另外还有许多半通
用系列如:支持USB接口的MCU8XC930/931、C540、C541;支持I2C、CAN-Bus、LCD及众多
专用MCU和兼容系列。目前MCU占嵌入式系统约70%的市场份额。特别值得注意的是近年
来提供X86微处理器的著名厂商AMD公司,将Aml86CC/CU/CU等嵌入式处理器称之为
Microcontroller,MOTOROLA公司把以PowerPC为基础的PPC505和PPC555亦列入单
片机行列。TI公司亦将其TMS320c2XXX系列DSP做为MCU进行推广。
(3)嵌入式DSP处理器(EmbeddedDigitalSignalProcessor,EDSP)
(4)嵌入式片上系统(SystemOnChip)
随着EDI的推广和VLSI设计的普及化,及半导体工艺的迅速发展,在一个硅片上实现
一个更为复杂的系统的时代已来临,这就是SystemOnChip(SOC)»各种通用处理器内核将
作为SOC设计公司的标准库,和许多其它嵌入式系统外设一样,成为VLSI设计中一种标准
的器件,用标准的VHDL等语言描述,存储在器件库中。用户只需定义出其整个应用系统,
仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成的器件以外,整
个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简洁,对于
减小体积和功耗、提高可靠性非常有利。
SOC可以分为通用和专用两类。通用系列包括Infineon的TriCore,Motorola的
M-Core,某些ARM系列器件,Echelon和Motorola联合研制的Neuron芯片等。专用SOC一
般专用于某个或某类系统中,不为一般用户所知。一个有代表性的产品是Philips的Smart
XA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU单元制作在一块硅片上,形
成一个可加载JAVA或C语言的专用的SOC,可用于公众互联网如Internet安全方面。
1.3嵌入式操作系统
嵌入式系统是以应用为中心,软硬件可裁减的,适用于对功能、可靠性、成本、体积、
功耗等综合性严格要求的专用计算机系统。具有软件代码小、高度自动化、响应速度快等特
点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬
件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。
1.3.1嵌入式操作系统的发展
作为嵌入式系统(包括硬、软件系统)极为重要的组成部分的嵌入式操作系统,通常包
括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏
览器等。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统
资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够
提供库函数、驱动程序、工具集以及应用程序。与通用操作系统相比较,嵌入式操作系统在
系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的
特点。嵌入式操作系统伴随着嵌入式系统的发展经历了四个比较明显的阶段:
第一阶段:无操作系统的嵌入算法阶段,以单芯片为核心的可编程控制器形式的系统,
具有与监测、伺服、指示设备相配合的功能。应用于一些专业性极强的工业控制系统中,通
过汇编语言编程对系统进行直接控制,运行结束后清除内存。系统结构和功能都相对单一,
处理效率较低,存储容量较小,几乎没有用户接口。
第二阶段:以嵌入式CPU为基础、简单操作系统为核心的嵌入式系统。CPU种类繁多,
通用性比较差;系统开销小,效率高;一般配备系统仿真器,操作系统具有一定的兼容性和
扩展性;应用软件较专业,用户界面不够友好;系统主要用来控制系统负载以及监控应用程
序运行。
第三阶段:通用的嵌人式实时操作系统阶段,以嵌入式操作系统为核心的嵌入式系统。
能运行于各种类型的微处理器上,兼容性好;内核精小、效率高,具有高度的模块化和扩展
性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;
具有大量的应用程序接口(API);嵌入式应用软件丰富。
第四阶段:以基于Intemet为标志的嵌入式系统。这是一个正在迅速发展的阶段。目前
大多数嵌入式系统还孤立于Inlemet之外,但随着Intemet的发展以及Intemet技术与信息
家电、工业控制技术等结合日益密切,嵌入式设备与Intemet的结合将代表着嵌入式技术的
真正未来。
1.3.2实时操作系统
嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞
大的应用中显得愈来愈重要。
(1),嵌人式实时操作系统提高了系统的可靠性。在控制系统中,出于安全方面的考虑,
要求系统起码不能崩溃,而且还要有自愈能力。不仅要求在硬件设计方面提高系统的可靠性
和抗干扰性,而且也应在软件设计方面提高系统的抗干扰性,尽可能地减少安全漏洞和不可
靠的隐患。长期以来的前后台系统软件设计在遇到强干扰时,使得运行的程序产生异常、出
错、跑飞,甚至死循环,造成了系统的崩溃。
而实时操作系统管理的系统,这种干扰可能只是引起若干进程中的一个被破坏,可以通过系
统运行的系统监控进程对其进行修复。通常情况下,这个系统监视进程用来监视各进程运行
状况,遇到异常情况时采取一些利于系统稳定可靠的措施,如把有问题的任务清除掉。
(2).提高了开发效率,缩短了开发周期。在嵌入式实时操作系统环境下,开发一个复杂
的应用程序,通常可以按照软件工程中的解耦原则将整个程序分解为多个任务模块。每个任
务模块的调试、修改几乎不影响其他模块。商业软件一般都提供了良好的多任务调试环境。
(3).嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。32位CPU比8、16位CPU
快,另外它本来是为运行多用户、多任务操作系统而设计的,特别适于运行多任务实时系统。
32位CPU采用利于提高系统可靠性和稳定性的设计,使其更容易做到不崩溃。例如,CPU运
行状态分为系统态和用户态。将系统堆栈和用户堆栈分开,以及实时地给出CPU的运行状态
等,允许用户在系统设计中从硬件和软件两方面对实时内核的运行实施保护。如果还是采用
以前的前后台方式,则无法发挥32位CPU的优势。从某种意义上说,没有操作系统的计算
机(裸机)是没有用的。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌
入进去,才是真正的计算机嵌入式应用。
1.3.3嵌入式操作系统选型
当我们在设计信息电器、数字医疗设备等嵌入式产品时,嵌入式操作系统的选择至关重
要。一般而言,在选择嵌入式操作系统时,可以遵循以下原则。总的来说,就是“做加法还
是做减法”的问题.
市场进入时间制定产品时间表与选择操作系统有关系,实际产品和一般演示是不同的。
目前是Windows程序员可能是人力资源最丰富的。现成资源最多的也就可能是WinCE。
使用WinCE能够很快进入市场。因为WinCE+X86做产品实际上是在做减法,去掉你不的功
能,能很快出产品,但伴随的可能是成本高,核心竞争力差。而某些高效的操作系统可能由
于编程人员缺乏,或由于这方面的技术积累不够,影响开发进度。
可移植性操作系统相关性。当进行嵌入式软件开发时,可移植性是要重点考虑的问题。良好
的软件移植性应该比较好,可以在不同平台、不同系统上运行,跟操作系统无关。软件的通
用性和软件的性能通常是矛盾的。即通用以损失某些特定情况下的优化性能为代价。很难设
想开发一个嵌入式浏览器而仅能在某一特定环境下应用。
反过来说,当产品与平台和操作系统紧密结合时,往往你的产品的特色就蕴含其中。
可利用资源产品开发不同于学术课题研究,它是以快速、低成本、高质量的推出适合用户需
求的产品为目的的。集中精力研发出产品的特色,其他功能尽量由操作系统附加或采用第三
方产品,此操作系统的可利用资源对于选型是一个重要参考条件。因Linux和WinCE都有
大量的资源可以利用,这是他们被看好的重要原因。其他有些实时操作系统由于比较封闭,
开发时可以利用的资源比较少,因此多数功能需要臼己独立开发。从而影响开发进度。近来
的市场需求显示,越来越多的嵌入式系统,均要求提供全功能的Web浏览器。而这要求有一
个高性能、高可靠的GUI的支持。
系统定制能力信息产品不同于传统PC的Wintel结构的单纯性,用户的需求是千差万别
的,硬件平台也都不一样,所以对系统的定制能力提出了要求。要分析产品是否对系统底层
有改动的需求,这种改动是否伴随着产品特色,Linux由于其源代码开放的天生魅力,在定
制能力方面具有优势。随着WinCE3.0原码的开放,以及微软在嵌入式领域力度的加强,其
定制能力会有所提升。成本成本是所有产品不得不考虑的问题。操作系统的选择会对成本有
什么影响呢?
Linux免费,WinCE等商业系统需要支付许可证使用费,但这都不是问题的答案。成
本是需要综合权衡以后进行考虑的一一选择某一系统可能会对其他一系列的因素产生影响,
如对硬件设备的选型、人员投入、以及公司管理和与其他合作伙伴的共同开发之间的沟通等
许多方面的影响。中文内核支持国内产品需要对中文的支持。由于操作系统多数是采用西文
方式,是否支持双字节编码方式,是否遵循GBK,GB18030等各种国家标准,是否支持中文
输入与处理,是否提供第三方中文输入接口是针对国内用户的嵌入式产品的必需考虑的重要
因素。
上面提到用WinCE+x86出产品是减法,这实际上就是所谓PC家电化;另外一种做法是
加法,利用家电行业的硬件解决方案(绝大部分是非x86的)加以改进,加上嵌入式操作系
统,再加上应用软件。这是所谓家电PC化的做法,这种加法的优势是成本低,特色突出,
缺点是产品研发周期长,难度大(需要深入了解硬件和操作系统)。如果选择这种做法,Linux
是一个好选择,它让你能够深入
到系统底层,如果你愿意并且有能力。
1.3.4几种代表性嵌入式操作系统比较
(1)VxWorks
VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系
统(RT0S),是Tornado嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的
内核以及友好的用户开发环境,在嵌人式实时操作系统领域逐渐占据一席之地。
VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;
支持POSIX1003.1b实时扩展标准;支持多种物理介质及标准的、完整的TCP/IP网络协议
等。然而其价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通
常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收
取版税。一般不通供源代码,只提供二进制代码。由于它们都是专用操作系统,需要专门的
技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。支持的硬件数量有限。
(2)WindowsCE
WindowsCE与Windows系列有较好的兼容性,无疑是WindowsCE推广的一大优势。
其中WinCE3.0是一种针对小容量、移动式、智能化、32位、了解设备的模块化实时嵌人式
操作系统。为建立针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操
作系统平台,它能在多种处理器体系结构上运行,并且通常适用于那些对内存占用空间具有
一定限制的设备。它是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操
作系统。它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定
制。操作系统的基本内核需要至少200KB的ROM。由于嵌入式产品的体积、成本等方面有较
严格的要求,所以处理器部分占用空间应尽可能的小。系统的可用内存和外存数量也要受限
制,而嵌入式操作系统就运行在有限的内存(一般在ROM或快闪存储器)中,因此就对操
作系统的规模、效率等提出了较高的要求。从技术角度上讲,WindowsCE作为嵌入式操作
系统有很多的缺陷:没有开放源代码,使应用开发人员很难实现产品的定制;在效率、功耗
方面的表现并不出色,而且和Windows一样占用过的系统内存,运用程序庞大;版权许可费
也是厂商不得不考虑的因素。
(3)嵌入式Linux
这是嵌入式操作系统的一个新成员,其最大的特点是源代码公开并且遵循GPL协议,在
近一年多以来成为研究热点,据IDG预测嵌入式Linux将占未来两年的嵌入式操作系统份额
的50双由于其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。
遵从GPL,无须为每例应用交纳许可证费。有大量的应用软件可用。其中大部分都遵从GPL,
是开放源代码和免费的。可以稍加修改后应用于用户自己的系统。有大量的免费的优秀的开
发工具,且都遵从GPL,是开放源代码的。有庞大的开发人员群体。无需专门的人才,只要
懂Unix/Linux和C语言即可。随着Linux在中国的普及,这类人才越来越多。所以软件的
开发和维护成本很低。优秀的网络功能,这在Internet时代尤其重要。
稳定一一这是Linux本身具备的一个很大优点。内核精悍,运行所需资源少,十分适合
嵌入式应用。支持的硬件数量庞大。嵌入式Linux和普通Linux并无本质区别,PC上用到的
硬件嵌入式Linux几乎都支持。而且各种硬件的驱动程序源代码都可以得到,为用户编写自
己专有硬件的驱动程序带来很大方便。在嵌入式系统上运行Linux的一个缺点是Linux体系
提供实时性能需要添加实时软件模块。而这些模块运行的内核空间正是操作系统实现调度策
略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代
码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重
的弱点。
(4)uC/OS—II
PC/OS一II是著名的源代码公开的实时内核,是专为嵌入式应用设计的,可用于8位,
16位和32位单片机或数字信号处理器(DSP)。它是在原版本uC/OS的基础上做了重大改
进与升级,并有了近十年的使用实践,有许多成功应用该实时内核的实例。它的主要特点如
下:
①公开源代码,容易就能把操作系统移植到各个不同的硬件平台上。
②.可移植性,绝大部分源代码是用C语言写的,便于移植到其他微处理器上。
③可固化。
④可裁剪性,有选择的使用需要的系统服务,以减少斗所需的存储空间。
⑤占先式,完全是占先式的实时内核,即总是运行就绪条件下优先级最高的任务。
⑥多任务,可管理64个任务,任务的优先级必须是不同的,不支持时间片轮转调度法。
⑦可确定性,函数调用与服务的执行时间具有其可确定性,不依赖于任务的多少。
⑧实用性和可靠性,成功应用该实时内核的实例,是其实用性和可靠性的最好证据。由于
uc/os-n仅是一个实时内核,这就意味着它不像其他实时存在系统那样提供给用户的只
是一些API函数接口,还有很多工作需要用户自己去完成。在嵌入式应用中,使用实时操
作系统(RTOS)是当前嵌入式应用的一个特点,一种趋势,也是单片机应用从低水平向高水
平的一个进步。在实际的应用中,根据不同的要求和条件选择合适的操作系统,使开发工作
更容易,设计出更完美的嵌入式系统。
第二章MDK开发环境的使用
2.1MDK开发环境介绍
Keil是业界最受欢迎的51单片机开发工具之一,它拥有流畅的用户界面与强大的仿
真功能。RealViewMDKRealViewMicrocontro11erDevelopmentKit(简称为或者MDK)。
将ARM开发工具RealViewDevelopmentSuite(简称为RVDS)的编译器RVCT与Keil的工程
管理、调试仿真工具集成在一起,成为新的开发环境。RealViewMDK开发工具源自德国Keil公
司,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种
嵌入式处理器的软件开发工具。RealViewMDK包括uVision3集成开发环境与RealView编译
器。支持ARM7、ARM9和最新的Cortex713核处理器,自动配置启动代码,集成Flash烧写模
块,强大的Simulation设备模拟,性能分析等功能。与ARM之前的工具包ADS等相比,RealView
编译器的最新版本可将性能改善超过20%。
2.1.1MDK的特点
MDK用于开发ARM7、ARM9和Cortex-M3的应用程序其特点如下:功能强大的源代码编
辑器;可根据开发工具配置的设备数据库;用于创建和维护工程的工程管理器;集汇编、
编译和链接过程于一体的编译工具;用于设置开发工具配置的对话框;真正集成高速CPU
及片上外设模拟器的源码级调试器;高级GDI接口,可用于目标硬件的软件调试和Keil
ULINK仿真器的连接;用于下载应用程序到FlashROM中的Flash编程器;完善的开发工具
手册、设备数据手册和用户向导。
2.1.2MDK的目录结构与界面结构
C:\KEIL\ARX\BIN11VlsgARNtX具嚷的可执行文忤
C:\KfiL\AAM\INCK"C的电台文件及“这的08片雷包台X杵
C:\KfIl\ARM\AD5ARMADSMVEZI具般由储程及.目坳文件
C:\Kfn\AftM\GNUGXV工且硬例评程及型文件
C:\K£lLURM\FtastlKHVUNK2USBJTAG如yFbsMfi程箕法文忤
C:\Ktll\AftM\HLP旧AR\(工具I1及的在我销骷义也
C:\Kni\ARM\_\Startw恃定&笛的启动又件
C:\KEIl\ARM\...XFumples普于MGGNUorAD5®-»«g
C:\KHl\ARM\\BowdsS?KedC.GXUorADStf]评估收例程
图2.1界面结构
2.1.3MDK的开发流程
使用MDK来开发ARM的程序,需要新建一个工程,从设备库中选择目标芯片,配置工程编
译器环境;用C或汇编编写源文件;编译目标应用程序;修改源程序中的错误;测试链接应
用程序。
(1)创建工程,利用uVision创建应用程序,首先要选择开发工具集。选择Project—>Manage
—>Components,Environmentando
图2.2配置界面
创建一个新的工程Project—>NewuVisionProject
1”rrajart
vVittad
图2.3创建工程
保存工程名称,例如:GEC2440_LED_ASM.
k/CEC2440LEDASIBiaionJ
Etl«(d>l力bJVCSg«lp
图2.4保存工程
对启动代码S3C2440.s进行配置双击“S3C2440.s”文件,弹出窗口选择
"ConfigurationWizard"通过图形化的形式对生成的默认启动代码进行个性化的配置,包
括:堆栈,时钟管理,中断向量表,看门狗时钟,存储器控制,I/O配置等。
图2.5加载启动代码
创建源文件File->New输入源代码后保存源文件LED.S,同理创建源文件DELAY.S,
点击源文件组,点击鼠标右键选择AddFilesto"”添加LED.S和DELAY.S。
CEC2440.LED.ASI•isionJHt2]
RdiQ]fa«v£^4»j*ct工001vSVCS
CEN
Ctrl+O
Q«ic
QCtrl*S
34辑
入SwM
FVO»
OS2.AU
D«nc«9«t«bts«
License|«ck*c«*«nt
F^intS*<up
2rmt—
PrintPr«Il«v
图2.6创建、添加源文件
分散加载机制允许为链接器指定映像的存储器映射信息,可实现对映像组件分组和布局
的全面控制。分散加载文件使用的场合,复杂存储器映射必须放在多个不同存储器区域的代
码和数据需要关于将哪个节放在哪个存储器空间的详细指令。不同存储器类型,包含闪存储
器、ROM、SDRAM和快速SRAM。分散载入描述可以将代码和数据放置在最适合的存储器类型
中。例如,中断代码可能放在快速SRAM中,以改进中断响应时间,而不频繁使用的配置信
息可能放在较慢的闪速存储器中。
存储器映射I/O分散载入描述可以将数据节放在存储器映射中的精确地址,便于访问。
位于固定位置的函数可以将函数放在存储器中的同一个位置,即使周围的应用程序已经被修
改并重新编译。
使用符号识别堆和栈可以为堆和栈的位置定义符号,链接应用程序时可以指定该封闭模块的
位置。
简单的分散加载文件:
Startaddressfew
loadregton
Maximum沁。of
lo*dregion
Startfoe
execteuton
NatneofftrslLO*D_ROM0x00000x8000
execregion
Maximims<zeofmts
execre,on
•EXEC-R0M0x00000x8000
NatneofsecorMS*OR0)・Placeallcodeand
ex*cregionROdataF。the
execyon
.0x100000x6000.
rAaximumsizeof
Startofsecond•JRWiZI).thnenreregion
execregion
PlaceanRWandZidata
Intoir»sexec,egk>n
图2.7简单的分散加载文件
简单的存储器映射如下图所示:
复杂分散加载文件:
Startaddressforfirstloadregion
LOAD_ROM_10x0000.
(Startaddressforfirstexecregion
EXEJR0M」0x0000-
{PlaceallcodeandROdatafrom
programi.o(+R0)-programl.ointothisexecregion
)
Startaddressforthisexecregion
DRAM0x18000*0x8000-
(Maximumsizeofthisexecregion
}programi.oC+RW,+ZI)
PlaceallRWandZIdatafrom
programi,ointothisexecregion
L0AD_R0M_20x4000,
{Startaddressforsecondloadregion
EXEJR0M_20x4000
(
}program2.o(+R0).PlaceallcodeandROdatafrom
program2.ointothisexecregion
SRAM0x80000x8000
(PlaceallRWandZIdatafrom
program2.o(+RW.+ZI)-program?.ointothisexecregion
)
)
图2.9复杂分散加载文件
复杂存储器映射:
图2.10复杂存储器隐射
2.1.4MDK的编译器优化级别
-00:最小优化。编译器执行最简单的优化,调试视图不会减弱。当调试可用,该选项会
给出最好的调试视图。
-01:受限制优化。当调试可用,该选项给出一个较好的调试视图,并有很好的代码密度。
-02:高度优化。这是默认的优化级别。当调试可用,该选项给出一个较差的调试视图。
-03:最大优化。这是最具挑战性的优化。它权衡选项-Ospace或-Otime。指定这个选项
将默认使能双汇编文件(命令行中指定)。当调试可有,该选项给出一个调试视图。
图2.11MDK的编译器优化
生成hex文件:鼠标点击Project—>OptionsforTargetwtarget1"选中OUTPUT
标签选中
CreateHEXFile点击"OK”。
U-'KU.)
EllatinIMII£ii»<»If*】,
OptiMIforTarget'TargetI'
,T«rn<1Liitiof,Vv«e|C/C**|As*|LiiJnr|Utilitiet;
SatedfcUulugotI"M"ENCUIMK|(£C2M
•M・E7*rXG£QM7_LE0/5M
P厂
PBiotfteHanston
''^EQMD.LED>5MUI
图2.12OUTPUT选项
鼠标点击Project—>OptionsforTarget"targetl”选中USER标签页选中Runuser。
PragramsAfterBuild/Rebuild框中的Run#1加载文件D:\Keil\ARM\BIN40\fromelf.exe
在文件后面输入命令:-bin-o./GEC2440_LED_ASM.bin./GEC2440_LED_ASM.axf
点击“OK”,编译后生成bin文件。
RunUserProgramsAfterBuild/Rebuild
BRunttl:RM\BIN40\fromelfex(-bin-o/GEC2440LEDASM.bin/GEC2440LEDASM.axPD0S16
rRunU2:rD0S16
3BeepWhenComplete「StartDebugging
生成库文件*.lib
ADS为用户提供下面的软件,使用户可以在软件仿真的环境下或者在基于ARM的硬件环
境调试用户应用程序。
ARMulator这是一个ARM指令集仿真器,集成在ARM的调试器AXD中,它提供对ARM处
理器的指令集的仿真,为ARM和Thumb提供精确的模拟。用户可以在硬件尚未做好的情况下,
开发程序代码。
2.2调试工具J-link
J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。J-LinkARM具有以下
等主要特点:
(1)支持所有ARM7/ARM9内核的芯片,以及cortexM3,包括Thumb模式
(2)支持ADS、IAR、KEIL、WINARM、RealView等几乎所有的开发环境
(3)下载速度高达ARM7:600kB/s,ARM9:550kB/s,通过DCC最高可达800kB/s
(4)最高JTAG速度12MHz
(5)目标板电压范围1.2V-3.3V,5V兼容
(6)使用USB电源(但不对目标板供电)
(7)带J-LinkTCP/IPserver,允许通过TCP/IP网络使用J-Link
(8)J-Link支持ARM内核:ARM7TDMI、ARM720T、ARM920T、ARM926EJ-S、ARM946E-S、ARM966E-S、
ARM11、Cortex-M3点击光盘目录:GEC2440(beta版本)\windows开发工具\JLINK驱动的文
件Setup_JLinkARM_V4081.exe进行安装。
JJ
由inkQash
J-LinkARMJ-FlashABMKeil
V408kV408kuVision3
十
。
一
RA一L
2.2.1MDK的设置
(1)鼠标点击Project—〉OptionsforTarget"targetl
(2)选中DEBUG标签
(3)选择RDIInterfaceDriver
(4)选择initialitionFile加载Ext_RAM.ini
(5)点击“OK
配置RDIInterfaceDriver
(1)鼠标点击settings,进入RDIInterfaceDriverSetup串口
(2)加载\SEGGER\JLinkARM_V408k\JLinkRDI.dll文件,配置J-Link
(3)点击“OK”
①选择或快捷键Ctrl+F5或点击;
②将程序下载到SDRAM中调试;
能围©固研11❖
查看通用寄存器中的内容
1^1EileKditViProjectDebueFlashP
Address:10x56000050
0x56000050:00005500OOOOOOBF
ProyectWorkspace0x56000058:000000F000000000
0x56000060:0000000000007FFD
0x56000068:OOOOFCOO00000000
0x56000070:00000000000007FF
0x56000078:0000000000000000
0x56000080:0001033000000000
0x56000088:0000000000000000
0x56000090:0000000000000000
0x56000098:0000000000000000
0X560000A0:00000000OOFFFFFO
LL0X560000A8:000000000000000B
0X560000B0:3244000100000004
Hvqcnnnnpp・nnnnnnnnnnnnnnnn
on3[D:\GEC2440_LED_ASI\DELAY.S]
CFlishP♦口ph.rtl"ToolsSVCSWindow
PortF(CPF)
Reset£PU
GPF
70
GPFCON:IIIIIIII
❖ClockandPower
GPFDAT:|OxOOOOOOBFRTTTFTPPPP
InterruptController
GPRJP:|OxOOOOOOFOK7^i7i7rrrr
卫I/OtortiPort(GPA)
Portm)
D«bu$Settings..Port(GPC)
-wr
Port(GPD)
中07C1T4)r0z#0x0仲
08bneDELAYPort(GPE)
movpc,lr
直Port(GPP)
\lextEditor/ConfigurationWi2{Port(GPG)
Port(GPM)
俄Disassemblyg)DELAY.S
E^ttrntlInterrupts
Addross0x56000050MiscellaneousControl
0x56000050:00CGeneralStatus
0x56000058:oouuuuyxrpuuuuuou
Symbols
画后,回"吗国M毅pL£ajeSensitive
69:
1^0x30000000EA00006BB0x30000104AddressT>P・
»0iHandlcrUndcf:handlertorVn4etin*dmodeGTC2440_LED_CApplication
■'0x30000004EAOOOO490x30000130
Runtm*Libr*ry
9X:HaixUvrSVI;handlertorSHIinterrupt
-0x3000086EA00004E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 拉萨中考数学试题及答案
- 催化反应中的选择性与效率分析试题及答案
- 建筑施工安全技能操作试题及答案
- 建筑施工安全事故应对策略试题及答案
- 新能源汽车新能源汽车套利机会试题及答案
- 家具设计行业的职业资格认证重要性试题及答案
- 家具行业设计如何满足不同年龄段需求试题及答案
- 四年级数学(四则混合运算带括号)计算题专项练习与答案
- 商务英语团队建设试题及答案2025年
- 天然气安检试题及答案
- 年产3万吨精制大米加工项目可行性论证报告
- 2019人教版普通高中教科书物理必修第一册例题和书后习题(新课标)(无答案)
- 江苏省新高考基地学校第四次大联考生物试题
- 利用热释光剂量探测器测量射线剂量
- 大病历模板-住院病历
- GB/T 602-2002化学试剂杂质测定用标准溶液的制备
- GB/T 18657.1-2002远动设备及系统第5部分:传输规约第1篇:传输帧格式
- GB/T 15608-2006中国颜色体系
- 中考语文二轮专题复习:散文和小说阅读
- 【人卫九版内分泌科】第十一章-甲状腺功能减退症课件
- 护理人员业务技术档案 模板
评论
0/150
提交评论