裸机系统的软件开发.ppt_第1页
裸机系统的软件开发.ppt_第2页
裸机系统的软件开发.ppt_第3页
裸机系统的软件开发.ppt_第4页
裸机系统的软件开发.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

嵌入式系统基础,第7章裸机系统的软件开发fittingsoft,1,嵌入式软件开发内容,开发系统软件-通用性操作系统协议栈GUI库函数软件组件与IP(知识产权内核)开发应用软件-专用性在嵌入式操作系统之上进行开发在硬件层上进行开发,2,本章内容,软件的结构和组成监控程序裸机系统软件的设计方法软件的移植问题可移植应用软件的开发原则,3,本章目的,了解嵌入式系统的软件结构与组成掌握裸机系统的软件结构及应用前后台结构中断驱动结构巡回服务结构基于定时器的巡回服务结构了解可移植程序的设计原理,掌握可移植程序的设计方法,4,#include/普通程序main()printf(“hello,worldn”);,5,1软件的结构和组成,#include/嵌入式软件主程序main()while(1)action1();action2();,6,嵌入式系统的软件开发问题,嵌入式操作系统。操作系统与应用软件的集成。软件的结构。嵌入式系统的软件是没有出口的,程序不能“退出”,整个程序的结构应该是无限的循环。嵌入式系统的软件设计需要考虑硬件的支持、操作系统的支持、程序的初始化和引导等诸多的方面。嵌入式系统的软件可能没有操作系统,在裸机上直接开发。,7,1.1嵌入式系统的软件组成,初始化引导代码板级支持包操作系统通信协议栈图形用户界面应用软件,8,嵌入式系统的软件结构,9,1.2、初始化引导代码,初始化引导代码是任务嵌入式系统上电复位后第一个执行的代码复位向量80186:FFFF0HMCS51:0ARM:0执行:自检引导操作系统进入初始化(硬件、软件),10,1.3BSP板级支持包,PC平台的标准化嵌入式系统平台的多样化BSP的功能裸机系统没有BSP用户定制的系统各不相同用户定制的系统主要部分相同含有存储器、定时器、中断等操作系统运行所需的基本部件嵌入式操作系统与用户定制硬件平台之间的接口,11,1.4嵌入式操作系统,复杂系统需要嵌入式操作系统的支持简单系统可以不使用嵌入式操作系统嵌入式操作系统可裁减嵌入式操作系统的内核处理机管理(任务、任务之间的通信和同步等)存储器管理完整的嵌入式操作系统内核文件系统人机界面设备驱动等,12,1.5网络协议栈,协议栈对于具有网络功能的嵌入式系统产品是必要的,目前嵌入式协议栈的提供有两种方式,一种是独立的第三方协议栈产品,一种是嵌入式操作系统的提供商提供协议栈产品。协议栈的运行必须基于嵌入式操作系统的平台支持,但是并不意味着协议栈必须依赖于嵌入式操作系统的API。事实上,许多的嵌入式协议栈,如嵌入式TCP/IP协议栈做到了与操作系统的最大独立性,可以与大多数嵌入式操作系统集成运行。,13,1.6应用软件,嵌入式系统的应用软件一般需要自主开发,不同的嵌入式系统的应用软件各具特色和功能。例如常用的应用软件用于PDA上,记事本、通讯录、计算器等。应用于工业现场总线领域的应用软件如控制软件等。应用软件的开发基于操作系统、网络通信协议栈、图形用户接口、文件系统等一系列的低层API。,14,1.7GUI,对于大多数嵌入式系统,图形用户接口是必要的,特别是随身设备如PDA、手机等。GUI运行在嵌入式操作系统之上。用户开发的与用户交互的应用软件通过调用GUI的功能调用(API)来实现。,15,2监控程序-monitor,监控程序是运行在嵌入式系统中的一段代码,具有与用户进行交互,管理系统资源的功能,具有操作系统内核的一小部分功能。嵌入式系统正式运行时,通常不需要监控程序的干预。目前开发嵌入式系统,监控程序的作为正在减少,只用在一些小的嵌入式系统中。有的嵌入式控制器的制造商把监控程序驻留在ROM中提供给用户在开发时使用,提供的功能如程序下载、调试、固化等。如motorola公司的某些8位嵌入式微控制器,16,3裸机系统软件的设计方法,嵌入式系统软件设计无操作系统的嵌入式软件设计有操作系统的嵌入式软件设计(下一章),17,3.1无操作系统的嵌入式软件设计,前后台系统中断(事件)驱动系统巡回服务系统基于定时器的巡回服务系统,18,3.1.1前后台系统,后台:应用程序是一个无限循环,巡回地执行多个事件,完成相应的操作。这一部分软件称为后台。通常在主程序main()中被调用。前台:中断服务程序处理异步事件,这一部分可以看成是前台。后台可以称为任务级,前台可以称为中断级。强实时性的关键操作一定要用中断来实现。,19,程序框架-后台,main()/*硬件初始化*/while(1)/*后台程序*/action1();action2();actionn();,action_1()/*执行动作1*/action_n()/*执行动作n*/,20,程序框架-前台,Isr_1()/中断服务程序1/*中断1的中断服务程序*/其它中断服务程序Isr_n()/中断服务程序n/*中断2的中断服务程序*/,21,前后台系统的特点,实时性问题-不好中断服务程序提供的数据(实时性数据)只有在后台轮询到的时候才能得到运行应用小系统:微波炉电话机玩具等,22,3.1.2中断(事件)驱动系统,原理整个嵌入式系统软件由中断服务程序构成主程序完成系统的初始化工作应用低功耗系统设计事件驱动系统构成主程序-完成系统的初始化中断服务例程-完成事务处理,23,中断(事件)驱动系统-主程序,/*完成系统的硬件初始化和数据结构的初始化(如果必要的话)*/main()/*todo:系统的初始化*/while(1)其它代码或enter_low_power();/进入低功耗状态,如idle状态,24,中断(事件)驱动系统-中断服务程序,Isr_n()/*其中的一个中断服务程序*/*todo:处理中断事件*/*todo:中断返回*/,25,3.1.3巡回服务系统,应用:嵌入式处理器/控制器的中断源不多解决方案增加中断源-需要硬件,成本高软件方案-软件巡回服务main()/*todo:系统初始化*/while(1)action_1();/*巡回检测事件1并处理事件*/action_2();/*巡回检测事件2并处理事件*/action_n();/*巡回检测事件n并处理事件*/,26,3.1.4基于定时器的巡回服务系统,普通巡回服务系统的缺点处理器全速运行,开销大-功耗高-电池供电系统降低处理器的工作时间-基于定时器的巡回服务系统构成主程序定时器中断服务程序,27,主程序,main()/*todo:系统初始化*/*todo:设置定时器,如自动重新加载方式*/while(1)/其它代码或enter_low_power();,28,定时器中断服务例程,Isr_timer()/*定时器的中断服务程序*/action_1();/*执行事件1的处理*/action_2();/*执行事件2的处理*/action_n();/*执行事件n的处理*/,29,4软件的移植,内容考虑移植的必要性裸机系统的软件移植应用软件的移植可移植应用软件的设计思路,30,4.1移植的必要性,基于嵌入式处理器的原因处理器的更新方式兼容机更新方式-量变,短时间80 x86系列新的体系结构代替旧的体系结构-质变,长时间dragonball:EZ,VZ:68000体系,ARM体系基于嵌入式操作系统的原因旧的操作系统淘汰,新的操作系统被开发出来应用软件需要运行于不同的嵌入式操作系统平台上,31,例:,硬件:Z80,STD总线工业PC软件:DOS的DCSwindows平台、Vxworks平台,32,5.2裸机系统的软件移植,裸机系统的特点通常比较简单(如8位字宽)使用汇编语言或C语言开发不易移植的情况汇编语言开发跨平台模块化差,33,基于硬件抽象层可移植软件结构,34,应用软件,输入/输出模块,处理器硬件,应用软件,硬件抽象层,处理器硬件,输入/输出模块,硬件相关,可移植性结构,硬件抽象层的特点,硬件抽象层具有与硬件密切相关性;为上层应用软件的开发提供统一的接口接口定义的功能应包含硬件或系统所需硬件支持的所有功能;接口定义简单明了,太多接口函数会增加软件模拟的复杂性;具有可测性的接口设计有利于系统的软硬件测试和集成。,35,应用软件,硬件抽象层,处理器硬件,输入/输出模块,硬件抽象层设计方法和原则,软件硬件并行、协同设计分析接口的数据传输特性(双向/单向数据传输,字节型/数据帧型传输模式);分析接口配置属性;定义接口所需的相关函数。,36,应用软件的开发原则,不直接操作硬件调用硬件抽象层的接口函数完成面向应用的软件开发,37,硬件抽象层例子,RS232串行通信接口发送功能接收功能模式、参数设置功能控制功能对于MCS51,8251,16450/16550,etc设计同样的接口函数,uart_putc(uint8ch,uint8c);uart_getc(uint8ch,uint8*buf);uart_puts(uint8ch,uint8*pstr);uart_gets(uint8ch,uint8*pbuf);uart_init(uint8ch,uint8rate,uint8data_len,uint8check,uint8start_bit,uint8stop_bit);,38,应用程序中使用可移植的UART的功能,初始化uartuart_init()发送一个字符uart_putc()接收一个字符uart_getc(),39,5可移植应用软件的设计原则,嵌入式系统开发的初期考虑移植问题设计原则层次化模块化层次化与模块化的结合可设计硬件抽象层可设计操作系统抽象层,40,5.5.3层次化与模块化的结合,41,datatype.h/*基本数据类型*/typedefunsignedcharBOOLEAN;typedefunsignedcharUINT8;typedefsignedcharINT8;typedefunsignedshortUINT16;typedefsignedshortINT16;typedefunsignedintUINT32;typedefsignedin

温馨提示

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

最新文档

评论

0/150

提交评论