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

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

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

3天內不再提示

操作系統Nucleus PLUS在S3C2410A開發板上的應用研究

電子設計 ? 來源:電子設計應用 ? 作者:馮寶祥,王桂棠 ? 2020-03-13 08:04 ? 次閱讀

引言

Nucleus PLUS是美國ATI 公司為實時性要求較高的嵌入式系統應用設計的操作系統內核。約95%的Nucleus PLUS代碼用ANSI C語言編寫,因此,非常便于移植并能夠支持大多數類型的微處理器,如X86、68K、PowerPC、MIPS、ARM等。經過截減編譯后,Nucleus PLUS 核心代碼區一般不超過20KB大小。 同時提供TCP/IP網絡、圖形界面Grafix、文件系統File等模塊。還有一個特點就是免費提供源代碼,有利于節省開發費用。

S3C2410A是三星公司推出的基于ARM920T內核高性能低功耗16/32位RISC微控制器,內部集成了豐富的系統外圍控制器。配合Nucleus PLUS操作系統可方便地開發出適于手持設備和各種低功耗產品的應用程序,加快新產品的上市時間。

Nucleus PLUS啟動過程

嵌入式實時操作系統內核Nucleus PLUS的啟動過程如圖1所示。其中板級初始化(INT_Initialize)主要是完成中斷向量表、系統堆棧、時鐘中斷等基本硬件初始化;操作系統初始化(INC_Initialize)主要是完成郵箱、隊列、管道、信號量、事件集等軟件組件初始化;應用程序初始化(Application_Initialize (first_available_memory))主要是完成用戶定義的應用程序初始化,如創建內存池,創建任務、創建信號量、創建中斷、編寫用戶應用程序等。移植的過程中,需要修改的是板級初始化(INT_Initialize)這部分內容,它是由ARM匯編語言編寫的,下面詳細敘述。

操作系統Nucleus PLUS在S3C2410A開發板上的應用研究

圖1 Nucleus PLUS 啟動過程

Nucleus PLUS移植過程

INT-Reset子程序修改

INT_Reset是Nucleus PLUS啟動時的程序入口,因為根據ARM微處理器的體系結構,在系統硬件上電或復位后,ARM所執行的第一條指令在地址0x00000000,即ARM的復位異常(Reset)向量地址,所以在這個地址要放置一個跳轉指令:B INT_Reset 。

在INT_Reset這個子程序中放置的是硬件初始化程序,完成兩個功能:

1. 改變ARM工作模式為管理模式(Supervisor Mode),管理模式是ARM提供給操作系統使用的一種保護模式;

2. 屏蔽FIQ和IRQ中斷,因為在整個系統初始化的過程中,不能被中斷打斷,只有在中斷服務子程序初始化結束后,才可以打開中斷,進而響應中斷。

INT_Reset

MRS R1,CPSR

BIC R1,R1,#MODE_MASK

ORR R1,R1,#SUP_MODE

ORR R1,R1,#LOCKOUT

MSR CPSR_cxsf,R1

建立異常向量表和中斷向量表

根據ARM的體系結構,ARM有7種類型的異常(Exception),每種異常都有各自入口地址,即異常向量表(Exception Vectors)。異常向量表放置在從0X00000000地址開始,連續32字節的空間內。S3C2410A共有56個中斷源,但有些中斷源共用一個中斷向量,所以只要求創建包含32個中斷源的中斷向量表。

INT_Vectors

LDR PC, INT_Reset_Addr

LDR PC, INT_Undef_Addr

LDR PC, INT_Software_Addr

LDR PC, INT_Prefetch_Addr

LDR PC, INT_Data_Addr

LDR PC, INT_Reserved_Addr

LDR PC, INT_IRQ_Addr

LDR PC, INT_FIQ_Addr

配置存儲器控制器和MMU

MMU(Memory Manage Unit)是存儲器管理單元的縮寫,用來實現虛擬地址到實際物理地址的映射。它是ARM的一部分,本身有少量存儲空間放置從虛擬地址到物理地址的匹配表,即轉換旁置緩沖區 (TLBs-Translation Lookaside Buffers)。MMU實現兩個主要功能,將虛擬地址轉換成物理地址和控制存儲器的存取使能。

通過配置S3C2410A的存儲器控制器來初始化S3C2410A目標板的外圍存儲器。主要是設置存儲器類型、總線寬度、信息,重點是對SDRAM進行設置,如列地址數、信號線時序等。

堆棧初始化

C和ARM匯編源文件經過ARM開發環境ADS1.2編譯鏈接后,生成的映像(Image)文件包含RO(只讀代碼、數據段)、RW(可讀寫數據段)和ZI(將要初始化為0的段)三個輸出段。當映像文件加載到flash中的時,RO段和RW段在Flash中的位置見圖2(a),其中|Image$$RO$$Base|是RO段的開始地址,也是包含RO輸出段的加載和執行地址,可以在ARM Linker中設置,即-ro-base的值,從flash啟動時,這個值設置為0x00000000,ZI段不需要加載到flash中。當硬件電路復位后,映像文件中的RW段需要從Flash中拷貝到SDRAM內,同時要將ZI輸出段的內容需要用“0”進行初始化,此時輸出段在存儲區內的位置見圖2(b)。|Image$$RW$$Base|是包含RW輸出段的執行地址,這個地址值也需要在ARM Linker中設置,即-rw-base的值,一般將-rw-base的值設置到SDRAM的地址范圍內,在這里設置為SDRAM的首地址0x30000000。在Nucleus PLUS移植的過程中要編寫代碼,完成以上操作過程。

操作系統Nucleus PLUS在S3C2410A開發板上的應用研究

圖2 加載和執行時存儲區分布

ARM有7種運行模式分別為:用戶模式(usr)、快速中斷模式(fiq)、外部中斷模式(irq)、管理模式(svc)、數據訪問中止模式(abt)、系統模式(sys)和未定義指令中止模式(und)。在堆棧初始化時,應對S3C2410A的每種運行模式分別設置堆棧,一般堆棧的大小可以設置為4KB。另外還要對HISR(High-Level Interrupt Service Routines)堆棧的起始地址、大小和優先級進行設置,它的堆棧大小可設為2KB。

中斷初始化

1. 將Nucleus PLUS異常中斷向量表從ROM中復制到RAM中,即:將地址為0x00000000的異常中斷向量表復制到地址0x33FFFF00處,這樣在中斷響應的過程中就可以從RAM中提取異常中斷向量表,提高中斷的響應速度;

2. 關閉看門狗時鐘,創建所有IRQ中斷的中斷向量表;

3. 清除所有中斷的判斷位。

系統時鐘中斷初始化

因為Timer4是用來作為Nucleus PLUS的系統時鐘的,所以在嵌入式實時操作系統移植的過程中,一定要對它的時鐘中斷進行配置,配置過程如下:

1. 設置S3C2410A的內部定時器Fimert定時器的中斷周期為10ms;

2. 建立Timer4的中斷向量,用Timer4時鐘作為Nucleus PLUS的系統節拍時鐘;

3. 初始化S3C2410A的MPLL控制寄存器MPLLCON,將S3C2410A的主時鐘FCLK設置為266MHz;

4.設置分頻器寄存器CLKDIVN使HCLK = FCLK/2,PCLK = HCLK/2。

設置系統可用存儲區的首地址

在板級初始化程序(INT_ Initialize)結束后,系統開始調用操作系統初始化程序(INC_Initialize)。這時需要設置可供用戶使用的存儲器首地址first_available_memory,令first_available_memory= |Image$$bss$$ZI$$Limit|,其中|Image$$bss$$ZI$$Limit|是ARM鏈接器生成的可執行映像文件中初始化為0段(ZI段)的終止地址。修改后調用程序INC_Initialize(VOID *first_available_memory),即進入操作系統初始化。Nucleus PLUS的移植工作也宣告結束。

結語

本文詳細介紹了Nucleus PLUS在S3C2410A上的移植過程和方法,移植后的代碼在深圳優龍科技有限公司的FS2410開發板上運行正常,可以實現多任務調度、任務間通信和中斷響應。因為移植過程是針對特定的硬件環境的,所以移植中要采用ARM匯編語言,這是嵌入式操作系統移植的難點。移植的重點是建立中斷向量表、創建操作系統的系統時鐘中斷和設置系統堆棧。本文論述的移植方法對其他嵌入式操作系統在ARM微處理器上的移植過程也有一定的借鑒價值。

責任編輯:gt


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

    關注

    5087

    文章

    19149

    瀏覽量

    306212
  • 操作系統
    +關注

    關注

    37

    文章

    6856

    瀏覽量

    123455
  • 開發板
    +關注

    關注

    25

    文章

    5084

    瀏覽量

    97737
收藏 人收藏

    評論

    相關推薦

    Nucleus PLUSS3C2410A的移植過程和方法是什么?

    Nucleus PLUS啟動過程Nucleus PLUS移植過程Nucleus PLUS
    發表于 04-25 07:05

    Nucleus PLUSS3C2410A的移植過程和方法,總結的太棒了

    本文詳細介紹了Nucleus PLUSS3C2410A的移植過程和方法,移植后的代碼深圳優
    發表于 04-26 06:38

    怎么設計一種基于ARM9 S3C2410A的智能車載系統

    本文設計一種基于ARM9 S3C2410A的智能車載系統,它能夠通過GPS全球定位系統和GPRS無線通信技術,實現車輛定位以及車輛與控制中心之間的數據通信,構建CAN總線控制模塊用于采集車輛主要部分的工作狀態,實時監控汽車的主要
    發表于 05-17 06:03

    Linux實時操作系統s3c2410的移植

             本文描述了linux實時操作系統移植到arm處理器的方法和嵌入式linux實時操作系統的結構特征,論述了利用交叉編譯環境,進行基于s3c2
    發表于 09-11 08:27 ?34次下載

    基于S3C2410A的嵌入式系統的U-Boot移植

    基于S3C2410A的嵌入式系統的U-Boot移植 0 引 言    ARM嵌入式處理器已被廣泛應用于消費電子產品、無線通信、網絡通信和工業控制等領域。其中,ARM9的芯片
    發表于 12-24 17:08 ?1309次閱讀
    基于<b class='flag-5'>S3C2410A</b>的嵌入式<b class='flag-5'>系統</b>的U-Boot移植

    基于S3C2410A設計的工程地震儀方案

    摘要:闡述基于三星ARM處理器S3C2410A和嵌入式操作系統Windows CE.net構造微型工程地震儀的設計原理和實現方法。現有
    發表于 07-21 16:40 ?1176次閱讀
    基于<b class='flag-5'>S3C2410A</b>設計的工程地震儀方案

    LINUXTE2410開發板的移植

    本實驗是TE2410開發板實現的。TE2410開發板是保定飛凌嵌入式技術有限公司自主研發的一
    發表于 07-25 18:16 ?59次下載

    S3C2410A USER'S MANUAL

    S3C2410A USER'S MANUAL
    發表于 10-25 14:59 ?15次下載
    <b class='flag-5'>S3C2410A</b> USER'<b class='flag-5'>S</b> MANUAL

    Nucleus PLUSS3C2410A的移植過程和方法

    File等模塊。還有一個特點就是免費提供源代碼,有利于節省開發費用。 S3C2410A是三星公司推出的基于ARM920T內核高性能低功耗16/32位RISC微控制
    發表于 11-06 10:39 ?1次下載
    <b class='flag-5'>Nucleus</b> <b class='flag-5'>PLUS</b><b class='flag-5'>在</b><b class='flag-5'>S3C2410A</b><b class='flag-5'>上</b>的移植過程和方法

    基于Linux操作系統S3C2410微處理器實現GPS實時導航系統的設計

    這里提出一種實用的設計方案,通過對系統的各方面配置,實現GPS實時導航功能。系統主控器件采用韓國Samsung公司生產的ARM核32位RISC微處理器S3C2410,并在由其組成的開發板
    發表于 03-09 10:47 ?1090次閱讀
    基于Linux<b class='flag-5'>操作系統</b>和<b class='flag-5'>S3C2410</b>微處理器實現GPS實時導航<b class='flag-5'>系統</b>的設計

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

    操作系統也非常適合這些網絡設備的開發,本文將介紹S3C2510的移植方案,給各種以ARM為內核處理器的ECOS底層移植開發提供一個系統的范例
    的頭像 發表于 09-19 16:34 ?2858次閱讀
    基于ECOS<b class='flag-5'>操作系統</b><b class='flag-5'>在</b><b class='flag-5'>S3C</b>2510<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 ?2319次閱讀
    基于<b class='flag-5'>S3C2410</b><b class='flag-5'>開發板</b>的Bootloader運行原理與實現

    Linux操作系統S3C2410開發板的的移植過程

    S3C2410微處理器是一款由Samsung公司為手持終端設計的低價格、低功耗、高性能,基于ARM920T核的微處理器。它帶有內存管理單元(MMU),采用0.18mm工藝和AMBA新型總線結構,主頻可達203MHz。同時,它支持Thumb16位壓縮指令集,從而能以較小的存儲空間獲得32位的
    的頭像 發表于 09-23 17:05 ?2661次閱讀
    Linux<b class='flag-5'>操作系統</b><b class='flag-5'>在</b><b class='flag-5'>S3C2410</b><b class='flag-5'>開發板</b><b class='flag-5'>上</b>的的移植過程

    基于S3C2410A的嵌入式織物密度檢測裝置研究

    電子發燒友網站提供《基于S3C2410A的嵌入式織物密度檢測裝置研究.pdf》資料免費下載
    發表于 10-19 10:36 ?1次下載
    基于<b class='flag-5'>S3C2410A</b>的嵌入式織物密度檢測裝置<b class='flag-5'>研究</b>

    S3C2410A存儲控制器中文數據手冊

    S3C2410A的存儲器控制器提供訪問外部存儲器所需要的存儲器控制信號。S3C2410A的存儲器控制器有以下的特性。
    發表于 10-20 16:12 ?2次下載
    <b class='flag-5'>S3C2410A</b>存儲控制器中文數據手冊
    主站蜘蛛池模板: 色婷婷AV国产精品欧美毛片| 姉调无修版ova国语版| 柏木舞子在线| 日本熟妇多毛XXXXX视频| 拔萝卜视频免费看高清| 日日噜噜大屁股熟妇| 国产香蕉视频| 折磨比基尼美女挠肚子| 欧美亚洲日韩欧洲不卡| 丰满的女朋友韩国版在线观看| 她也色在线视频站| 精品国产中文字幕在线视频| 2019久久视频这里有精品15| 青草在线在线d青草在线| 国产精品自在自线亚洲| 永久免费观看视频| 青草影院天堂男人久久| 国产一区二区三区在线看片| 最近2018年手机中文字幕| 人人看人人看| 黄色a一级视频| OLDMAN老头456 TUBE| 亚洲欧美精品无码一区二在线| 尿了么app| 含羞草在线| 草草色| 亚洲熟少妇在线播放999| 欧美日韩一区在线观看| 国产色偷偷男人的天堂| 99国产精品久久久久久久日本竹| 四虎永久免费| 免费视频国产| 国产原创剧情麻豆在线| www.狠狠色| 曰韩一本道高清无码av| 十八禁肉动漫无修在线播放| 久久久精品国产免费A片胖妇女| 国产99在线视频| 99国产这里只有精品视频| 亚洲精品欧美精品中文字幕| 任你懆视频 这里只有精品|