计算机科学技术毕业论文-一种新型车路无线报站系统的设计与实现_第1页
计算机科学技术毕业论文-一种新型车路无线报站系统的设计与实现_第2页
计算机科学技术毕业论文-一种新型车路无线报站系统的设计与实现_第3页
计算机科学技术毕业论文-一种新型车路无线报站系统的设计与实现_第4页
计算机科学技术毕业论文-一种新型车路无线报站系统的设计与实现_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

33/38一种新型车路无线报站系统的设计与实现摘要随着城市人口数目的增长和现代化程度的提升,公众对车路交通的质量提出了更高的需求,作为车路交通主力军的车辆必须从安全性,舒适性,便捷性,节能环保等方面有更大的提高。而传统的车辆显然已经无法满足需求,迫切需要新型的车路体系来支撑和发展,针对城市交通信息化的应用需求,本文介绍了采用EASYARM1138+MC13213等芯片和uC/OS-II操作系统平台下,设计并实现了一种基于ZigBee技术的无线车路自动报站系统;该系统具有体积小,功能强,功耗低,实时性和稳定性好等优点,可以大大降低司机人员的劳动强度,有效的降低由于手工操作带来的误报站等意外情况的发生,可作为城市智能公交系统的一个有机组成部分。对于提高城市交通智能化和信息化具有重要意义。关键字:EasyARM1138uC/OS-IIZigBee公交报站AnewcarandwirelessstationsystemdesignandimplementationABSTRACTAsthecitypopulationgrowthandthemodernizationlevelofpurposesofascension,thepublicroadtrafficqualityputforwardhigherrequirement,asthemainroadtrafficsafety,comfortfromvehiclesmust,convenience,theenergyconservationenvironmentalprotectionetchavegreaterincrease.Whilethetraditionalvehicleshaveapparentlyunabletomeetthedemandofthenewcar,urgentlyneededtosupportanddevelopmentroadsysteminurbantrafficinformation,theapplicationrequirements,thisarticleintroducestheEASYARM1138suchchipsandMC13213+uC/OS-IIoperatingsystemflat,wedesignandimplementaZigBeetechnologybasedonthewirelesscarpathautomaticallystopssystem,Thissystemhastheadvantagesofsmallsize,thefunctionisstrong,lowpowerconsumption,real-timeandgoodstabilityetc,cansignificantlyreducethelaborintensity,thedriverstaffeffectivelylowertheerrorduetomanualstopstowaitforanaccidenthappening,butasacitybussystemofintelligentanintegralpart.Toimprovetheurbantrafficintelligentandinformatizationhasimportantsignificance.Keywords:EasyARM1138uC/OS-IIZigBeeBroadcastStationSystem目录摘要 IABSTRACT II目录 III1 前言 11.1课题研究背景 11.2国内外研究现状 11.3开发意义 31.4.可行性分析 32功能描述与系统设计 42.1功能描述 42.2系统设计 63开发环境介绍及硬件选型 83.1开发环境介绍 83.2硬件介绍 83.2.1.EasyRAM1138开发板简介 83.2.2.语音模块 93.2.3.LED数码管模块 93.2.4.LCD显示屏模块 103.2.5.ZIGBEE模块 113.2.6.控制面板模块 113.3软件介绍 123.3.1uC/OS-II介绍 123.3.2ZIGBEE协议简介 144详细设计 174.1硬件层设计 174.2系统层设计 184.3软件层设计 214.3.1.任务介绍 224.3.2.中断设置 244.3.3.系统相关函数设置 245系统测试 265.1测试简介 265.1.1.黑盒测试 265.1.2.白盒测试 265.1.3.基于风险的测试 275.2测试用例 275.3.技术指标 335.4系统测试与结果 336系统运行与维护 346.1在EWARM中新建一个新项目 346.1.1建立一个项目文件目录 346.1.2新建工作区 346.1.3生成新项目 356.1.4建立文件组 376.1.5添加对应文件 386.2开发板连线 396.3系统的维护 40结束语 41参考文献 42谢辞 43前言1.1课题研究背景随着城市人口数目的增长和现代化程度的提升,公众对车路交通的质量提出了更高的需求,作为车路交通主力军的车辆必须从安全性,舒适性,便捷性,节能环保等方面有更大的提高。而传统的车辆显然已经无法满足需求,迫切需要新型的车路体系来支撑和发展。日常生活中,我们经常会遇到这样的情况:车每到一站,都需要人为的按报站器,有时会过站再按,有时甚至不报站,给不少乘客带来不便;即使有人报站,也会因其地方口音,使外来乘客产生误解,引起不必要的麻烦,而准确的报站则直接影响到我们的正常日程。国家和社会都在倡导一种新型的智能车路系统的诞生。嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业应用的突出特征,是一种开发智能车路系统的可行解决方案。本课题利用ZigBee无线通信技术实现车路系统的自动报站,该系统可以大大降低司机人员的劳动强度,有效的降低由于手工操作带来的误报站等意外情况的发生,对于促进智能车路的发展具有积极意义,对社会生活的智能化,信息化发展具有重大的推动作用。1.2国内外研究现状目前车路上采用的车路报站系统具有语音和显示报站的基本功能,主要有以下三种:

第一种是GPS(Globalpositioningsystem,全球定位系统)自动报站系统。现在已经正式上市,他可通过GPS全球定位技术确定车路位置,自动报出车辆所在站名,以及服务用语,在特殊情况下还可以把手动报站,车内呼叫等功能一并实现,还可以连接车内LED(Lightemittingdiode,发光二极管)大屏显示广告以及站台信息,该系统还可以和GPRS(GeneralPacketRadioService,通用分组无线业务)通讯系统连接,实现实时监控车路运行请况,实现总调度过程。目前,国内GPS语音自动报站系统处于试验阶段,仅有北京,广州、青岛等几个城市采用GPS语音自动报站技术。目前的系统还存在一些不足,在有些城市,因为树木、高楼的遮挡,存在有些路段接收不到GPS信号的问题.第二种是基于电磁波理论的车路自动报站系统。可利用车路上现有的移动电视来接收电磁波,从而显示信息,并在车底部安装线圈并通以微量电流;在距站点数百米处的车道下埋设数匝线圈,其两端连向站牌;并在站牌上安装相关装置。车路以一定速度在路上行驶,在到站前会经过路下线圈,路下线圈切割车上通电线圈所产生的磁场而产生感应电流。电流流经站牌,触动内部装置,使站牌发送出电磁波。在车上的乘客就能从荧屏上获取相关报站信息。该系统的优点是能准确报站,不但给乘客带来方便,而且能让司机更加专心于驾驶,加强了道路安全性。但是铺设价格昂贵,其可靠性也没有实际验证,现在只有部分专家支持,并没有实际使用。第三种是基于单片机的车路自动报站系统,而这种系统又大致由两种技术支持。其中一种的技术关键是对车轮转轴的转角的脉冲进行计数,将计数值与预置值对比,即可确定报站时刻,达到准确自动的目的。以AT89C51为CPU(CentralProcessingUnit,中央处理器)在中断处理程序中对外来脉冲计数,利用ISD4004输出语音。系统完成后就可以上机调试,使用时可用配套的烧写器将站与站之间的距离写入单片机内,如果不知道距离可以在机上采用手动方式输入,使装置处于输入状态,出站时按下录入键,到站时按下确定键,就可以将站与站之间对应的数据写入单片机。使用中如果出现错报,采用手动调整即可。该方式应用89C51单片机的高速计数器端口进行脉冲计数,以距离来控制报站时刻,首次实现了模糊控制,改变现有设备的不足。做到简单实用自动化程度高。传感器在车路上的应用极大的提高了设备功能。但是在改变线路或者增加站台等情况时,修改程序比较复杂,尤其是遇到突发状况时司机的任何解决突发状况的方法都将使该系统不能正常运作,目前该系统在实际中使用较少。为了解决GPS在恶劣环境无法准确全自动报站的缺点。因此市我们提出了基于ZigBee无线通信的自动报站系统.通过下面的这个表.可以看出本系统的优点:表1-1各种无线通信报站系统的比较报站方式可靠性精度语音和显示报站价格监控车路运行请况缺点人工报站差差有便宜无大多为手工操作,需要司机在进站时操作,分散了司机的注意力,留下安全隐患。GPS自动报站系统好准确有昂贵有由于车路站台很多分布在高楼大厦林立的街道,加上阴天雨天,极大的影响了GPS的效果.基于电磁波理论的车路自动报站可靠性没有实际验证准确有昂贵无铺设价格昂贵,其可靠性也没有实际验证,现在只有部分专家支持,并没有实际使用。基于ZigBee无线通信的自动报站系统好准确有便宜有目前应用前景最好.1.3开发意义本产品主要是针对公交系统,地铁系统而设计。该系统能够提供自动报站,温馨提示,LCD显示,测量车内气温等功能。它可以大大降低司乘人员的劳动强度,使司机更专注的开车,使乘客得到更好的乘车环境。因此该产品在公交系统,轨道交通等领域具有很好的市场前景和应用前途,该系统具有体积小,功能强,功耗低,实时性和稳定性好等优点,可作为城市智能公交系统的一个有机组成部分。对于提高城市交通智能化和信息化具有重要意义。1.4.可行性分析本系统智能报站系统在硬件上需要一个温度传感器,需要一个蜂鸣器实现报警。这两个模块在周立功单片机发展有限公司提供的EasyARM1138开发套件上都配有。同时板上提供了USB电源供电,且支持串口通讯,这样就可以实现终端PC机的远程通讯。根据根据以上分析可以判定硬件部分是可行的。周立功单片机发展有限公司提供了IAREmbeddedWorkbenchforARM4.41A软件开发工具和LMLINK仿真器,这样就解决了软件的调试,程序下载问题。我们采用的操作系统是开源而实时的μC/OS-Ⅱ,在网上很容易就能找到源码。我们只要对它简单进行裁剪就可以拿来用。在软件上,我们觉得最大的难度是对寄存器和外围模块的配置与初始化,幸好周立功单片机发展有限公司那边提供了一套实验教程,里面详细的介绍如何初始化寄存器和外围模块等等,这样大大提高了我们的工作效率。从软硬件两方面的分析可以看出,本系统的开发技术成熟,从成本、环境与社会预期效益等多种角度考虑,都是可行的。2功能描述与系统设计2.1功能描述总述:基于ZigBee车路自动报站系统,是一套多功能的嵌入式电子产品,它可以大大降低司乘人员的劳动强度,使司机更专注的开车,并可在各种恶劣的环境下准确实时的自动报站、显示站名。车载设备安装于公交车上,其工作环境比较恶劣,对设备的结构也有一定的要求,本系统采用工作稳定可靠、抗干扰能力强的嵌入式系统。嵌入式系统固化于存储器中,其可靠性高、成本低、体积小、功耗低。嵌入式系统有着广泛的应用领域,在车辆与交通工程中的应用是其中一个重要的方面。将嵌入式设备作为车载终端应用于智能公交系统,使车载终端设备具有更高的智能性、稳定性和扩展性,从而建立起全方位、实时准确、高效的智能交通系统。具体功能如下:当公交车到达站台时,实行高精度自动报站,自动报出车辆所在站名,以及服务用语,同时LCD大屏显示到达站台的信息。如遇急转弯等特殊情况,司机可以通过旁边的控制面板上的按钮,播报提醒语音来提醒乘客需要注意的事项。在车辆行驶过程中且空闲时(即没有到达站台时),LCD大屏显示广告内容。采用自动+手动的方式报站,如遇到ZigBee通讯模块出现故障时,公交车不会自动报站的情况,司机可以通过旁边的控制面板播报本站信息。在车辆行驶过程,LED1屏为司机所用,显示本车站现在位于第几个站,LED2屏显示车内温度乘客下车请求,乘客可以通过按下车上的按钮,在司机旁边发出的蜂鸣声提醒司机本站有乘客要求下车。板上自带按键功能说明:板上自带的LED1为系统运行指示灯,系统正常运行时,此灯会闪烁,板上自带的LED2为乘客下车指示灯,当有乘客按下车按键时,此灯会闪烁,板上自带的LED3为公交线路的上下行指示灯,灯亮为上行,灯暗为下行.板上自带的KEY1为公交线路的上下行切换按键板上自带的KEY2为乘客下车请求按键如图2-1所示:乘客下车请求指示灯乘客下车请求指示灯线路上下行切换按键系统运行指示灯线路上下行切换按键系统运行指示灯乘客下车请求按键线路上下行指示灯复位键乘客下车请求按键线路上下行指示灯复位键图2-1开发板控制面板按键功能说明:控制面板上的CKEY1为播报下一站,控制面板上的CKEY2为播报上一站,控制面板上的CKEY3为重复播报本站,控制面板上的CKEY4,CKEY5,CKEY6为不同的温馨提示信息.控制面板如图2-2所示:温馨提示按钮播报上一站播报下一站重复报站温馨提示按钮播报上一站播报下一站重复报站图2-2控制面板2.2系统设计本车路报站系统共分成二大部分:站台端:在站点设立一个ZIGBEE模块.每隔一定时间发射一次该站的地址信号帧.车载端:a).交通工具上有一个多功能自动报站系统终端,由ZigBee通信模块,语音模块,LCD显示模块,LED数码管模块,控制面板模块组成,接受来自站台发出的站台信息。b).当交通工具行驶到站台发射模块的作用半径时,车载端的ZIGBEE模块会自动接收到站台ZIGBEE模块发来的信息并进行分析,将数据提交给EASY1138,EASY1138接收到来自己ZIGBEE模块的信号后,从语音模块的存储器是提取音频,并通过音频模块播报出来;同时调用显示屏,显示车路信息。当车载端或站台端出现故障时,导致自动报站系统终端无法接收到信号.可能会导致漏报,本系统设置了控制面板模块,司机可以人工手动进行报站,方式和自动报站是一样的,只不过EASY1138接收的是来自控制面板的信号.c).在交通工具正常行驶的过程中,因为没有接收到ZIGBEE的信号,本系统会自动进入广告的显示。主要是通过操作系统直接调用广告显示任务.系统中有两组LED数码管,分别用于显示温度和显示现在的站数,温度传感器模块来自1138板,同时设置了看门狗,以防系统出现跑飞现象,确保稳定性。系统功能图和站台与车载端通信图分别如图2-3、图2-4所示:基于基于ZigBee的多功能自动报站系统终端ZigBee通信模块语音模块控制面板模块LCD显示模块LED数码管模块图2-3系统功能框图站台站台端ZIGBEE模块车载端ZIGBEE模块11231-站台ZigBee发出网路信标帧2-车载端收到信标帧并回复3-站台收到回复将终端加入网络并发送本站台信息图2-4站台与车载端通信图3开发环境介绍及硬件选型3.1开发环境介绍IAREmbeddedWorkbenchforARM(简称IAREWARM)是一个针对ARM处理器的集成开发环境,它包含项目管理器、编辑器、C/C++编译器和ARM汇编器、连接器XLINK和支持RTOS的调试工具C-SPY。在EWARM环境下可以使用C/C++和汇编语言方便地开发嵌入式应用程序。比较其他的ARM开发环境,IAREWARM具有入门容易、使用方便和代码紧凑等特点。3.2硬件介绍下面详细介绍一下各个模块:3.2.1.EasyRAM1138开发板简介32位ARMCortex™-M3内核(ARMv7M架构)兼容Thumb的Thumb-2指令集,提高代码密度25%以上50MHz运行频率,1.25DMIPS/MHz,加快35%以上64KB单周期Flash,16KB单周期SRAM内置可编程的LDO输出2.25V~2.75V,步进50mV支持位操作,最大限度使用内存,并提供创新的外设控制内置系统节拍定时器(SysTick),方便操作系统移植7组GPIO,可配置为输入、输出、开漏、弱上拉等模式4个32位Timer,每个都可拆分为2个独立的16位子定时器,具有定时、捕获、PWM、RTC等丰富功能3路全双工UART,位速率高达3.125Mbps,16单元接收FIFO和发送FIFO,支持串行红外协议(IrDASIR)2路SSI,兼容FreescaleSPI、MICROWIRE、TexasInstruments串行通信协议,位速率高达25Mbps6路16位PWM,通过CCP管脚能产生高达25MHz的方波8通道10位ADC,采样速率可达1M/s,附带温度传感器内置看门狗定时器(WatchDogTimer),确保芯片可靠运行5只LED指示灯3只KEY1只交流蜂鸣器,可演奏动听乐曲,如《梁祝》GPIO插针间距正好为2000mil(50.8mm),很容易插接在万用板或其它自制的电路板上,为教学实验提供了极大方便仅需插入一根USB电缆就能实现“三合一”功能:5V供电、程序下载与在线仿真、UART串行通信3.2.2.语音模块ZY17120是广州致远电子有限公司在2007年新推出的一款优质、高集成度、单片多信息的,可以适用于多种电子系统的语音录放模块,该芯片是ZY1420语音芯片的升级产品,它不仅具有ZY1420的所有优良性能,如大容量的存储器,消噪的麦克风前置放大器,自动增益调节AGC电路,专用语音滤波电路,高稳定性的时钟震荡电路和语音处理电路,而且提供多项新功能,如多条信息管理,两种操作模式(按键操作模式和SPI操作模式),灵活的分段录放音控制,音量控制以及擦除等功能,并且在音质、录音时间长度等方面也都有了很大的改善,可以在2.4V~5.5V的宽电压范围内保持最优化工作。除此以外,ZY17120使用模拟处理存储方式,音频数据直接存储在固体存储器中无须数字压缩,提供更优质的语音和音乐再现,没有常见的背景噪音,且电路断电后语音内容不会丢失。语音信号可通过两个独立的输入通道与ZY17120相连,即差动麦克风输入通道和单端模拟输入通道。对于输出,ZY17120同时提供脉宽调制D类扬声器驱动器和独立的模拟输出。PWM输出能直接驱动一个标准的8Ω扬声器或典型的蜂音器,同时独立的模拟输出可配置为一个单端电流或电压输出以驱动外部放大器。在SPI模式时,用户通过串行接口能完全控制对器件的操作。这包括通过指定操作的起始地址和终止地址随机访问存储器阵列内部的任何存储单元。SPI模式也允许访问模拟通道配置寄存器(APC),该寄存器允许对音频通道、输入、输出和混合进行灵活配置。利用ZY17120的各个功能,设计者可以在高端产品中灵活的进行语音控制。按照ZY17120芯片说明书的电路图焊接外围的电路后,与开发板上的接线如下:引脚配置:MOSI<->TX(PA3)SSEL<->FSS(PA1)SCLK<->CLK(PA0)MISO<->RX(PA2)录音可以在SPI和独立方式下进行,经过多次反复试验,发现在独立方式下录音的效果比在SPI方式清晰很多,所以在录音的时候采用了独立方式,播放的时候采用了SPI方式。3.2.3.LED数码管模块ZLG7289B是广州周立功单片机发展有限公司自行设计的数码管显示驱动及键盘扫描管理芯片,可直接驱动8位共阴式数码管(或64只独立LED),同时还可以扫描管理多达64只按键。ZLG7289B内部含有显示译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式。此外,还具有多种控制指令,如消隐﹑闪烁﹑左移﹑右移﹑段寻址等。ZLG7289B采用SPI串行总线与微控制器接口,仅占用少数几根I/O口线。利用片选信号,多片ZLG7289B还可以并接在一起使用,能够方便地实现多于8位的显示或多于64只按键的应用。按照ZLG7289B芯片说明书的电路图焊接外围的电路,驱动两组两位的LED七段数码管,与开发板的通信是模拟SPI方式,接线如下:引脚配置:CS<->FSS(PC4)CLK<->CLK(PC5)DIO<->RX(PC6)3.2.4.LCD显示屏模块我们选用了基于ST7920控制器的中文图形128X64的LCD显示屏,ST7920控制器系列中文图形液晶模块的软件特性主要由ST7920控制驱动器决定。ST7920同时作为控制器和驱动器,它可提供33路com输出和64路seg输出。在驱动器ST7921的配合下,最多可以驱动256×32点阵液晶。ST7920特性如下:提供8位,4位并行接口及串行接口可选并行接口适配M6800时序自动电源启动复位功能内部自建振荡源64×16位字符显示RAM(DDRAM最多16字符×4行,LCD显示范围16×2行)2M位中文字型ROM(CGROM),总共提供8192个中文字型(16×16点阵)16K位半宽字型ROM(HCGROM),总共提供126个西文字型(16×8点阵)64×16位字符产生RAM(CGRAM)15×16位总共240点的ICONRAM(ICONRAM)LCD显示屏模块与开发板的通信是模拟SPI方式,接线如下:引脚配置:SID<->TX(PB2)CS<->FSS(PB0)SCK<->CLK(PB1)3.2.5.ZIGBEE模块Freescale的MC13213是第二代标准ZigBee无线通信平台,在9x9x1mm71引脚LGA封装中集成了低功耗的2.4GHzRF收发器和8位微控制器,MC13213器件具有60KB的闪存,MC1321x解决方案能在简单的点对点连接到完整的ZigBee网状网络中用作无线连接,小占位面积封装中的无线电收发器和微控制器的组合使它成为成本效益的解决方案,MC1321x中的RF收发器工作在2.4GHzISM频段,和802.15.4标准兼容,收发器包括低噪音放大器,1mW的RF输出功率,带VCO的功率放大器(PA),集成的发送/接收开关,板内的电源稳压器以及完全的扩展频谱的编码和译码,MC1321x中的微控制器是基于HCS08系列微控制器单元(MCU),HCS08A版本,高达60KB的闪存和4KB的RAM。MC13213芯片主要性能SIP系统单封装;集成符合IEEE802.15.4/ZIGBEE标准的2.4GHz的RF无线收发器;优良的无线接收灵敏度(-94dbm)和强大的抗干扰性能;40MHCSO8内核,60KBFLASH及4KRAM;RF输出功率-27dbm-+4dbm,可通过软件编程设置;硬件支持CSMA/CA功能;宽电压范围:2.0~3.4V;集成8位键盘中断KBI和8通道10位模数转换ADC,以及低压检测LVD;片内看门狗定时器COP。与开发板通信采用串行通信模式,接线如下:引脚配置:TTL/T<->PD2(U1RX)TTL/R<->PD3(U1TX)另一个ZIGBEE无线模块,采用与电脑RS232标准串口联线,顺舟科技提供一个底座,底座中使用了SP3232电平转换器,方便与电脑的标准串口通信。3.2.6.控制面板模块主要由六个按键组成,与开发板的六个GPIO口相连,采用低电平触发,在没有铵下的时候处于高电平,接一个10K的电阻连接到3.3V电源。与开发板的接线如下:引脚配置:K1<->PF1K2<->PF2K3<->PF3K4<->PF5K5<->PF6K6<->PF73.3软件介绍3.3.1uC/OS-II介绍uC/OS-II简介uC/OS是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。μC/OS-II的前身是μC/OS,最早出自于1992年美国嵌入式系统专家JeanJ.Labrosse在《嵌入式系统编程》杂志的5月和6月刊上刊登的文章连载,并把μC/OS的源码发布在该杂志的BBS上。μC/OS和μC/OS-II是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的。CPU硬件相关部分是用汇编语言编写的、总量约200行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。用户只要有标准的ANSI的C交叉编译器,有汇编器、连接器等软件工具,就可以将μC/OS-II嵌人到开发的产品中。μC/OS-II具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。μC/OS-II已经移植到了几乎所有知名的CPU上。严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。uC/OS-II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。uC/OS-II任务管理uC/OS-II中最多可以支持64个任务,分别对应优先级0~63,其中0为最高优先级。63为最低级,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可以使用的任务数有56个。uC/OS-II提供了任务管理的各种函数调用,包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等。系统初始化时会自动产生两个任务:一个是空闲任务,它的优先级最低,改任务仅给一个整形变量做累加运算;另一个是系统任务,它的优先级为次低,改任务负责统计当前cpu的利用率。uC/OS-II时间管理uC/OS-II的时间管理是通过定时中断来实现的,该定时中断一般为10毫秒或100毫秒发生一次,时间频率取决于用户对硬件系统的定时器编程来实现。中断发生的时间间隔是固定不变的,该中断也成为一个时钟节拍。uC/OS-II要求用户在定时中断的服务程序中,调用系统提供的与时钟节拍相关的系统函数,例如中断级的任务切换函数,系统时间函数。uC/OS-II内存管理在ANSIC中是使用malloc和free两个函数来动态分配和释放内存。但在嵌入式实时系统中,多次这样的错作会导致内存碎片,且由于内存管理算法的原因,malloc和free的执行时间也是不确定。uC/OS-II中把连续的大快内存按分区管理。每个分区中包含整数个大小相同的内存块,但不同分区之间的内存快大小可以不同。用户需要动态分配内存时,系统选择一个适当的分区,按块来分配内存。释放内存时将该块放回它以前所属的分区,这样能有效解决碎片问题,同时执行时间也是固定的。任务间通信与同步对一个多任务的操作系统来说,任务间的通信和同步是必不可少的。uC/OS-II中提供了4中同步对象,分别是信号量,邮箱,消息队列和事件。所有这些同步对象都有创建,等待,发送,查询的接口用于实现进程间的通信和同步。uC/OS-II任务调度uC/OS-II采用的是可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的任务。uC/OS-II的任务调度是完全基于任务优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了简化系统设计,uC/OS-II规定所有任务的优先级不同,因为任务的优先级也同时唯一标志了该任务本身。任务调度将在以下情况下发生:a)高优先级的任务因为需要某种临界资源,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度也称为任务级的上下文切换。b)高优先级的任务因为时钟节拍到来,在时钟中断的处理程序中,内核发现高优先级任务获得了执行条件(如休眠的时钟到时),则在中断态直接切换到高优先级任务执行。这种调度也称为中断级的上下文切换。这两种调度方式在uC/OS-II的执行过程中非常普遍,一般来说前者发生在系统服务中,后者发生在时钟中断的服务程序中。调度工作的内容可以分为两部分:最高优先级任务的寻找和任务切换。其最高优先级任务的寻找是通过建立就绪任务表来实现的。uC/OS中的每一个任务都有独立的堆栈空间,并有一个称为任务控制块TCB(TaskControlBlock)的数据结构,其中第一个成员变量就是保存的任务堆栈指针。任务调度模块首先用变量OSTCBHighRdy记录当前最高级就绪任务的TCB地址,然后调用OS_TASK_SW()函数来进行任务切换。μC/OS-II的组成部分:μC/OS-II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。a)核心部分(OSCore.c)是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里。b)任务处理部分(OSTask.c)任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为μC/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。c)时钟部分(OSTime.c)μC/OS-II中的最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。d)任务同步和通信部分为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。e)与CPU的接口部分是指μC/OS-II针对所使用的CPU的移植部分。由于μC/OS-II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。3.3.2ZIGBEE协议简介ZigBee是近年来发展迅速的基于无线传感器网络的近距离、低功耗、低成本、低复杂度的无线通信技术。协议定义了两种类型的设备一全功能设备(FFD),精减指令设备(RFD)。全功能设备可作为网络的协调器,路由器,实现FFD功能需要足够的计算能力和存储能力。RFD设备功能简单,由单片机就能完成,FFD设备之间可以相互通信,RFD设备只能与FFD设备通信。协议的这种可裁剪能力极大的降低了组建系统的成本,在很多行业获得了广泛的应用。ZigBee,在中国被译为"紫蜂",它与蓝牙相类似.是一种新兴的短距离无线技术.用于传感控制应用(sensorandcontrol).此想法在IEEE802.15工作组中提出,于是成立了TG4工作组,并制定规范IEEE802.15.4.2002年,ZigBeeAlliance成立.2004年,ZigBeeV1.0诞生.它是ZigBee的第一个规范.但由于推出仓促,存在一些错误.2006年,推出ZigBee2006,比较完善.2007年底,ZigBeePRO推出ZigBee的底层技术基于IEEE802.15.4.物理层和MAC层直接引用了IEEE802.15.4在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷。对工业,家庭自动化控制和工业遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,而工业自动化,对无线数据通信的需求越来越强烈,而且,对于工业现场,这种无线数据传输必须是高可靠的,并能抵抗工业现场的各种电磁干扰。因此,经过人们长期努力,ZigBee协议在2003年正式问世。另外,ZigBee使用了在它之前所研究过的面向家庭网络的通信协议HomeRFLite。长期以来,低价、低传输率、短距离、低功率的无线通讯市场一直存在着。自从Bluetooth出现以后,曾让工业控制、家用自动控制、玩具制造商等业者雀跃不已,但是Bluetooth的售价一直居高不下,严重影响了这些厂商的使用意愿。如今,这些业者都参加了IEEE802.15.4小组,负责制定ZigBee的物理层和媒体介入控制层。IEEE802.15.4规范是一种经济、高效、低数据速率(<250kbps)、工作在2.4GHz和868/928MHz的无线技术,用于个人区域网和对等网络。它是ZigBee应用屋和网络层协议的基础。ZigBee是一种新兴的近距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术,它是一种介于无线标记技术和蓝牙之间的技术提案。主要用于近距离无线连接。它依据802.15.4标准,在数千个微小的传感器之间相互协调实现通信。这些传感器只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另一个传感器,所以它们的通信效率非常高。①低功耗。在低耗电待机模式下,2节5号干电池可支持1个节点工作6~24个月,甚至更长。这是ZigBee的突出优势。相比较,蓝牙能工作数周、WiFi可工作数小时。现在,TI公司和德国的Micropelt公司共同推出新能源的ZigBee节点。该节点采用Micropelt公司的热电发电机给TI公司的ZigBee提供电源。②低成本。通过大幅简化协议(不到蓝牙的1/10),降低了对通信控制器的要求,按预测分析,以8051的8位微控制器测算,全功能的主节点需要32KB代码,子功能节点少至4KB代码,而且ZigBee免协议专利费。每块芯片的价格大约为2美元。③低速率。ZigBee工作在20~250kbps的较低速率,分别提供250kbps(2.4GHz)、40kbps(915MHz)和20kbps(868MHz)的原始数据吞吐率,满足低速率传输数据的应用需求。④近距离。传输范围一般介于10~100m之间,在增加RF发射功率后,亦可增加到1~3km。这指的是相邻节点间的距离。如果通过路由和节点间通信的接力,传输距离将可以更远。⑤短时延。ZigBee的响应速度较快,一般从睡眠转入工作状态只需15ms,节点连接进入网络只需30ms,进一步节省了电能。相比较,蓝牙需要3~10s、WiFi需要3s。⑥高容量。ZigBee可采用星状、片状和网状网络结构,由一个主节点管理若干子节点,最多一个主节点可管理254个子节点;同时主节点还可由上一层网络节点管理,最多可组成65000个节点的大网。⑦高安全。ZigBee提供了三级安全模式,包括无安全设定、使用接入控制清单(ACL)防止非法获取数据以及采用高级加密标准(AES128)的对称密码,以灵活确定其安全属性。⑧免执照频段。采用直接序列扩频在工业科学医疗(ISM)频段,2.4GHz(全球)、915MHz(美国)和868MHz(欧洲)。4详细设计4.1硬件层设计本系统采用以ARM7为核心的EasyArm1138作为开发板,语音模块采用周立功单片机发展有限公司的ZY17120,有独立和SPI运行模式,在我们系统中采用SPI方式,LCD控制器采用了ST7920,与主机通讯采用SPI,可调节背景亮度,LED数码管驱动器采用ZLG7289B,连接两组两位的8字形数码管,与主机通信采用模拟SPI方式,ZIGBEE选用飞思卡尔的MC13213,内部封装HCS08和MC13192两个芯片。硬件结构图如图三所示:ZY17120语音模块ZY17120语音模块ZT7920控制器LCD显示器MC13213键盘按钮天线ZLG7289B驱动LED数码管UARTSPISPISPIEasyArm1138FlashSRAM图4-1硬件结构图具体的原理图如图四所示:图4-2硬件原理图4.2系统层设计操作系统移植简介:

4.2.1

这一部分是用户根据自己的应用系统来定制合适的内核服务功能,包括2个文件:os_cfg.h和includes.h。图4-3文件结构图

os_cfg.h用来配置内核,用户根据需要对内核进行修改,留下需要的部分,去掉不需要的部分,比如系统可提供的最大任务数量,是否定制邮箱服务,是否提供优先级动态改变功能等等,所有的配置更改包括头文件的增减均在该文件中进行。

includes.h系统头文件,整个实时系统程序所需要的文件,包括了内核和用户的头文件,这样使得用户项目中的每个.c文件不用分别去考虑他实际上需要哪些头文件。

4.2.2与处理器相关的代码

这是移植中最关键的部分。内核将应用系统和底层硬件有机地结合成一个实时系统,要使同一个内核能适用于不同的硬件体系,就需要在内核和硬件之间有一个中间层,这就是与处理器相关的代码,处理器不同,这部分代码也不同,我们在移植时需要自己处理这部分代码,在μc/os中这一部分代码分成3个文件:os_cpu.h,os_cpu_a.asm,os_cpu_c.c。

4.2

包含了用#define定义的与处理器相关的常量、宏和类型定义,具体有系统数据类型定义、栈增长方向定义、关中断和开中断定义、系统软中断的定义等。(1)不依赖于编译的数据类型

μc/os-ⅱ不使用c语言中的short,int和long等数据类型的定义,因为他们与处理器类型有关,隐含着不可移植性,代之以移植性强的整数数据类型,这样,既直观又可移植。根据ads编译器的特性,代码为:

typedefunsignedcharboolean;

typedefunsignedcharint8u;

typedefsignedcharint8s;

typedefunsignedshortint16u;

typedefsignedshortint16s;

typedefunsignedintint32u;

typedefsignedintint32s;

typedeffloatfp32;

typedefdoublefp64;

typedefint32uos_stk;(2)使用软中断swi做底层接口

因为带t变量的arm7处理器核具有两个指令集,用户任务可以使用两种处理器模式,为了使底层接口函数与处理器状态无关,同时在任务调用相应函数时不需要知道该函数位置,本例使用软中断指令swi作为底层接口,使用不同的功能号区分不同的函数,其swi服务函数代码为:(3)os_stk_growthμc/os-ⅱ使用结构常量os_stk_growth指定堆栈的生长方式,其代码为:#defineos_stk_growth14.2.包含了与移植有关的c函数,包括堆栈的初始化和一些钩子函数的实现,但是最重要的是ostaskstkinit()函数,该函数是在用户建立任务时系统内部自己调用的,用来对用户任务的堆栈初始化。在arm7体系结构下,任务堆栈空间由高至低递减,依次保存着pc,lr,r12,…,r1,r0,cpsr的初始化堆栈结构,当用户初始化了堆栈,ostaskstkinit()就返回新的堆栈指针stk所指的定地址。ostaskcreate()和ostaskcreateext()会获得该地址并将他保存到任务控制块tcb中,其他的几个钩子函数必须声明,但可以不包含任务代码,这些钩子函数在本移植中全为空函数。4.2.2μc/os-ⅱ移植的绝大部分工作都集中在os_cpu_a.s文件的移植上,在这个文件里,最困难的工作又集中体现在osintctxsw和ostickisr这两个函数的实现上。这是因为这两个函数的实现是和移植者的移植思路以及相关硬件定时器、中断寄存器的设置有关,在实际的移植工作中,这两个地方也是比较容易出错的地方,这部分需要对处理器的寄存器进行操作,所以必须用汇编语言编写,包括4个子函数:osstarthighrdy()、osctxsw()、osintctxsw()、ostickisr()。osstarthighrdy()该函数首先调用钩子函数ostaskswhook(),然后将osrunning标志位设置为真,表示任务开始执行,从而保证任务切换操作的正确执行,紧接着从具有最高优先级的任务控制块中取得任务的堆栈指针,初始化堆栈指针寄存器sp,然后恢复其他的寄存器,开始执行最高优先级的任务。osctxsw()该函数在任务级任务切换函数中调用,首先保存处理器寄存器,将当前sp存入任务tcb中,载入就绪最高优先级任务的sp,从新任务的任务堆栈中恢复处理器所有寄存器的值,然后执行中断返回指令。osintctxsw()该函数是在isr中执行任务切换功能,其原理基本上与任务级的切换相同,区别只是isr已经保存了cpu的寄存器,因此不要再进行类似的操作,只需对堆栈指针作相应的调整即可。ostickisr()该函数是系统时钟节拍中断服务函数,首先要保存处理器寄存器,接着调用osintenter()函数,以保证中断嵌套层数不超过255层,如果满足了该条件,则把堆栈指针保存到当前任务的任务控制块tcb中,然后给产生中断的设备清中断,重新允许中断,接下来调用ostimetick()来维持μc/os-ⅱ内部的定时以及调用osintexit()函数决定是否因为这个中断服务程序的执行,使得更高优先级的任务就绪。4.3软件层设计任务分为三大主要任务:主要思想是利用钩子函数中判断信号量,恢复相应的任务,从而达到抢占CPU的目的。优先级设置:a)手动大于自动;b)控制面板任务大于报站任务,报站任务优先于播放广告任务。根据报站系统对实时性的要求不同分为3个层次,即实时任务区,分时任务区,后台任务区,实时任务区是运行信号量变更所触发的任务,分时任务区是运行周期性或者实时性要求不高的任务,比如广告任务,后台任务区运行空闲任务和统计任务。任务的转换如图4-4所示:图4-4任务转换图4.3.1.任务介绍初始化任务,优先级为0,此任务主要用于初始化单片机外设,设定信号量等初始值,显示欢迎信息等,在首次运行后,执行完任务后挂起自身,并不再恢复此任务。报站处理任务,优先级为2,根据ZigBee信号量的值判断到了哪个车站,控制语音模块和LCD显示屏播放和显示相应的信息。执行完后要返回被中断点,但是当时可能是广告放一到半的地方,如果返回中断点继续显示广告,则只会显示一半的广告内容,所以采取把广告任务删除后,重新创建广告任务,然后再调用OSTaskSuspend(OS_PRIO_SELF);挂起自己,再进行任务调度。按键处理任务,优先级为1,根据key信号量的值执行相应的操作,如下一站,上一站,重复报站,温馨提示,文明用语等,任务的实现是通过修改ZigBee信号量触发信号量处理任务,由于优先级为1,所以在修改信号量后挂起时,返回时可能是播放广告,或者运行信号量处理,处理的方法是删除优先级高(信号量处理任务)的任务再重建。广告处理任务,优先级为5(最低级),在比自己优先级高的任务被挂起时(即系统处于空闲时),执行广告任务。创建任务的代码:OSTaskCreate(taskStart, (void*)0,&GstkStart[TASK_START_STK_SIZE-1],TASK_START_PRIO);//启动任务,初始单片机及外设,设定信号量等OSTaskCreate(task1Start, (void*)0,&CoutStkStart[TASK_COUT_STK-1],TASK_COUT_PRIO);//中控处理任务OSTaskSuspend(TASK_COUT_PRIO);//如果不马上挂起,将触发钩子函数中的恢复任务从而导致出错OSTaskCreate(task2Start,(void*)0, &KeyStkStart[TASK_KEY_STK-1],TASK_KEY_PRIO);//控制面板任务OSTaskSuspend(TASK_KEY_PRIO);//如果不马上挂起,将触发钩子函数中的恢复任务从而导致出错OSTaskCreate(task0Start,(void*)0,&GUIStkStart[TASK_GUI_STK-1], TASK_GUI_PRIO);//图形界面处理任务钩子函数部分:钩子函数部分,位于os_cpu_c.c文件中,钩子函数中对各个信号量进行判断,如果符合条件,则恢复相应的任务。4.3.2.中断设置ZIGBEE的中断服务函数,当ZIGBEE接到信息时,并且信息是合法的时候,改变int_ZigBee信号量。按键的中断服务函数,当控制面板上有按钮被按下时,触发低电平中断,判断是具体的哪个引脚,相应地改变int_ZigBee信号量的值。看门狗中断服务函数,增加看门狗功能,以防系统跑飞,保障系统的稳定性。4.3.3.系统相关函数设置钩子函数部分,位于os_cpu_c.c文件中,钩子函数中对信号量int_ZigBee和信号量int_key进行判断,如果符合条件,则恢复相应的任务。具体的程序流程如图六所示。图4-5软件流程图5系统测试5.1测试简介1.从测试人员角度看,可分为手动测试和自动测试。

2.从源代码的角度可分为单元测试和功能测试。

3.从理论定义来分,可分为黑箱测试,白箱测试和灰箱测试。5.1.1.黑盒测试黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。

黑盒测试的优点有:

1)比较简单,不需要了解程序内部的代码及实现;

2)与软件的内部实现无关;

3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;

4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;

5)在做软件自动化测试时较为方便。

黑盒测试的缺点有:

1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;

2)自动化测试的复用性较低。

5.1.2.白盒测试白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代码内容的测试工作。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。白盒测试的直接好处就是知道所设计的测试用例在代码级上哪些地方被忽略掉,它的优点是帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。白盒测试的缺点有:1)程序运行会有很多不同的路径,不可能测试所有的运行路径;

2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;

3)系统庞大时,测试开销会非常大。

5.1.3.基于风险的测试基于风险的测试是指评估测试的优先级,先做高优先级的测试,如果时间或精力不够,低优先级的测试可以暂时先不做。有如下一个图,横轴代表影响,竖轴代表概率,根据一个软件的特点来确定:如果一个功能出了问题,它对整个产品的影响有多大,这个功能出问题的概率有多大?如果出问题的概率很大,出了问题对整个产品的影响也很大,那么在测试时就一定要覆盖到。对于一个用户很少用到的功能,出问题的概率很小,就算出了问题的影响也不是很大,那么如果时间比较紧的话,就可以考虑不测试。

基于风险测试的两个决定因素就是:该功能出问题对用户的影响有多大,出问题的概率有多大。其它一些影响因素还有复杂性、可用性、依赖性、可修改性等。测试人员主要根据事情的轻重缓急来决定测试工作的重点。5.2测试用例根据系统的特点,采用白盒测试对本系统测试。一、程序测试双击IAREmbeddedWorkbenchIDE软件,然后选择主菜单的File>Open>File命令,开启了之前完成的工作区窗口,如图5-1所示。图5-1工作区图然后选择主菜单Project>Make命令成功通过编译后出现如图5-2所示。图5-2信息框然后再选择主菜单Projec>Debug命令后出现如图5-3所示。图5-3编译后图最后选择菜单Debug>Go将编译好的程序下载到flash中。系统运行的部分截图如下:图5-4报站部分图5-5站台部分图5-6控制面板功能键图5-7开机画面图5-8广告画面图5-9报站提示图5-10同一站点不重复报站5.3.技术指标1)通信方面:采用ZigBee无线通信来实现数据的通信。ZigBee我们打算选用MC13213模块。以下是它的一些性能指标:通讯协议:IEEE802.15.4调制方式:DSSS数据传输率:250Kbps接受灵敏度:-94dbm通信范围:室内>200米,开阔地>1000米工作温度:-40-85电源:2.0~3.6V物理尺寸:35mmx25mmx9mm2)系统的整体技术指标实时性:能及时准确的播报出站名稳定性:能在各种天气条件和物理位置下,准确的报站可靠性:没有误报,串报站名的情况健壮性:在自动报站失效的情况下,可改为驾驶员手工报站5.4系统测试与结果本系统进过长达3个多月的开发与研究,最后进入了测试阶段,我们选取了几种不同的物理位置及恶劣天气情况下该系统的运行情况,数据如下:测试环境系统运行情况天气晴朗,两个ZIGBEE模块相隔100米。系统正常运行,没有出现误报、漏报等出现。雷雨天气,两个ZIGBEE模块相隔100米系统正常运行,没有出现误报、漏报等出现。大雾天气,两个ZIGBEE模块相隔100米系统正常运行,没有出现误报、漏报等出现。两个ZIGBEE之间有障碍物,相隔70米系统正常运行,没有出现误报、漏报等出现。经过测试,该系统的性能稳定,播报清晰,无不报或误报的情况发生,并且经历了各种极端物理或天气下的考验,达到或超过了我们当时预定的目标,具有很好的健壮性和实时性!6系统运行与维护6.1在EWARM中新建一个新项目6.1.1建立一个项目文件目录首先应该为新项目创建一个目录,用来存放与项目有关的各种文件。项目开发过程中生成的一系列文件,如:工作区文件,开发环境的配置,编译、连接和调试选项配置,各种列表文件和输出文件等都将被存放在这个目录下。用户也可以选择把各种源文件也放在这个目录下。在下面的例子中我们生成一个D:\DEMO目录。6.1.2EWARM虽然是按项目进行管理,但是要求把所有的项目都放在工作区内(Workspace)。用户如果是第一次使用EWARM开发一个新项目,必须先创建一个新工作区,然后才能在工作区中创建新项目。一个工作区中允许存放一个或多个项目。如果用户过去已经建立了一个工作区并且希望把目前要建的新项目放在老工作区内,则可以直接打开老工作区并执行第三步生成新项目。创建新工作区方法如下:启动EWARM开发环境,如图6.1所示。图6-1启动EWARM开发环境选择主菜单的File>New>Workspace命令,然后开启一个空白工作区窗口,如图3.2所示。图6-2空白工作区窗口6.1.3生成新项目下一步就是在工作区中创建新项目,方法如下:1.选择主菜单Project>CreateNewProject,弹出生成新项目窗口。EWARM提供几种应用程序和库程序的项目模板。如果选择Emptyproject,表示采用默认的项目选项设置,为一个空工程。在本例中我们选择Emptyproject,如图6.3所示。图6-3生成新项目窗口2.在Toolchain栏中选择ARM,点击OK按钮,弹出“另存为”窗口。如图3.4所示。图6-4“另存为”窗口3.在“另存为”窗口中浏览和选择新建的D:\DEMO目录,输入新项目的文件名为demo,然后保存。这时在屏幕左边的Workspace窗口中将显示新建的项目名和输出代码模式,如图6-5所示。图6-5新建的项目名项目名后面的Debug表示输出含调试信息的代码文件。EWARM能为项

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论