<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式Nucleus PLUS在S3C2410A上移植的實現(xiàn)

          嵌入式Nucleus PLUS在S3C2410A上移植的實現(xiàn)

          作者: 時間:2012-11-01 來源:網(wǎng)絡(luò) 收藏

          引言

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

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

          嵌入式實時操作系統(tǒng)內(nèi)核Nucleus PLus的啟動過程如圖1所示。其中板級初始化(INT_IniTIalize)主要是完成中斷向量表、系統(tǒng)堆棧、時鐘中斷等基本硬件初始化;

          操作系統(tǒng)初始化(INC_Initialize)主要是完成郵箱、隊列、管道、信號量、事件集等軟件組件初始化;應(yīng)用程序初始化(Application_Initialize(fIRst-available_Memory))主要是完成用戶定義的應(yīng)用程序初始化,如創(chuàng)建內(nèi)存池,創(chuàng)建任務(wù)、創(chuàng)建信號量、創(chuàng)建中斷、編寫用戶應(yīng)用程序等。的過程中,需要修改的是板級初始化(INT_Initialize])這部分內(nèi)容,它是由ARM匯編語言編寫的,下面詳細敘述。

          NLicleus PLUS過程

          INT-Reset子程序修改

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

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

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

          2.屏蔽FIQ和IRQ中斷,因為在整個系統(tǒng)初始化的過程中,不能被中斷打斷,只有在中斷服務(wù)子程序初始化結(jié)束后,才可以打開中斷,進而響應(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)。共有56個中斷源,但有些中斷源共用一個中斷向量,所以只要求創(chuàng)建包含32個中斷源的中斷向量表。

          INT_Vectors

          LDR PC,INT_ReseLAddr

          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,INTjRQ_Addr

          LDR PC,INT_FIQ_Addr

          配置存儲器控制器和MMU

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

          分頻器相關(guān)文章:分頻器原理
          電能表相關(guān)文章:電能表原理

          上一頁 1 2 下一頁

          關(guān)鍵詞: Nucleus PLUS S3C2410A 移植

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();