μClinux嵌入系统外部硬件设备快速调试.docVIP

μClinux嵌入系统外部硬件设备快速调试.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
μClinux嵌入系统外部硬件设备快速调试.doc

  μClinux嵌入系统外部硬件设备快速调试|第1 摘要:为了加快开发调试μClinux嵌入式系统的外部硬件设备,采用直接物理地址的设备访问方法,在μClinux嵌入式系统中实现了外部硬件设备的快速访问。使用地址映像,将设备的寄存器映像到处理器的内存空间统一编址,通过指针定义的地址操作函数对外设备进行访问。该方法可以在μClinux操作系统支持的嵌入式系统的硬件环境中进行硬件外部设备的快速调试,避免了因等待外部硬件设备驱动程序的编写而耽误外部硬件调试的时间,从而加快外部硬件设备调试速度,提高硬件开发调试效率。 在传感器网络节点中,采用了基于Linux的嵌入式操作系统。开发基于Linux操作系统的嵌入式微处理器应用系统,关键是Linux能够访问嵌入式处理器上扩展连接的外部设备。一旦能够访问连接的外部芯片设备,就可以灵活地在Linux上运行对嵌入式系统外部设备的有关访问控制应用。 Linux在个人PC机上的设备驱动框架作了介绍。介绍了μClinux中访问嵌入式系统外部设备的设备驱动方式的框架。不过对于设备驱动程序的操作函数的实现由于与具体的外设备硬件有关,没有实现的具体统一方案。设备驱动方式采用通用的文件访问方式操作设备,这给对硬件底层不了解的高层用户的程序设计带来了方便。但对于硬件的设计和调试人员来说,不了解底层硬件的操作就无法实现设备的访问。硬件设计人员必须实现访问函数的具体操作过程,以达到对外部扩展设备的访问测试和灵活控制。也就是说,先要完成设备驱动程序,然后才能进行下一步的硬件设备调试。 编写和实现设备驱动程序必须先了解和实现对设备底层的访问,这是个复杂的过程。先要掌握处理器如何寻址外部设备、如何配置外部设备;再实现底层的地址访问函数;然后再编写设备驱动程序的实现函数,进而编写设备驱动程序;将驱动程序编译进Linux操作系统内核;最后在Linux系统中通过标准的设备访问方式访问外部设备。 采用设备驱动方式需要很多时间,以至于耽误硬件设计调试的进程。另一方面,由于应用于嵌入式的Linux不支持动态的加载设备驱动模块,只能将设备的模块编译进Linux内部,也就是要将设备驱动程序重新编译进用于嵌入式的Linux内核中,为此采用驱动方式又增加了内核的代码。 在μClinux操作系统中,可以采用直接物理地址访问外部扩展设备,针对设备寄存器的地址单元进行读写操作,直接与硬件接触,而且便于从最底层了解设备的操作,直接与硬件接触,而且便于从最底层了解设备的工作方式,加快开发调试产品的速度。该方法仅仅修改少量的代码,采用直接地址的访问方式能够快速完成对外设备的访问测试。与设备驱动方式相比,重新编译后使内核代码增加较少。而在μClinux中要采用直接物理地址的外部设备访问,需要修改启动代码,建立设备访问函数,需要一定技巧。本文以Motorola的ColdFireMCF5272嵌入式微处理器平台为例,介绍了μClinux对外部设备的快速访问方法。 500)this.style.ouseg(this) [ 相关贴图 ] 500)this.style.ouseg(this) 1存储空间编址 对于μClinux来说,其设计是针对没有MMU(MemoryManageUnit)的处理器,即μClinux不能使用处理器的虚拟内存管理技术,μClinux采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用程序时程序分页加载。但由于没有MMU管理,实际上μClinux采用实存储器管理策略。 ΜClinux系统对于内存的访问是直接的,它对地址的访问不需要经过MMU,而是直接送到地址线上输出,所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护,各个进程实际上共享一个运行空间。 ΜClinux采用了实内存模式,各个内部段在物理内存(没有虚存)层面都是连续的,其内存空间的地址映像如图1。 根据内存空间是否独立,可以将I/O空间的配置分为两种:一种是I/O空间与内存空间相互独立,这样I/O空间的访问需要使用专门的I/O函数如inb和outb等。IntelCPU就使用这种方法。另一种是将I/O寄存器作为内存的一部分,即I/O寄存器与内存统一编址,这样使用普通的内存访问语句即可读写I/O寄存器。Motorola68K处理器就采用这种体系结构,处理器MCF5272也统一编址。即其RAM、FLASH和外设I/O均统一编址,没有地址变换和内存保护。 2快速设备访问 在C语言中,用指针可以对内存地址单元进行直接访问,因此在设计中可以采用指针对外部设备进行快速操作。 2.1地址映像 为了访问外部设备,首先应将外设的寄存器映像到MCF5272的内存,与内存统一编址。为此,需要修改相应代码。 用于COLDFIREMCF5272的嵌入

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档