论文部分内容阅读
随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统显现出其广阔的发展前景。然而,随着嵌入式设备应用的日趋广泛和深入,功能也日愈强大,所要求存储器的容量也越来越大,于是便出现了如何解决嵌入式设备中低成本、大容量的存储系统的问题。并且由于嵌入式设备种类繁多的特点也决定了不同的嵌入式产品在开发时都必须设计与自己相配套的设备驱动程序。怎样在特定的嵌入式设备中设计存储卡驱动程序就成为本课题研究的重心。Linux操作系统以其开放源代码、易于开发、功能强大、稳定、可裁剪、成本低等优势迅速跻身于主流嵌入式开发平台。而存储卡SD卡是在mmc卡的基础上开发出来并且功能上多了版权保护,写保护,另外传输速率比mmc高很多。目前SD卡在消费电子存储卡市场中成已为主流产品。本研究通过扩展S3c2410开发板的功能,并动态加载SD卡驱动程序到内核的方式,最终实现嵌入式设备在Linux下增加存储容量的目的。本文首先详细介绍了嵌入式Linux系统的体系结构以及嵌入式Linux系统设计的基本步骤,并阐述了基于S3c2410开发平台构建一个可运行的嵌入式Linux系统的过程。然后分析了Linux内核的组成、工作机制及Linux下设备驱动程序的结构。本文从SD卡硬件特性入手,采用SD通信模式对驱动进行改进,利用中断方式和DMA方式实现数据传输,使用I/O请求命令函数来完成对SD卡的操作。最终实现了在所搭建的开发环境Linux系统下数据缓存SD卡的设备驱动程序。并在此基础上实现在bootloader中嵌入式系统的自动升级。本文最后分析了项目开发中嵌入式系统设备系统升级方法的局限性与升级方式不便性的问题和原因。从减少升级带来的影响与扩展嵌入式外设需求这两个方面出发,实现在bootloader中实现ARM-Linux嵌入式系统自动升级。