色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于ECOS操作系統在S3C2510開發板上的應用研究

電子設計 ? 來源:電子設計應用 ? 作者:趙楚瑩,尹俊勛 ? 2020-09-19 16:34 ? 次閱讀

引言

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年才正式推廣使用?,F階段有關ECOS開發的參考資料和專門從事人員仍然很少,造成了ECOS產品研發周期和開發成本的增加。因此,本文提出的ECOS操作系統的驅動底層代碼編寫方法對于使用ECOS開發產品具有相當重要的指導意義。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19404

    瀏覽量

    230809
  • 嵌入式
    +關注

    關注

    5090

    文章

    19176

    瀏覽量

    306938
  • 操作系統
    +關注

    關注

    37

    文章

    6889

    瀏覽量

    123605
收藏 人收藏

    評論

    相關推薦

    基于嵌入式實時操作系統MQX的內核分析及應用研究

    基于嵌入式實時操作系統MQX的內核分析及應用研究
    發表于 08-18 15:29

    HAL移植步驟

    層和變體層中的許多成熟可用的代碼。由于本系統S3C2510處理器的內核是ARM940T,因而可以把S3C2510的目錄建立ECOS庫路徑
    發表于 06-18 07:20

    嵌入式實時操作系統ECOS移植到S3C2510

    /s3c2510_misc.c —— HAL的底層標準函數,包括時鐘平臺初始化、時鐘延時函數、中斷使能、中斷屏蔽、中斷響應等。* src/ hal_diag.c —— 硬件抽象層診斷輸出函數,包含ECOS
    發表于 07-16 06:36

    求一款S3C2510的移植方案

    S3C2510是什么?ECOS系統的主要組成部分有哪些?
    發表于 04-26 07:06

    三星官方S3C2510開發板的原理圖(PDF格式)

    三星官方S3C2510開發板的原理圖(PDF格式),僅供參考,不要完全照抄。三星沒說讓我公開,以前我只是提供給真正的OEM商,現在放在這里,希望可以促進此芯片更廣的使用。好東西哦
    發表于 03-25 16:12 ?95次下載

    三星原廠官方的S3C2510開發板原理圖

    三星原廠官方的S3C2510開發板原理圖
    發表于 03-28 09:49 ?77次下載

    嵌入式實時操作系統μC/OS-II與eCos的比較

    敘述嵌入式系統和嵌入式操作系統的概念,簡述嵌入式實時系統的發展階段。重點介紹μC/OSII和eCos 的發展歷史,并且對μ
    發表于 04-15 09:36 ?12次下載

    嵌入式實時操作系統μC OS-II與eCos的比較

    敘述嵌入式系統和嵌入式操作系統的概念,簡述嵌入式實時系統的發展階段。重點介紹μC/OSII和eCos 的發展歷史,并且對μ
    發表于 05-16 14:38 ?20次下載

    ECOS嵌入式系統S3C2510以太網驅動程序設計

    本文介紹了實時性操作系統ECOS的一般以太網驅動程序的開發方法,并具體研究SAMSUNG公司的以ARM940T為內核的S3C2510嵌入式芯
    發表于 08-11 10:31 ?53次下載

    嵌入式操作系統uClinux和eCos的比較

    uClinux和eCos操作系統是兩種性能優良、源碼公開且被廣泛應用的免費嵌入式操作系統。本文通過對uclinux和eCos的對比,分析和總結了嵌入式
    發表于 04-18 08:36 ?1733次閱讀
    嵌入式<b class='flag-5'>操作系統</b>uClinux和<b class='flag-5'>eCos</b>的比較

    UT-S3C2416開發板簡介

    S3C2416是低功耗、高性能、低成本的SAMSUNG ARM9(ARM926EJ)處理器,最具性價比優勢的芯片,S3C2440最完美的替代者。 UT-S3C2416開發板是一款以
    發表于 04-08 16:27 ?97次下載
    UT-<b class='flag-5'>S3C</b>2416<b class='flag-5'>開發板</b>簡介

    NXPl788lwip的無操作系統移植,基于Embest開發板

    NXPl788lwip的無操作系統移植,基于Embest開發板
    發表于 03-26 15:59 ?85次下載

    基于ARM7的S3C44BOX開發板的智能家居系統

    選用三星公司的S3C44BOX ARM7開發板為硬件平臺,以uClinux作為嵌入式操作系統,實現對家庭網絡中的信息家電進行監控,使用戶能夠了解家庭中信息家電的工作狀況,對信息家電進行控制。
    發表于 09-02 10:06 ?9次下載
    基于ARM7的<b class='flag-5'>S3C</b>44BOX<b class='flag-5'>開發板</b>的智能家居<b class='flag-5'>系統</b>

    操作系統Nucleus PLUSS3C2410A開發板應用研究

    Nucleus PLUS是美國ATI 公司為實時性要求較高的嵌入式系統應用設計的操作系統內核。約95%的Nucleus PLUS代碼用ANSI C語言編寫,因此,非常便于移植并能夠支持大多數類型
    的頭像 發表于 03-13 08:04 ?1912次閱讀
    <b class='flag-5'>操作系統</b>Nucleus PLUS<b class='flag-5'>在</b><b class='flag-5'>S3C</b>2410A<b class='flag-5'>開發板</b><b class='flag-5'>上</b>的<b class='flag-5'>應用研究</b>

    基于S3C2410開發板的Bootloader運行原理與實現

    有點類似于PC機的BIOS(基本輸入輸出系統)程序。它的主要作用是為運行操作系統提供基本的運行環境,并操作系統的內核裝載到存儲器(RAM)中的合適位置上去運行。本文將以Samsung公司的S3
    的頭像 發表于 09-22 18:02 ?2339次閱讀
    基于<b class='flag-5'>S3C</b>2410<b class='flag-5'>開發板</b>的Bootloader運行原理與實現
    主站蜘蛛池模板: 天天色天天干天天 | 国产精品亚欧美一区二区三区 | 日韩美女爱爱 | 免费乱理伦片在线观看夜 | 亚洲国产亚综合在线区尤物 | 日本粉嫩学生毛绒绒 | 俄罗斯XXXXXL18 | 日韩高清一区二区三区不卡 | 欧美在线亚洲综合国产人 | 四库影院永久国产精品 | 国产成人精品综合在线 | 国产一区二区三区在线看片 | 亚洲青青青网伊人精品 | 久久爽狠狠添AV激情五月 | 日韩国产精品欧美一区二区 | 日本高清在线一区二区三区 | 国产精品免费一区二区三区四区 | 被同桌摸出水来了好爽的视频 | 亚洲精品一区三区三区在线观看 | 亚洲精品成A人在线观看 | 色综合久久88一加勒比 | 日本在线免费 | 国产亚洲精品久久久久5区 国产亚洲精品久久久久 | 国产精品免费一区二区区 | 99er久久国产精品在线 | 亚洲片在线观看 | 九色91精品国产网站 | 男人的天堂久久精品激情a 男人的天堂黄色片 | 久久这里只精品国产99re66 | 欧美另类老女人 | 人体内射精一区二区三区 | 国产精品一区二区在线观看 | 儿子好妈妈的HD3中字抢劫 | 野花韩国高清完整版在线 | 海角国精产品一区一区三区糖心 | 影音先锋色小姐 | 亚洲国产成人一区二区在线 | 国产一及毛片 | 性做久久久久久久久浪潮 | 国产第一页在线视频 | 99国产精品欲AV蜜桃臀麻豆 |