- 1、本文档共217页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二、基本概念1
中断驱动方式的基本思路是:用户进程通过 系统调用函数来发起I/O操作,并在发起后 阻塞该进程,调度其他的进程使用CPU。在 I/O操作完成时,设备向CPU发出中断,然后 在中断处理程序中做进一步的处理。在中断 驱动方式下,数据的每次读写还是通过CPU 来完成,但是当I/O设备在进行数据处理时, CPU不必等待,可以继续执行其他的进程。 直接内存访问方式 要使用直接内存访问(Direct Memory Access,DMA)的控制方式,首先在硬件上要有一个DMA控制器。该控制器可集成在设备控制器中,也可集成在主板上。 DMA控制器可以直接去访问系统总线,它能代替CPU去指挥I/O设备与内存之间的数据传送。 DMA控制器包含了一些寄存器,可被CPU来读或写。包括:一个内存地址寄存器、一个字节计数器,以及一个或多个控制寄存器(指明了I/O设备的端口地址、数据传送方向、传送单位,以及每一次传送的字节数)。 DMA工作原理 (本图摘自Andrew S. Tanenbaum: “Modern Operating Systems” ) 5. 使用DMA来访问磁盘,过程如下: CPU对DMA控制器进行编程,告诉它应把什么数据传送到内存的什么地方。并向磁盘控制器发出命令,让它去磁盘驱动器中读入所需的数据块,保存到内部缓冲区中,并验证数据的正确性; DMA控制器通过总线向磁盘控制器发出一个读操作的信号,并把将写入的内存地址打在总线上; 磁盘控制器取出一个字节,按该地址写入内存; 磁盘控制器向DMA发一个确认信号,DMA把内存地址加1,把字节计数器减1。若计数器的值大于0转第2步; DMA控制器向CPU发出一个中断,告诉它数据传输已完成。 系统调用函数print copy_from_user(buffer, p, count); set_up_DMA_controller( ); scheduler( ); 用户进程 strcpy(buffer, “ABCDEFGH”); print(buffer, strlen(buffer)); 中断处理程序 acknowledge_intereupt( );unblock_user( ); return_from_interrupt( ); 基于DMA的控制方式 本节提要 1 3 2 4 嵌入式系统硬件基础 嵌入式系统软件基础 嵌入式操作系统 嵌入式系统设计方法 嵌入式系统的开发——流程 确定产品需求 选择主要芯片 确定编程语言 选择开发环境 RTOS的使用 选择开发方案 设计与调试 测试 测试工具与其他辅助设备 产品 桌面应用程序的编译和加载过程 嵌入式应用程序的编译和加载过程 嵌入式系统的开发——设计与调试 设计 生产 编译器 链接器 调试器 IDE 操作系统 软件测试 评估板 仿真器 逻辑分析仪 边界扫描测试仪 编程器 开发环境 什么是嵌入式开发环境: 源程序 编译器 目标文件 链接器 可重定位程序 定位器 可执行文件 编译器/汇编器/链接定位器 调试器/仿真器 主机(Host)及其工作平台 实时操作系统(可选) 目标评估系统(可选) 测试工具(软件/硬件/协议等,可选) 其他辅助设备(可选) 典型的开发环境 ARM的编译器(1) ADS1.2 ARM公司出品 IDE环境,包括 ARM/Thumb汇编器:armasm ANSI C 编译器 - armcc 和 tcc ISO / Embedded C++ 编译器 - armcpp and tcpp 链接器 – armlink Windows 集成开发环境 – CodeWarrior 格式转换器 – fromelf 库管理器 - armar 调试器 模拟调试器:ARMulator JTAG调试:AXD(与Multi-ICE配合) 支持所有ARM内核,最新版本:RealView2.0 ARM的编译器(2) EW-ARM 瑞典IAR公司出品 著名的嵌入式工具提供商,以提供编译器/协议栈/统一建模工具著称 主要产品:Embeded Workbench(EW)、Make APP、Visual State等 EW-ARM:针对ARM的集成开发环境: C/C++编译器 C-SPY 模拟调试器 ROM-Monitor 多种级别代码优化方法,满足用户在速度、文件大小方面的要求 内建ARM特性优化器 支持多种断点模式 支持Nucleus, VxWorks等RTOS Greenhills GNU 嵌入式系统的调试(1) 嵌入式系统的调试有四种基本方法: 模拟调试(Simulator) 软件调试(Debugger) BDM/JTAG调试(BDM/JTAG Debugge
文档评论(0)