论文部分内容阅读
摘要:使用Linux进行嵌入式产品开发有一个很大的优势,就是开发资源丰富,且成本低廉。但是,技术路线复杂多样,专业人才相对匮乏是Linux嵌入式系统开发面临的一个难题。文章描述了嵌入式系统的特色,分析了嵌入式系统设计的过程,并从实际应用的角度,讨论了如何在S3C2410开发板上移植嵌入式Linux 2.6.11.7内核系统,用于构建H.264多媒体系统。
关键词:嵌入式系统;Linux;内核;文件系统
0 引言
随着多媒体技术与通讯技术相结合的信息技术的快速发展和互联网的广泛应用,PC时代也过渡到了后PC时代。在数字信息技术和网络技术高速发展的后PC时代,嵌入式技术越来越与人们的生活紧密结合。
1 嵌入式系统与Linux
操作系统为用户使用计算机及其外部设备提供最基本的接口程序,管理计算机上的资源。随着应用领域的扩大,为了适应不同的应用场合,考虑到系统的灵活性、可伸缩性以及可裁剪性,一种以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统——嵌入式操作系统随之产生。
Linux操作系统是一种性能优良、源码公开且被广泛应用的免费操作系统,由于其体积小、可裁减、运行速度高、良好的网络性能等优点,可以作为嵌入式操作系统。而Linux的低成本和开放性,更是它应用于嵌入式系统领域的优势。嵌入式Linux是按照嵌入式操作系统的要求而设计的一种小型操作系统,与其它嵌入式操作系统相比,Linux的源代码是开放的,不存在黑箱技术。Linux作为一种可裁剪的软件平台,很可能发展成为未来嵌入式设备产品的绝佳资源。因此,在保持Linux内核系统更小、更稳定、更具价格竞争力等优势的同时,对系统内核进行实时性优化,更加使之能够适应对各种领域的实际要求。
2 嵌入式系统设计的过程
按照嵌入式系统的工程设计方法,嵌入式系统的设计可以分成三个阶段:分析、设计和实现。分析阶段是确定要解决的问题及需要完成的目标,也常常被称为“需求阶段”;设计阶段主要是解决如何在给定的约束条件下完成用户的要求;实现阶段主要是解决如何在所选择的硬件和软件的基础上进行整个软、硬件系统的协调实现。在分析阶段结束后,通常开发者面临的一个棘手的问题就是硬件平台和软件平台的选择,因为它的好坏直接影响着实现阶段的任务完成。
在上述选择中,通常处理器是最重要的,同时操作系统和编程语言也是非常关键的。处理器的选择往往同时会限制操作系统的选择,操作系统的选择又会限制开发工具的选择。
2.1 硬件平台的选择
嵌入式系统的核心部件是各种类型的嵌入式处理器。设计者在选择处理器时要考虑的主要因素有:处理性能、技术指标、功耗、软件支持工具、是否内置调试工具、供应商是否提供评估板。另外,选择其他硬件时,我们也要考虑厂家的生产规模、开发的市场目标、软件对硬件的依赖性。只要可能,尽量选择使用普通的硬件。所以,在CPU及架构的选择上,一个原则是:只要有可替代的方案,尽量不要选择Linux尚不支持的硬件平台。
2.2 软件平台的选择
软件平台的选择涉及到以下几个方面:
操作系统的选择 硬件的不同,会影响操作系统的选择。可用于嵌入式系统软件开发的操作系统很多,但关键是如何选择一个适合开发项目的操作系统。经过多年的开发实践,笔者认为应该从以下几点进行考虑:操作系统提供的开发工具、操作系统向硬件接口移植的难度、操作系统的内存要求、开发人员是否熟悉此操作系统及其提供的API、操作系统是否提供硬件的驱动程序(如网卡等)、操作系统的可剪裁性及操作系统的实时性能。
编程语言的选择 选择编程语言的时候主要考虑通用性、可移植性程度、执行效率以及可维护性等因素。高级语言一般和具体机器的硬件结构联系较少,多数微处理器都有良好的支持,通用性较好。而且高级语言对所有微处理器都是通用的,程序可以在不同的微处理器上运行,可移植性较好。另外,高级语言程序往往是模块化设计,各个模块之间的接口是固定的,当系统出现问题时,可以很快地将问题定位到某个模块内,并尽快得到解决。而且,模块化设计也便于系统功能的扩充和升级。
投件组件的选择 有些软件组件是免费的,有些软件组件是授权的。授权软件组件的费用一般都很高,但大都经过严格的测试,可靠性高,调试时间短。现在也有一些免费的自由软件组件,它们的性能、可靠性也很好。因此开发人员在选择的时候要加以权衡,确定哪种方案更好。
3 应用研究
在S3C2410开发板上移植嵌入式Linux 2.6.11.7内核系
关键词:嵌入式系统;Linux;内核;文件系统
0 引言
随着多媒体技术与通讯技术相结合的信息技术的快速发展和互联网的广泛应用,PC时代也过渡到了后PC时代。在数字信息技术和网络技术高速发展的后PC时代,嵌入式技术越来越与人们的生活紧密结合。
1 嵌入式系统与Linux
操作系统为用户使用计算机及其外部设备提供最基本的接口程序,管理计算机上的资源。随着应用领域的扩大,为了适应不同的应用场合,考虑到系统的灵活性、可伸缩性以及可裁剪性,一种以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统——嵌入式操作系统随之产生。
Linux操作系统是一种性能优良、源码公开且被广泛应用的免费操作系统,由于其体积小、可裁减、运行速度高、良好的网络性能等优点,可以作为嵌入式操作系统。而Linux的低成本和开放性,更是它应用于嵌入式系统领域的优势。嵌入式Linux是按照嵌入式操作系统的要求而设计的一种小型操作系统,与其它嵌入式操作系统相比,Linux的源代码是开放的,不存在黑箱技术。Linux作为一种可裁剪的软件平台,很可能发展成为未来嵌入式设备产品的绝佳资源。因此,在保持Linux内核系统更小、更稳定、更具价格竞争力等优势的同时,对系统内核进行实时性优化,更加使之能够适应对各种领域的实际要求。
2 嵌入式系统设计的过程
按照嵌入式系统的工程设计方法,嵌入式系统的设计可以分成三个阶段:分析、设计和实现。分析阶段是确定要解决的问题及需要完成的目标,也常常被称为“需求阶段”;设计阶段主要是解决如何在给定的约束条件下完成用户的要求;实现阶段主要是解决如何在所选择的硬件和软件的基础上进行整个软、硬件系统的协调实现。在分析阶段结束后,通常开发者面临的一个棘手的问题就是硬件平台和软件平台的选择,因为它的好坏直接影响着实现阶段的任务完成。
在上述选择中,通常处理器是最重要的,同时操作系统和编程语言也是非常关键的。处理器的选择往往同时会限制操作系统的选择,操作系统的选择又会限制开发工具的选择。
2.1 硬件平台的选择
嵌入式系统的核心部件是各种类型的嵌入式处理器。设计者在选择处理器时要考虑的主要因素有:处理性能、技术指标、功耗、软件支持工具、是否内置调试工具、供应商是否提供评估板。另外,选择其他硬件时,我们也要考虑厂家的生产规模、开发的市场目标、软件对硬件的依赖性。只要可能,尽量选择使用普通的硬件。所以,在CPU及架构的选择上,一个原则是:只要有可替代的方案,尽量不要选择Linux尚不支持的硬件平台。
2.2 软件平台的选择
软件平台的选择涉及到以下几个方面:
操作系统的选择 硬件的不同,会影响操作系统的选择。可用于嵌入式系统软件开发的操作系统很多,但关键是如何选择一个适合开发项目的操作系统。经过多年的开发实践,笔者认为应该从以下几点进行考虑:操作系统提供的开发工具、操作系统向硬件接口移植的难度、操作系统的内存要求、开发人员是否熟悉此操作系统及其提供的API、操作系统是否提供硬件的驱动程序(如网卡等)、操作系统的可剪裁性及操作系统的实时性能。
编程语言的选择 选择编程语言的时候主要考虑通用性、可移植性程度、执行效率以及可维护性等因素。高级语言一般和具体机器的硬件结构联系较少,多数微处理器都有良好的支持,通用性较好。而且高级语言对所有微处理器都是通用的,程序可以在不同的微处理器上运行,可移植性较好。另外,高级语言程序往往是模块化设计,各个模块之间的接口是固定的,当系统出现问题时,可以很快地将问题定位到某个模块内,并尽快得到解决。而且,模块化设计也便于系统功能的扩充和升级。
投件组件的选择 有些软件组件是免费的,有些软件组件是授权的。授权软件组件的费用一般都很高,但大都经过严格的测试,可靠性高,调试时间短。现在也有一些免费的自由软件组件,它们的性能、可靠性也很好。因此开发人员在选择的时候要加以权衡,确定哪种方案更好。
3 应用研究
在S3C2410开发板上移植嵌入式Linux 2.6.11.7内核系