嵌入式系统开发平台ppt课件

上传人:ZJ****4 文档编号:51837395 上传时间:2018-08-16 格式:PPT 页数:46 大小:1.13MB
返回 下载 相关 举报
嵌入式系统开发平台ppt课件_第1页
第1页 / 共46页
嵌入式系统开发平台ppt课件_第2页
第2页 / 共46页
嵌入式系统开发平台ppt课件_第3页
第3页 / 共46页
嵌入式系统开发平台ppt课件_第4页
第4页 / 共46页
嵌入式系统开发平台ppt课件_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《嵌入式系统开发平台ppt课件》由会员分享,可在线阅读,更多相关《嵌入式系统开发平台ppt课件(46页珍藏版)》请在金锄头文库上搜索。

1、第8章 嵌入式系统开发平台第8章 目录q1. 如何建立嵌入式系统开发平台 q2.数据队列 q3.串口驱动 q4.MODEM接口模块 q5.I2C总线模块 q6.SPI总线模块 q7.其它软件模块第8章 目录q1. 如何建立嵌入式系统开发平台 q2.数据队列 q3.串口驱动 q4.MODEM接口模块 q5.I2C总线模块 q6.SPI总线模块 q7.其它软件模块8.1 如何建立嵌入式系统开发平 台平台的概念平台是一个意义很广泛的词,要准确的定义平台 不是件容易的事。在嵌入式系统中的开发平台具有如 下特点: 层次性 服务性 规范性 通用性 技术密度 平台的概念平台是一个意义很广泛的词,要准确的定义

2、平台 不是件容易的事。在嵌入式系统中的开发平台具有如 下特点: 层次性 服务性 规范性 通用性 技术密度 平台是一个意义很广泛的词,要准确的定义平台 不是件容易的事。在嵌入式系统中的开发平台具有如 下特点: 层次性层次性首先表现在平台本身具有层次,高层的平台是以低层平 台为基础搭建起来的。还表现在每个层次的平台的内部还有层次性 。越高层次的平台越容易使用,对使用者的要求也就越低。服务性平台是为应用服务的,没有应用的平台是无意义的,没有存在 的必要。对于元器件来说,线路板就是它的应用。而API是硬件平台 的应用,应用程序又是API的应用。规范性 通用性 技术密度 平台的概念平台是一个意义很广泛的

3、词,要准确的定义平台 不是件容易的事。在嵌入式系统中的开发平台具有如 下特点: 层次性 服务性 规范性当一个平台建立起来后,其对应用的接口就具有一定的规范。 一个软件模块一旦开发完毕,其接口函数及使用方法就确定了,应 用程序就需要按照规范使用。通用性平台从来不是给一个应用使用的。如果一个平台只能给一个应 用使用,作为平台来说,其设计是失败的(尽管其作为最终应用可 能是成功的)。这是平台的服务性决定的。 技术密度 平台的概念平台是一个意义很广泛的词,要准确的定义平台 不是件容易的事。在嵌入式系统中的开发平台具有如 下特点: 层次性 服务性 规范性 通用性 技术密度 平台特别是商业平台通常由相关领

4、域的专家建立。这是因为往 往需要适应不同的应用的要求,所以其需要的技术含量是很高的。应用程序应用程序接口电路板元器件平台的例子层次性 服务性 规范性 通用性 技术密度 本章重点 介绍该层8.1 如何建立嵌入式系统开发平 台使用平台开发的优势应用程序接口这个嵌入式软件开发平台的提出和 应用是因为其能够解决当前及今后的嵌入式开发过程 中出现的一些矛盾。以下是使用嵌入式软件开发平台 (API)开发的优点: 缩短开发时间 降低对开发人员的要求 降低开发成本 增加稳定性和可靠性 降低软件对硬件变化的敏感性不适合使用平台开发的场合虽然使用平台开发有很多优点,但其也不是万能 的。有一些场合并不适合使用平台开

5、发,这些场合主 要有以下几种: 极大批量的产品 这种产品往往要求硬件成本和生产成本最低化。而使用平台开 发不可避免带来资源占用的增加,反映到硬件上就是成本的增加。 有时这种增加是不可接受的。这种情况不适合用平台开发。没有合适的平台但产品需要尽快上市时开发平台是需要时间的,甚至比当前的项目的时间更长。但如 果后续有类似的产品,则还是建议开发者逐步建立起自己的开发平 台,这会对以后所有的项目带来好处。需要极度榨取硬件性能的场合除了极大批量的产品需要极度榨取硬件性能外,估计只有科学 研究和一些一件一件制造的高价值产品(如巨型机)需要这样做了 ,在普通的企业中应该不容易见到。建立开发平台的方法1.选择

6、操作系统操作系统(OS)是一个基础的软件平台。因此,建立软件开发平台 (自己的API)首先需要选择一个合适的操作系统。操作系统的选择与应 用相关的,但对于嵌入式系统一般需要选择嵌入式操作系统。2.制定API规范及应用程序编写规范有了操作系统,就可以制订API规范和程序编写规范了。这些规范一 部分已经被操作系统规定好了,另一部分需要自己制订。建议这些规范 尽量靠近与已存在的事实标准,以减少学习时间。3.获取成熟的软件模块并修改适合指定的规范开发人员可以通过各种途径获取成熟的软件模块,还可以获取一些 商业和自由的软件模块。这些软件模块不一定适合自己的规范,这就需 要对这些软件模块进行进一步的修改或

7、包装以适应自己的规范。4.编写自己的软件模块通过外部途径不一定能够获取所有必须的软件模块,此时就需要自己编写软件模块了。 编写自己的软件模块因为开发平台基于操作系统,所以很可能多个任务 和/或同时访问同一个API函数。这就需要API函数必须 是可重入的。这里主要介绍如何使这些函数可重入, 和其它一些内容。1.使用任务2.禁止然后允许中断3.使用信号量4.使用数据队列5.禁止然后允许任务调度6.使用一个任务作为模块服务器7.复合方法编写自己的软件模块因为开发平台基于操作系统,所以很可能多个任务 和/或同时访问同一个API函数。这就需要API函数必须 是可重入的。这里主要介绍如何使这些函数可重入,

8、 和其它一些内容。1.使用任务有一些设备需要CPU周期为其服务,典型的是扫描显示和扫描 键盘。可以给它们分配相应的任务,与用户任务一起调度。这样, 就可以使用任何任务间通信的方法实现。键盘扫描 任务显示任务用户任务操作系统内核通信通信编写自己的软件模块2.禁止然后允许中断有一些设备需要的访问时间很短,如全局变量。它们可以通过 禁止中断访问设备允许中断的方式编写软件模块。任务A允许中断禁止中断中断服务函数全局变量编写自己的软件模块3.使用信号量一些设备需要的访问时间比较长,使用方法2可能造成关中断时 间过长。此时可以使用信号量来编写软件模块。具体过程为申请信 号量访问设备发送信号量。信号量访问独

9、享资 源之前申请 信号量其它任务申请信 号量受阻,不能 访问独享资源独 享 资 源任务A任务B任务C信号量信号量申请成 功后,可以访 问独享资源编写自己的软件模块4.使用数据队列有一些设备具有自己的中断,典型的是串口输出。可以利用消 息队列将用户任务需要的服务通过消息队列排队、缓冲起来,利用 中断功能依次服务。任务A任务B任务C中断服务函数数据队列编写自己的软件模块5.禁止然后允许任务调度当中断服务程序不可能访问这个资源时,可以使用本方法避免 实现函数重入。但是不推荐用户使用此方法。 任务A允许任务切换禁止任务切换中断服务函数独 享 资 源编写自己的软件模块6.使用一个任务作为模块服务器 当一

10、个软件模块十分复杂,使用上述方法难以保证API函数可 重入性时,或软件模块需要在单任务环境和多任务环境都能够使用 时,可以依照单任务的方式编写,然后编写一个任务作为服务器, 由这个服务器直接操作这个软件模块,而其它的任务通过消息队列 等方式与之通讯,把需要的操作提交给服务器,而服务器通过消息 邮箱等方式返回操作结果。服务器 任务任务A任务B.任务N软件包数据队列编写自己的软件模块6.使用一个任务作为模块服务器 当一个软件模块十分复杂,使用上述方法难以保证API函数可 重入性时,或软件模块需要在单任务环境和多任务环境都能够使用 时,可以依照单任务的方式编写,然后编写一个任务作为服务器, 由这个服

11、务器直接操作这个软件模块,而其它的任务通过消息队列 等方式与之通讯,把需要的操作提交给服务器,而服务器通过消息 邮箱等方式返回操作结果。7.复合方法 有一些驱动程序比较复杂(例如通讯协议),可以结合两种或 两种以上的方法实现。 编写自己的软件模块编写软件模块由一个要注意的地方是:必须把与硬件相 关的部分和与硬件无关的部分分开。这可以通过把与硬件相 关的部分放在驱动程序中实现。这样,硬件变化时只需要重 新编写驱动程序即可。驱动程序也可以分层实现。也可以通 过配置实现,不过这有时不太容易实现。当然可以合并使用 。硬件平台A硬件平台B硬件平台C硬件驱动A硬件驱动B硬件驱动C软件模块软件模块软件模块软

12、件模块应用 于不同的硬件 平台时,只需 要修改相应的 硬件驱动第8章 目录q1. 如何建立嵌入式系统开发平台 q2.数据队列 q3.串口驱动 q4.MODEM接口模块 q5.I2C总线模块 q6.SPI总线模块 q7.其它软件模块8.2 数据队列简介数据队列一般用于数据缓存,可以用来平衡速率 不同的两个部件,使快速部件无需等待慢速部件。任务A任务B数据队列任务A产生信 息快而短促任务B处理信 息相对较慢8.2 数据队列简介数据队列一般是先入先出(FIFO)的,但本数据 队列可以配置为后入先出。本数据队列是可配置可裁 减的模块,并且不依赖于操作系统,可以在前后台系 统中使用。数据队列使用的空间由

13、用户分配且由这个 空间的地址唯一识别一个数据队列。8.2 数据队列API函数数据队列软件模块包括的API函数如下所示:API函数名功能简介 QueueCreate 建立数据队列 QueueRead 获取队列中的数据 QueueWrite FIFO(先进先出)方式发送数据 QueueWriteFront LIFO(后进先出)方式发送数据 QueueFlush 清空队列 QueueNData 取得队列中已存储数据的数目 QueueSize取得队列中总共可以存储的数据数目API函数45673012数据队列有效数据空间空闲数据空间QueueRead读队列中数据QueueWriteFIFO方式写数据Qu

14、eueWriteFrontLIFO方式写数据注:API函数的具 体使用方法,请 参看相关手册。QueueCreateQueueFlushQueueNDataQueueSize第8章 目录q1. 如何建立嵌入式系统开发平台 q2.数据队列 q3.串口驱动 q4.MODEM接口模块 q5.I2C总线模块 q6.SPI总线模块 q7.其它软件模块8.3 串口驱动简介在实际应用中,嵌入式系统往往不是作为一个独 立的控制单元而存在,它还要和其它控制单元进行通 信。这些控制单元可以是另一个嵌入式系统,也可以 是PC机。如果双方均遵循同样的通讯协议,就可以互 相通讯了。8.3 串口驱动API函数串口驱动软件

15、模块包括的API函数如下所示:API函数名功能简介 UART0Init 初始化UART0 UART0Putch 发送一个字节数据 UART0Write 发送多个字节数据 UART0Getch 接收一个字节数据UART0InitUART0Init8.3 串口驱动API函数串口驱动软件模块包括的API函数如下所示:主机A主机BUART0GetchUART0Putch UART0WriteTXDRXDUART0Putch UART0WriteUART0GetchTXDRXD第8章 目录q1. 如何建立嵌入式系统开发平台 q2.数据队列 q3.串口驱动 q4.MODEM接口模块 q5.I2C总线模块

16、q6.SPI总线模块 q7.其它软件模块8.4 MODEM接口简介在实际应用中,嵌入式系统和其它控制单元的通 信可能不局限于一个小的地理范围,如跨城市通讯甚 至跨洲通讯。此时,如果需要布置专门的通讯线路则 成本太高,利用现成的通讯网络成为唯一的选择。而 电话网络是目前分布最广的廉价通讯网络。不过,要 利用电话网络需要一种接口设备,这就是MODEM( 调制解调器)。8.4 MODEM接口模块API函数MODEM接口软件模块包括的API函数如下所示:API函数名功能简介 ModemInit初始化MODEM GetModemState获取MODEM状态 ModemWrite通过MODEM发送多个字节数据 ModemGetch从MODEM获取一个字节数据 ModemDiaUP通过MDOEM拨号 ModemDiaDown挂断MODEM8.4 MODEM接口模块API函数所有API函数的返回值为当前MODEM的状态,如 下所示:MODEM状态状态说

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号