嵌入系统开发指南.ppt_第1页
嵌入系统开发指南.ppt_第2页
嵌入系统开发指南.ppt_第3页
嵌入系统开发指南.ppt_第4页
嵌入系统开发指南.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

嵌入系统开发指南 (2002/5),从PC程序员到RTOS程序员,一个产品软件包括,软件系统 软件可执行文件 BOOTROM:烧在BOOTROM里的小软件,管理软件加载等功能。在系统正常运行前使用,类似PC CMOS。 特殊芯片的专用软件(逻辑/微码),用于FPGA可编程芯片、网络处理器。不在CPU运行。 硬件系统:板、卡、芯片等等 文档,嵌入式系统与通用操作系统的区别,通用操作系统: 运行在标准化的硬件平台上,目的是向用户提供多种多样的应用软件运行平台,应用软件与操作系统是两个独立的软件,可以分别单独提供。 嵌入式系统 运行在用户自己开发的硬件平台上,仅提供特殊的,固定的应用。应用软件与操作系统属于一个整体,无法分割,操作系统嵌入到整个软件中。,通用操作系统软件类型,应用软件 客户端软件 服务(Demon)软件 操作系统内核 设备驱动程序,嵌入式系统软件,基本与通用系统作相同的划分,但缺乏通用系统在实现上强制执行的规则 应用软件基本上都属于服务(Demon)程序 大量的特殊硬件的驱动程序。,操作系统内核的内容,进程(任务、线程)管理 进程,任务,线程的区别 进程(任务、线程)间的通信 消息,信号,信号量,管道 内存管理 设备管理 文件系统,进程(任务、线程),任务在运行时的内存分布。 如何实现多任务,任务调度 抢占式多任务系统与非抢占式多任务系统 任务间通信 临界区(数据临界区,可重入代码与代码临界区) 同步与互斥,操作系统的外延,将已经成为标准的开发函数库集成进操作系统,如:ANSI C标准库,POSIX标准库。 将已经成为标准的服务程序集成进操作系统,并提供系统调用使用户使用这些服务程序 Shell(命令行, Windows界面) TCP/IP协议栈 日志 ,嵌入式系统的软件开发(一),商业操作系统包含的内容 DEMO板的操作系统二进制文件,包括内核和一些其他库(ANSI C,TCP/IP,Driver, BSP,shell, File System) 部分源代码(Driver,BSP) 集成开发环境IDE(编辑器,工程管理,编译器,调试器,其他辅助工具) 嵌入式系统调试,HOST与TARGET。,嵌入式系统的软件开发(二),起始点:Demo板的软件。 BSP & BootRom 特殊硬件的驱动程序; 应用软件;,编译过程 编译BSP 编译应用软件 链接操作系统内核、函数库、BSP和应用软件 得到可加载文件(.bin或.hex等),嵌入式系统的软件开发(三),目标机加载过程 加载程序 将计算机上编译得到的可加载文件传送到目标设备。(FTP,或串口XMODEM) 设备上的BOOTROM程序接收,保存到FLASH。 设备启动时,将执行文件加载到内存。 程序指针跳转到执行文件的入口。,嵌入式系统的软件开发(四),调试过程 启动HOST与TARGET的通信程序 启动调试器(host与target) 指定要调试的任务或直接指定调试整个系统 进行调试,嵌入式系统的软件开发(五),要求 详细学习操作系统的说明文档,除非特殊原因,应充分利用系统提供的调用完成任务。 详细了解自己涉及的所有系统调用。(功能,参数,返回值,是否会阻塞,是否可以在中断中被调用,出错类型) 对所有的系统调用错误进行检查并至少输出出错信息作为出错处理。 对操作系统附加的其他开发库调用函数有同样的要求,嵌入式系统的软件开发(六),基础软件 人机界面(命令行,snmp, http) 配置数据文件 日志 业务模块:完成设备的业务功能,如TCP/IP的各种协议,实现中应包括配置管理,热插拔,主备倒换功能。 设备管理:管理硬件设备和逻辑设备,实现中应包括配置管理,热插拔,主备倒换功能。,嵌入式系统的应用软件分类,电信设备软件系统的要求,结构合理,便于组合、剪裁、扩展,及时提供新功能特性,提高产品竞争力。 由于设备要长年连续运行,不希望发生停机,对稳定性的要求非常高! 设备一旦在用户(尤其是电信运营商)处发生问题,后果会比较严重,要尽快恢复。但是,网上情况复杂,发生问题的原因不容易定位,软件要提供尽可能好的调试维护手段。 提供热备份,告警,日志,跟踪,远程维护等辅助功能。,实时系统,多用于电子设备,功能比较单一,要求对外界事件(中断)响应快 采用多任务机制,任务调度比进程调度开销小,可以保证响应速度 用户界面和应用软件扩展能力比较差,是可以接受的。,任务模型,任务的main函数: 初始化(申请资源,初始化数据) 主循环(死循环) 等候事件(挂起点,只能有一个!) 处理事件 ,任务的使用,系统初始化或某个条件下创建任务 创建任务要给出入口函数指针、名称、优先级等。 任务一般是死循环,主函数永不退出。,任务的切换,挂起点应该在主循环里设置一个。比如读事件时挂起,同时指定一个适当的超时时间。有把握时也可以用无限等待。 也可以用轮询方法: 有事做事,无事就睡眠50ms之类; 不理想:任务循环反应慢,无事时又空转。 当前任务挂起或睡眠时,低优先级任务可以执行,vxWorks任务,任务资源:PC指针、寄存器、调用栈、I/O指针等。注意内存是共享资源。 任务的状态: Ready:正在运行或等候运行 Pend:等候资源,如被信号量挂起 Delay:主动进入了睡眠 taskDelay() Suspend:被阻塞,通常是为调试而中断,vxWorks任务,任务优先级:0-255,0最高。 任务调度: 我们目前是可抢占 一个任务释放CPU时,系统选取当前Ready状态的任务中优先级最高的任务投入运行。 任务优先级要适当选择。较高优先级任务要避免长期占据CPU。,vxWorks任务间通讯,共享内存:最简单,但要考虑冲突。

温馨提示

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

最新文档

评论

0/150

提交评论