国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發(fā)布時間:2010-7-19 14:03    發(fā)布者:conniede
關(guān)鍵詞: Nucleus , PLUS , S3C2410A , 嵌入式 , 移植
引言

Nucleus PLUS是美國ATI公司為實時性要求較高的嵌入式系統(tǒng)應(yīng)用設(shè)計的操作系統(tǒng)內(nèi)核。約95%的Nucleus PLUS代碼用ANSI C語言編寫,因此,非常便于移植并能夠支持大多數(shù)類型的微處理器,如X86、68K、PowerPC、MIPSARM等。經(jīng)過截減編譯后,Nucleus 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 PLUS操作系統(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)。S3C2410A共有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)換成物理地址和控制存儲器的存取使能。

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



堆棧初始化

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

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

中斷初始化

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

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

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

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

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

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

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

3.初始化S3C2410A的MPLL控制寄存器M P L L C O N,將S3C2410A的主時鐘FCLK設(shè)置為266MHz;

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

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

在板級初始化程序(I N T-Initialize)結(jié)束后,系統(tǒng)開始調(diào)用操作系統(tǒng)初始化程序(INC-Initialize)。這時需要設(shè)置可供用戶使用的存儲器首地址first-available-memory,令fiT St-available-memorY=IImage$$bss$$zI$$LimitI,其中IImage$$bss$$ZI$$Limitl是ARM鏈接器生成的可執(zhí)行映像文件中初始化為0段(ZI段)的終止地址。修改后調(diào)用程序INC_Initialize(VOID*first_available_memory),即進入操作系統(tǒng)初始化。Nucleus PLUS的移植工作也宣告結(jié)束。

結(jié)語

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

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 我們是Microchip
  • 利用模擬開發(fā)工具生態(tài)系統(tǒng)進行安全電路設(shè)計
  • 深度體驗Microchip自動輔助駕駛應(yīng)用方案——2025巡展開啟報名!
  • 更佳設(shè)計的解決方案——Microchip模擬開發(fā)生態(tài)系統(tǒng)
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产精品久久精品成人 | h亚洲| 丝袜美女小说 | 亚洲狠狠婷婷综合久久蜜桃 | 久久久久久免费精品视频 | 国产精品观看视频免费完整版 | 亚洲综合一区二区三区四区 | 朋友的妻子免费观看 | 国产精品欧美一区二区三区不卡 | 国产色婷婷精品综合在线 | 国产精品久久久久国产精品 | 婷婷射图| 欧美成人黑人性视频 | 久久99热这里只有精品高清 | 99ri国产精品| 日韩成人动漫在线观看 | 久久亚洲欧美成人精品 | 在线观看日韩视频 | 久久最新网址 | 99热这就是里面只有精品 | 又色又爽视频 | 国产色婷婷精品综合在线 | 狠狠操狠狠操 | 四虎影院在线免费观看视频 | 色博网 | 国产91在线视频观看 | 欧美日韩一区二区三区在线 | 亚洲精品不卡在线 | 综合色视频| 四虎国产精品免费观看 | 亚洲欧美一区二区三区另类 | 七次郎在线华人最新首页 | 黄色a级| 97在线观看免费观看高清 | 八戒八戒在线播放免费观看5 | 成免费视频 | 国产美女视频免费看网站 | 久久亚洲私人国产精品 | 精品一区二区三区 不卡高清 | 日韩影音 | 色五五月五月开 |