基于ECOS操作系统在S3C2510开发板上的应用研究

发布者:Ziran520最新更新时间:2022-12-26 来源: elecfans关键字:ECOS  操作系统 手机看文章 扫描二维码
随时随地手机看文章

引言

ECOS(Embedded Configurable Operating System,嵌入式可配置操作系统)是一种针对16位、32位和64位处理器的可移植嵌入式实时操作系统。由于其源代码是公开的,因而有越来越多的设计人员开始关注ECOS操作系统。ECOS最大的特点是模块化,内核可配置。最小版本的ECOS只有几百字节,非常适合小型嵌入式系统的开发。相对于嵌入式Linux来说,ECOS有配置灵活和节省资源的优势。它的另一个优点是使用多任务抢占机制,具有最小的中断延迟,支持嵌入式系统所需的所有同步原语,并拥有灵活的调度策略和中断处理机制,因而具有良好的实时性。与Clinux和COS等操作系统相比,ECOS更适合于处理实时信号的设备,如移动通信、WLAN等通信设备的开发。


S3C2510是一款低功耗、高效能、面向以太网系统的微处理器。它的系统时钟可达133MHz,并包含了16/32位宽的ARM940T核、4KB的I-CACHE和4KB的D-CACHE。S3C2510带有两个独立的10/100Mbps的以太网控制器,这两个接口能够以硬件完成IEEE802.3的MAC层处理,因此更适合用作SOHO路由器、internet网关,甚至宽带无线接入设备的开发。ECOS操作系统也非常适合这些网络设备的开发,本文将介绍S3C2510的移植方案,给各种以ARM为内核处理器的ECOS底层移植开发提供一个系统的范例。


ECOS底层移植的基础知识

ECOS系统的主要组成部分如图1所示。操作系统的主要功能及特点是由其内核所决定的,底层移植一般不会涉及到系统内核的内容。由图1可见,硬件抽象层是嵌入式操作系统和硬件直接接触的基本层,其将系统内核和具体的硬件平台彻底隔离开, 实现了系统内核与硬件的无关性,这就是操作系统具有良好可移植性的体现。因此,对于开发人员来说,移植操作系统真正的意义和工作在于移植操作系统的硬件抽象层。

基于ECOS操作系统在S3C2510开发板上的应用研究

图 1 ECOS操作系统结构图

硬件抽象层HAL对处理器结构和系统硬件平台进行抽象,当要在一个新的目标平台上运行ECOS时,只需要对底层的硬件抽象层进行修改,便可迅速地将整个ECOS系统移植到新的平台上。硬件抽象层主要包括三大模块——体系结构抽象层(Architecture HAL)、变体抽象层(Variant HAL)和平台抽象层(Platform HAL)。体系结构抽象层主要是指ECOS所支持的具有不同体系结构的处理器系列,如ARM系列、PowerPC系列、MIPS系列等等。变体抽象层指的是处理器系列中某款处理器在Cache、MMU和FPU等方面所具有的特殊性。如S3C2510属于ARM系列中的ARM940T,在变体抽象层中就会具体地针对ARM940T的Cache等方面作出定义。平台抽象层则是对当前系统硬件平台的抽象,包括了平台的启动、芯片选择与配置、定时设备、I/O寄存器访问以及中断寄存器等等。平台抽象层代码的编写是ECOS移植工作的重点。


HAL移植的主要步骤

建立适当的文件目录

ECOS本身有一个完整的文件目录,只有把新建的底层文件放在适当的文件目录下面,才能确保配置和编译工作的成功,也有助于利用ECOS本身已有的源代码,如结构体系层和变体层中的许多成熟可用的代码。由于本系统中S3C2510处理器的内核是ARM940T,因而可以把S3C2510的目录建立在ECOS库路径packages/hal/arm/arm9/下。 建立S3C2510的cdl文件cdl文件使用cdl脚本语言描述该硬件设备(包或平台)的特性和常用指标。cdl文件实现系统在源码级的功能和指标配置,犹如一个项目管理高层对其仓库中组件特性的登记,只有登记后的包、组件和选项才能被操作系统配置工具识别和配置。以下是S3C2510的cdl文件中的几段重要描述。


* cdl_package CYGPKG_ HAL_ARM_ ARM9_S3C2510 这是S3C2510在ECOSdb中所登记的包的名字,它下面包含了该板的一些基本设置和组件,如母体体系结构(parent)、包含的头文件、编译的C文件等。

* cdl_component CYG_HAL _startUP 系统启动方式,有3种选择:ram启动、rom启动、romram启动。

* cdl_component CYGNUM_ HAL_CPUCLOCK平台的系统时钟设置,以便于ECOS其他组件以此时钟为标准。该平台系统时钟的默认值设为133MHz。

* cdl_option CYGNUM_HAL_ RTC_PERIODECOS内核的运行时钟单位。ECOS内核以一个tick为时钟单位,而一个tick的长度就等于该选项的设定值。


ecos.db中登记S3C2510硬件包

ecos.db是关于ECOS系统的一个数据库文件(在packages目录下),它包含了硬件包管理工具和一些在组件配置库中的包。与cdl文件相比,ecos.db登记了仓库中的物品,而cdl文件则登记每种物品的特性。只有在ecos.db中登记了的包,才能被ECOS的库编译工具(configtool)选中和使用。如果要在配置工具的模板选项中(template)增加可供选择的硬件目标板,那么,需要先在ecos.db中登记其包描述,再增加其目标板描述。一般的辅助硬件(如网卡、串口等)只需要第一步的登记。因此,在ecos.db中登记S3C2510平台硬件包的基本步骤就是登记硬件平台的包描述(package CYGPKG_HAL_ARM_ ARM9_ S3C2510)和目标描述(target S3C2510)。需要注意的是,target S3C2510中所包含的3个硬件描述包CYGPKG_HAL_ARM、CYGPKG_HAL_ARM_ARM9和CYGPKG_HAL_ARM_ARM9_ S3C2510是不能缺少的,因为它们是标板的核心——主体系结构包、子体系结构包和主芯片包。另外,还可以可选地添加其他辅助硬件包(如网卡、串口等)。


编写平台抽象层的有关代码

硬件平台层所需编写的代码文件的一般功能如下所示。

* include /plf_cache.h —— 平台专用cache处理 (可选)。在本系统中不需要编写,可直接调用ARM9变体层的hal_cache.h。

* include / hal_platform_ints.h —— 平台专用中断处理,定义平台中断向量号。

* include / plf_io.h —— I/O 定义和系统寄存器的宏定义。

* include ¬/ hal_platform_setup.h —— 平台启动代码。本文件主要用ARM汇编指令编写,实现平台上电后程序的启动和执行。* src/s3c2510_misc.c —— HAL的底层标准函数,包括时钟平台初始化、时钟延时函数、中断使能、中断屏蔽、中断响应等。

* src/ hal_diag.c —— 硬件抽象层诊断输出函数,包含ECOS系统中printf打印的硬件设备驱动程序。

* misc/ redboot_primary_ ram.ecm —— 基于RAM启动方式的redboot最小配置文件。

* misc/redboot_primary_ rom.ecm —— 基于ROM启动方式的redboot最小配置文件。


硬件启动过程

编写硬件启动的初始化过程是HAL移植的一个难点。当硬件重新上电后,系统的程序指针会自动指向地址0(通常地址0存放着bootloader代码段)。在ECOS操作系统中,程序首先会运行vectors.S文件(该文件存在于hal/arm/arch/src/目录下),它定义了reset_vector、start等各种启动标号。接着调用S3C2510平台层的hal_platform_ setup.h文件中的宏platform_setup1和arm9变体层arm9_misc.c文件中的函数 hal_hardware_init。hal_platform_setup.h定义了宏platform_setup1以供vectors.S调用。该宏定义了目标板上SDRAM和FLASH的初始化启动,其中包括了它们的取数方式和内存大小。然后根据不同的启动方式执行程序。对于RAM启动方式,无需进行程序段与数据段的搬移,系统已认为SDRAM的起始地址即为程序的起始地址;对于ROM启动方式,需要搬移数据段,而程序段无需搬移;对于ROMRAM启动方式,程序段与数据段都需要进行搬移,然后再把程序起始地址映射为SDRAM的起始地址。在程序搬移完成后,系统会进行其他硬件的初始化过程,包括系统时钟、系统CACHE、监控串口等基本硬件设备。


内存布局文件编写

平台的内存布局文件在include/pkgconf目录下。通常,每个平台包括了RAM、ROM和ROMRAM 3种不同启动方式的内存布局文件集。每种启动方式的内存布局文件集都由3个类型的描述文件组成:.h文件包含内存域的C宏定义;.ldi文件定义内存域和内存段位置的链接脚本文件;.mlt文件包括由MLT工具产生的对内存布局的描述。当需要手动修改内存布局时,只有.h和.ldi文件可以被修改,.mlt文件只能由MLT工具生成。


下面以S3C2510的ram启动方式内存布局为例,主要说明mlt_arm_s3c2510_ram.h和mlt_arm_s3c2510_ram.ldi的程序结构。由于S3C2510的开发板有两个16MB的SDRAM,因而要定义两个内存域ram1和ram2。系统设置寄存器在初始化时已经把内存段重新映射,因而两个SDRAM的基地址就是0x0和0x40000000,两个内存域的大小是16MB,分配方式都是可读写的内存段。在mlt_arm_s3c2510_ram.ldi中分为两大部分。首先是MEMORY部分,它定义了在RAM启动方式下所需要的内存域,以及该内存域的起始地址和长度。MEMORY部分的内容必须与mlt_arm_s3c2510_ ram.h中定义的宏一致。其次是SECTIONS部分,它定义了RAM启动方式下所规定的内存段,这些内存段的定义与系统内存管理功能有关。在SECTION_XXX后带有相应的参数,这些参数包括了内存段所属的内存域、起始地址(或者是对齐方式)、虚拟内存地址(VMA)和加载内存地址(LMA)。

以SECTION_fixed_vectors (ram1, 0x200, LMA_EQ_VMA)为例,它表示fixed_vectors段属于ram1内存域,起始地址为0x200,加载内存地址等于虚拟内存地址。LMA_EQ_VMA同时也可以解释为该内存段不需要在程序运行后重新分配加载。


调试结果

S3C2510目标板上带有1块4MB的FLASH和2块16MB的SDRAM。 利用ECOS的自带编译工具configtool对新建的S3C2510目标板进行编译,生成ECOS的库文件。然后把库目录下的install目录内容复制到应用工程目录下,使ECOS库包含到应用工程中。然后把该工程的.elf文件利用EMBEST公司开发的IDE仿真器直接下载到目标板的SDRAM中。此时的ECOS操作系统应为RAM启动方式。


通过IDE对程序的调试与测试结果表明,本文提出的S3C2510移植方案使ECOS操作系统在目标板中运行正常稳定。该操作系统支持多个工作线程的应用程序。S3C2510的串口、网口均能与pc机正常传输数据。


结语

ECOS是一款非常年轻的嵌入式操作系统,1997年才正式推广使用。现阶段有关ECOS开发的参考资料和专门从事人员仍然很少,造成了ECOS产品研发周期和开发成本的增加。因此,本文提出的ECOS操作系统的驱动底层代码编写方法对于使用ECOS开发产品具有相当重要的指导意义。


关键字:ECOS  操作系统 引用地址:基于ECOS操作系统在S3C2510开发板上的应用研究

上一篇:关于ARM7 S3C4510B上μClinux移植问题
下一篇:S3C2440存储控制器的地址空间与MMU分析介绍

推荐阅读最新更新时间:2024-11-06 19:14

基于VxWorks实时操作系统的通信模型设计
软件设计中模块化的思想已日益普遍,模块化的设计能够使程序结构清晰,便于维护,开发起来也更加高效。大型软件通常由多个功能模块构成,模块的功能实现又是由多个线程所支撑的。诸如windows,Linux类型的操作系统自身能够对线程间的通信进行较好的管理,不需要过多的关心底层。而VxWorks是一个多任务系统,任务是系统最基本的执行单元。功能模块间的通信也就是任务间的通信,VxWorks对任务间通信的管理远没有windows的完善。在模块数量多,通信业务大的情况下VxWorks提供的任务间通信机制不能很好的满足实时性与资源利用的要求。本文提出了一种任务间的通信模型,将用于网络通信的UDP方式引进到任务间的通信中,使通信更加灵活和便于管理,
[嵌入式]
基于VxWorks实时<font color='red'>操作系统</font>的通信模型设计
关于BlackBerry近日旧版QNX操作系统通知的声明
中国,北京 - 2021年8月19日 - BlackBerry 一直将保障客户与公众的功能与网络安全作为首要任务。8月17日,BlackBerry发布通知,公布包括 旧版QNX 操作系统 在内的多款来自不同公司的实时操作系统存在整数溢出(integer overflow)问题。 BlackBerry已获悉相关信息,并确认该问题不会对除2012及之前版本以外的最新与近期版本QNX实时操作系统造成影响。 BlackBerry现已告知所有可能受影响的客户,并已发布可解决该问题的软件补丁。此外,我们正在为客户提供7×24小时全天候服务。截至目前,尚未有客户表示受到该问题的影响。 保证软件的安全性能对于BlackBerry至关重
[嵌入式]
Enea OSE增加对Xilinx UltraScale+ MPSoC的支持
-将计算能力、可靠性和可扩展性带入极度苛刻的应用 Enea近日宣布OSE5 MCE多核操作系统支持Xilinx® Zynq® UltraScale+™多处理器片上系统(MPSoC)芯片。OSE5新内核支持最新的A53处理器,并支持UltraScale+ ZCU102板卡,提供流畅的软件应用开发。 OSE5 MCE操作系统提供XMP(SMP/AMP混合)方式的多核支持,使用同一个操作系统进行硬件资源的管理,但每个核均有单独的调度器。该方式结合了SMP与AMP的优点,具有使用方便、结构简单,负载均衡能力强、扩展性较好等特点。OSE的单一镜像提供线性多核可扩展性,凭借极低的延迟和抖动以及最小的额外开销,它能够将UltraScal
[物联网]
Enea OSE增加对Xilinx UltraScale+ MPSoC的支持
QNX汽车安全操作系统现已全面上市
黑莓有限公司子公司及全球互联嵌入式系统软件平台领导厂商QNX软件系统有限公司宣布,QNX®汽车安全操作系统1.0现已全面上市。该全新操作系统可满足汽车市场对数字仪表盘、平视显示器、先进驾驶辅助系统(ADAS)和其它有功能性安全需求的车载应用程序日益增长的需求。 QNX汽车安全操作系统1.0经过认证,可用于需符合ISO 26262ASIL D这一最高安全等级标准的系统。针对功能性安全标准的认证提供独立的验证,当产品被用于乘用车的电气、电子和基于软件的系统中时,能提供非常高水平的可靠性并且降低风险。 QNX软件系统公司产品经理郑怡表示:“一款汽车系统通过ISO 26262认证需花费大量的时间和专业技能。QNX软件系统能够依靠这
[嵌入式]
Android使用占比首度超越Windows 跃居联网装置最大操作系统
随着智能手机等新型联网装置兴起,最新资料显示,全球包括PC、智能手机、平板电脑与联网游戏机等各类联网装置中,运行Android系统的装置占比首度超越微软(Microsoft)Windows系统,跃居成为全球联网装置第一大操作系统。 根据网路流量分析业者StatCounter最新公布资料,2017年3月全球联网装置中,有37.93%装置运行Android系统,37.91%装置运行Windows系统。虽然两者差异不大,但却是Android系统上市8年来首度挤下Windows,跃居为全球第一大联网装置操作系统。 StatCounter执行长Aodhan Cullen表示,这标示科技史上一个旧时代的结束。此一里程碑不但是Android系统
[手机便携]
ARM的嵌入式操作系统概述及汇总
嵌入式操作系统(Embedded Operation System,EOS)是指用于嵌入式系统的操作系统。嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层,如下图所示。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。 嵌入式LINUX 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。 Linux做嵌入式的优势,首先,Linux是开放源代码;其次,Linux的内核小、效率高,可以定制,其系统内核最小只有约134KB;第
[单片机]
ARM的嵌入式<font color='red'>操作系统</font>概述及汇总
斑马技术推出其首款多操作系统RFID读取器——RFD8500
企业资产、人员和业务实时可视化产品与服务全球领先提供商斑马技术公司(Zebra)日前宣布在亚太市场推出其首款多操作系统RFID读取器 RFD8500,可轻松为安卓和iOS设备添加高性能RFID标签和1D/2D条形码扫描功能。RFD8500还能以较低的成本将斑马技术 TC55和MC40等移动智能终端变身为手持式RFID读取器。 RFID技术近几年来为亚太区各行各业带来了诸多变化,尤其是在库存管理、仓储管理、货物追踪等领域。 RFD8500可应用于多个垂直领域,如零售、物流、医疗保健、制造业、商业服务等。RFD8500的标签读取速度高达每秒600个,可助力企业应对在性能和生产效率等层面面临的挑战。 产品主要特点 RFD8
[网络通信]
斑马技术推出其首款多<font color='red'>操作系统</font>RFID读取器——RFD8500
开发51单片机操作系统时应注意哪些问题
51系列单片机是美国Intel公司在1980年推出的高性能8位单片机,在我国的应用非常广泛。目前,在软件设计中需要软件工程师从底层做起,在系统软件设计方面需要做大量的重复性劳动。如果开发一套基于51系列单片机的操作系统,那么用户只需要编写各个任务的程序,不必同时将所有任务运行的各种情况记在心中,不但大大减少了程序编写的工作量,而且减少了出错的可能性。 1 开发平台的选择和论证 开发平台的选择至关重要,因为有时它不光影响进度、产品质量、可维护性等一般问题,还涉及到方案的可实现性。 在本系统中,选择51系列单片机作为操作系统的运行平台有以下原因。 首先,51系列单片机应用非常广泛,一大批性能优越的51兼容单片机相继推出。这
[单片机]
开发51单片机<font color='red'>操作系统</font>时应注意哪些问题
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved