女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

操作系統(tǒng)Nucleus PLUS在S3C2410A開發(fā)板上的應(yīng)用研究

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì)應(yīng)用 ? 作者:馮寶祥,王桂棠 ? 2020-03-13 08:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

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

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

Nucleus PLUS啟動(dòng)過程

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

操作系統(tǒng)Nucleus PLUS在S3C2410A開發(fā)板上的應(yīng)用研究

圖1 Nucleus PLUS 啟動(dòng)過程

Nucleus PLUS移植過程

INT-Reset子程序修改

INT_Reset是Nucleus PLUS啟動(dòng)時(shí)的程序入口,因?yàn)楦鶕?jù)ARM微處理器的體系結(jié)構(gòu),在系統(tǒng)硬件上電或復(fù)位后,ARM所執(zhí)行的第一條指令在地址0x00000000,即ARM的復(fù)位異常(Reset)向量地址,所以在這個(gè)地址要放置一個(gè)跳轉(zhuǎn)指令:B INT_Reset 。

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

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

2. 屏蔽FIQ和IRQ中斷,因?yàn)樵谡麄€(gè)系統(tǒng)初始化的過程中,不能被中斷打斷,只有在中斷服務(wù)子程序初始化結(jié)束后,才可以打開中斷,進(jìn)而響應(yīng)中斷。

INT_Reset

MRS R1,CPSR

BIC R1,R1,#MODE_MASK

ORR R1,R1,#SUP_MODE

ORR R1,R1,#LOCKOUT

MSR CPSR_cxsf,R1

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

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

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

配置存儲(chǔ)器控制器和MMU

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

通過配置S3C2410A的存儲(chǔ)器控制器來(lái)初始化S3C2410A目標(biāo)板的外圍存儲(chǔ)器。主要是設(shè)置存儲(chǔ)器類型、總線寬度、信息,重點(diǎn)是對(duì)SDRAM進(jìn)行設(shè)置,如列地址數(shù)、信號(hào)線時(shí)序等。

堆棧初始化

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

操作系統(tǒng)Nucleus PLUS在S3C2410A開發(fā)板上的應(yīng)用研究

圖2 加載和執(zhí)行時(shí)存儲(chǔ)區(qū)分布

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

中斷初始化

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

2. 關(guān)閉看門狗時(shí)鐘,創(chuàng)建所有IRQ中斷的中斷向量表;

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

系統(tǒng)時(shí)鐘中斷初始化

因?yàn)門imer4是用來(lái)作為Nucleus PLUS的系統(tǒng)時(shí)鐘的,所以在嵌入式實(shí)時(shí)操作系統(tǒng)移植的過程中,一定要對(duì)它的時(shí)鐘中斷進(jìn)行配置,配置過程如下:

1. 設(shè)置S3C2410A的內(nèi)部定時(shí)器Fimert定時(shí)器的中斷周期為10ms;

2. 建立Timer4的中斷向量,用Timer4時(shí)鐘作為Nucleus PLUS的系統(tǒng)節(jié)拍時(shí)鐘;

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

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

設(shè)置系統(tǒng)可用存儲(chǔ)區(qū)的首地址

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

結(jié)語(yǔ)

本文詳細(xì)介紹了Nucleus PLUS在S3C2410A上的移植過程和方法,移植后的代碼在深圳優(yōu)龍科技有限公司的FS2410開發(fā)板上運(yùn)行正常,可以實(shí)現(xiàn)多任務(wù)調(diào)度、任務(wù)間通信和中斷響應(yīng)。因?yàn)橐浦策^程是針對(duì)特定的硬件環(huán)境的,所以移植中要采用ARM匯編語(yǔ)言,這是嵌入式操作系統(tǒng)移植的難點(diǎn)。移植的重點(diǎn)是建立中斷向量表、創(chuàng)建操作系統(tǒng)的系統(tǒng)時(shí)鐘中斷和設(shè)置系統(tǒng)堆棧。本文論述的移植方法對(duì)其他嵌入式操作系統(tǒng)在ARM微處理器上的移植過程也有一定的借鑒價(jià)值。

責(zé)任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5150

    文章

    19659

    瀏覽量

    317369
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7143

    瀏覽量

    125555
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5675

    瀏覽量

    104566
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

    Nucleus PLUS啟動(dòng)過程Nucleus PLUS移植過程Nucleus PLUS
    發(fā)表于 04-25 07:05

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

    本文詳細(xì)介紹了Nucleus PLUSS3C2410A的移植過程和方法,移植后的代碼深圳優(yōu)
    發(fā)表于 04-26 06:38

    怎么設(shè)計(jì)一種基于ARM9 S3C2410A的智能車載系統(tǒng)

    本文設(shè)計(jì)一種基于ARM9 S3C2410A的智能車載系統(tǒng),它能夠通過GPS全球定位系統(tǒng)和GPRS無(wú)線通信技術(shù),實(shí)現(xiàn)車輛定位以及車輛與控制中心之間的數(shù)據(jù)通信,構(gòu)建CAN總線控制模塊用于采集車輛主要部分的工作狀態(tài),實(shí)時(shí)監(jiān)控汽車的主要
    發(fā)表于 05-17 06:03

    Linux實(shí)時(shí)操作系統(tǒng)s3c2410的移植

             本文描述了linux實(shí)時(shí)操作系統(tǒng)移植到arm處理器的方法和嵌入式linux實(shí)時(shí)操作系統(tǒng)的結(jié)構(gòu)特征,論述了利用交叉編譯環(huán)境,進(jìn)行基于s3c2
    發(fā)表于 09-11 08:27 ?34次下載

    基于S3C2410A的嵌入式系統(tǒng)的U-Boot移植

    基于S3C2410A的嵌入式系統(tǒng)的U-Boot移植 0 引 言    ARM嵌入式處理器已被廣泛應(yīng)用于消費(fèi)電子產(chǎn)品、無(wú)線通信、網(wǎng)絡(luò)通信和工業(yè)控制等領(lǐng)域。其中,ARM9的芯片
    發(fā)表于 12-24 17:08 ?1440次閱讀
    基于<b class='flag-5'>S3C2410A</b>的嵌入式<b class='flag-5'>系統(tǒng)</b>的U-Boot移植

    基于S3C2410A設(shè)計(jì)的工程地震儀方案

    摘要:闡述基于三星ARM處理器S3C2410A和嵌入式操作系統(tǒng)Windows CE.net構(gòu)造微型工程地震儀的設(shè)計(jì)原理和實(shí)現(xiàn)方法。現(xiàn)有
    發(fā)表于 07-21 16:40 ?1287次閱讀
    基于<b class='flag-5'>S3C2410A</b>設(shè)計(jì)的工程地震儀方案

    LINUXTE2410開發(fā)板的移植

    本實(shí)驗(yàn)是TE2410開發(fā)板實(shí)現(xiàn)的。TE2410開發(fā)板是保定飛凌嵌入式技術(shù)有限公司自主研發(fā)的一
    發(fā)表于 07-25 18:16 ?59次下載

    S3C2410A USER'S MANUAL

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

    Nucleus PLUSS3C2410A的移植過程和方法

    File等模塊。還有一個(gè)特點(diǎn)就是免費(fèi)提供源代碼,有利于節(jié)省開發(fā)費(fèi)用。 S3C2410A是三星公司推出的基于ARM920T內(nèi)核高性能低功耗16/32位RISC微控制
    發(fā)表于 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操作系統(tǒng)S3C2410微處理器實(shí)現(xiàn)GPS實(shí)時(shí)導(dǎo)航系統(tǒng)的設(shè)計(jì)

    這里提出一種實(shí)用的設(shè)計(jì)方案,通過對(duì)系統(tǒng)的各方面配置,實(shí)現(xiàn)GPS實(shí)時(shí)導(dǎo)航功能。系統(tǒng)主控器件采用韓國(guó)Samsung公司生產(chǎn)的ARM核32位RISC微處理器S3C2410,并在由其組成的開發(fā)板
    發(fā)表于 03-09 10:47 ?1244次閱讀
    基于Linux<b class='flag-5'>操作系統(tǒng)</b>和<b class='flag-5'>S3C2410</b>微處理器實(shí)現(xiàn)GPS實(shí)時(shí)導(dǎo)航<b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)

    基于ECOS操作系統(tǒng)S3C2510開發(fā)板應(yīng)用研究

    操作系統(tǒng)也非常適合這些網(wǎng)絡(luò)設(shè)備的開發(fā),本文將介紹S3C2510的移植方案,給各種以ARM為內(nèi)核處理器的ECOS底層移植開發(fā)提供一個(gè)系統(tǒng)的范例
    的頭像 發(fā)表于 09-19 16:34 ?3120次閱讀
    基于ECOS<b class='flag-5'>操作系統(tǒng)</b><b class='flag-5'>在</b><b class='flag-5'>S3C</b>2510<b class='flag-5'>開發(fā)板</b><b class='flag-5'>上</b>的<b class='flag-5'>應(yīng)用研究</b>

    基于S3C2410開發(fā)板的Bootloader運(yùn)行原理與實(shí)現(xiàn)

    有點(diǎn)類似于PC機(jī)的BIOS(基本輸入輸出系統(tǒng))程序。它的主要作用是為運(yùn)行操作系統(tǒng)提供基本的運(yùn)行環(huán)境,并操作系統(tǒng)的內(nèi)核裝載到存儲(chǔ)器(RAM)中的合適位置上去運(yùn)行。本文將以Samsung公司的S3
    的頭像 發(fā)表于 09-22 18:02 ?2685次閱讀
    基于<b class='flag-5'>S3C2410</b><b class='flag-5'>開發(fā)板</b>的Bootloader運(yùn)行原理與實(shí)現(xiàn)

    Linux操作系統(tǒng)S3C2410開發(fā)板的的移植過程

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

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

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

    S3C2410A存儲(chǔ)控制器中文數(shù)據(jù)手冊(cè)

    S3C2410A的存儲(chǔ)器控制器提供訪問外部存儲(chǔ)器所需要的存儲(chǔ)器控制信號(hào)。S3C2410A的存儲(chǔ)器控制器有以下的特性。
    發(fā)表于 10-20 16:12 ?2次下載
    <b class='flag-5'>S3C2410A</b>存儲(chǔ)控制器中文數(shù)據(jù)手冊(cè)