999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式Nucleus 系統中驅動接口的實現

2012-07-20 09:40:10劉洲洲
微處理機 2012年2期
關鍵詞:嵌入式功能系統

劉洲洲,李 賀

(1.西安航空技術高等專科學校電氣工程系,西安 710077;2.中國電子科技集團公司第四十七研究所,沈陽 110032)

1 引言

隨著嵌入式系統的飛速發展,嵌入式實時操作系統廣泛地應用在制造工業、過程控制、通訊、儀器儀表、汽車、船舶、航空航天、軍事、裝備、消費類產品等方面。今天嵌入式系統帶來的工業年產值超過了1 萬億美元。當前嵌入式操作系統有數百種,比較流行的有Nucleus Plus,QNX,Lynx OS,Psos,VRTX,VXWorks,Windows CE 等。它們各有特色,用戶可以根據自身的軟硬件環境要求,選擇合適的操作系統。Nucleus 已經成為嵌入式應用的潮流和方向,剖析Nucleus 中多進程控制的實現方法具有重要的意義[1]。

2 關于Nucleus

嵌入式實時操作系統Nucleus是美國著名RTOS 廠商ATI(AcceleratedTechnologyInc)公司,為實時嵌入式應用而設計的一個搶先式多任務操作系統內核。只需一次性購買Licenses,就可以獲得操作系統的源碼。

Nucleus 對于各層協議都提供源碼,其95%的代碼是用ANSIC 寫成的,非常便于移植并支持當前流行的大多數RISC、CISC、DSP 處理器,比如:80x86(實時、保護模式)、68xxx、PowerPC、i960、MIPS、SH、ARM、ColdFire 等。Nucleus 系統對于不同的處理器,操作系統的源碼大部分是相同的,只有5%的源碼是用匯編寫的跟CPU 有關。如果使用另外的CPU,則只用修改5、6個匯編程序就可以進行移植。但是對于不同系列的處理器,它們的Compiler、Linker、Debugger是不同的,而且編譯預處理的過程也是不一樣的,這就要投入一部分力量去進行操作系統的移植[2]。

Nucleus 不用寫板支持軟件包(BSP),因為操作系統已經開放,不同的目標板在操作系統BOOT時可以通過修改源碼進行不同的配置,同時調試時也可以跟蹤到中斷、寄存器那一級,簡化了硬件調試。Nucleus PLUS是一組C 函數庫,應用程序代碼與核心函數連接在一起,生成一個目標代碼,下載到目標板的RAM 中或直接燒錄到目標板的ROM 中執行。在典型的目標環境中,Nucleus PLUS 核心代碼區一般不超過20K 字節大小,內核規模非常小。

3 系統驅動實現步驟

3.1 系統結構

Nucleus 系統結構如圖1 所示。

圖1 Nucleus 系統結構框圖

系統復位時,系統從驅動引導,開始對硬件的Register、端口、中斷、clock 及必要的外設進行初始化。

驅動初始化成功后,進入Nucleus 系統層,將整個控制權交給操作系統。

在操作系統層,開始也是進行一些操作系統的初始化工作,重載操作系統所需的中斷服務程序(ISR),啟動操作系統所需的時鐘,調用Application_Initialize()函數。Application_Initialize()函數是操作系統為Application 提供的接口,圖形系統、驅動、文件系統、GUI、啟動Desktop 任務等初始化工作都在這個函數中進行。最后進入OS的控制中心,進行任務調度管理。將控制權交給操作系統之前,驅動層不能調用任何操作系統層的函數。由于Nucleus 操作系統調用的模塊增多,會導致__main()函數中啟動SWI 中斷,從而導致系統異常。因此,在bios模塊中不能把retarget.c 文件連接到目標碼中,但是這樣做又會導致程序的全局變量初始化失敗,解決的方法是在BIOS 啟動后,不調用__main(),改調用

Init_SysData()。

3.2 通用接口API 實現方法

(1)啟動部分

中斷向量表位于系統空間的邏輯地址0x0 處,具有如下結構:

(2)BIOS 層應該提供如上所述的中斷向量表、系統啟動代碼、中斷服務程序,來保證系統的基本運行。處理器復位后即進入系統啟動入口(0x0),執行BIOS 所提供的啟動程序。在這里BIOS 應該初始化或重新設置MCU/DSP的狀態或參數;另外,BIOS 應該提供可供OS 重載的中斷服務程序功能。BIOS 啟動完畢即進入NUCLEUS 操作系統的啟動部分(OsStartup()),將控制權交給OS,OS 會通過BIOS提供的中斷服務重載功能將中斷入口切換到自己的中斷服務程序中。同時BIOS 還需要告訴OS系統RAM 空間的offset 和size,OS 將據此進行資源分配等,BIOS 應該為OS 分配一個專用的定時器Timer,供Nucleus OS 使用;同時返回此定時器的中斷向量號。

(3)中斷部分:如上所述,驅動應該提供可供操作系統重載的中斷服務功能。驅動向操作系統提供接口:Extern void ReloadIntEntry(void*handler);功能:載入Nucleus OS的中斷服務跳轉表。操作成功后,硬件的所有中斷都進入Nucleus OS 中斷管理中心,然后,由Nucleus OS 中斷管理中心調度該中斷的低級中斷服務子程序LISR。

(4)LISR(低級中斷服務程序)和HISR(高級中斷服務程序)部分:Nucleus的中斷服務是一種管理式的服務,分為LISR 和HISR。每一種中斷都需要向操作系統注冊該中斷向量,中斷產生后通過該中斷向量注冊的低級中斷服務程序(LISR)來激活高級的中斷服務程序(HISR)。LISR 主要完成硬件中斷的處理及激活HISR。HISR的調度類似于任務,具有優先級,可以使用大多數Nucleus的系統調用。OS 封裝了中斷過程中的現場保護、恢復和調度等,向BIOS 層提供如下接口:STATUS OS_Register_LISR(U8 vector,void (*new_lisr)(INT));功能:向Nucleus OS 注冊一個低級中斷服務程序(LISR)。用戶每打開一個新的硬件中斷,都必須先調用此功能函數向Nucleus OS 注冊,否則,將出錯。

(5)操作系統定時器:驅動應該為操作系統分配一個專用的定時器Timer,供Nucleus OS 使用;同時返回此定時器的中斷向量號。驅動向操作系統提供的接口:Extern U32 OpenOsTimer(U16 ms);功能:打開操作系統專用的定時器。Extern void ClearOsTimerPnd(void);功能:進入Timer 中斷后,清除Timer 中斷的狀態位,使Timer 中斷復位。

(6)UART 驅動:UART 應該向OS 提供UART設備的初始化、參數的設置等功能。OS 內置了I/O設備的統一管理模塊,包含兩個I/O 緩沖,通信事件處理等等。操作系統為每個UART 設備分配一個設備號,對應如下:

通信設備驅動管理為UART 提供下列接口:

Extern BOOLEAN commdev_read(U8_T dev_id,U8_T code);功能:設備接收到一個字符后,交給OS的通信設備驅動管理;

Extern BOOLEAN commdev_write(U8_T dev_id,U8_T *pCode);功能:設備發送一個字符前,從OS的隊列管理模塊中取出下一個要發送的字節;

(7)驅動的初始化Nucleus OS 啟動后,會回調一個 驅動提供的初始化所有Driver的函數,該函數接口如下所示:void DriverInit(void);驅動中的所有初始化工作都必須在此回調函數中完成,否則系統異常。

4 結束語

Nucleus是一種實時、多任務的嵌入式操作系統。它可以管理各種系統資源,調度任務的運行。Nucleus 使嵌入式多任務開發省時、省力,并且提高效率。它已成為嵌入式應用的潮流和方向。深入剖析Nucleus 驅動通信接口的實現機理,對于嵌入式實時操作系統的開發具有重要意義。

[1]Nucleus Plus Reference Manual[M].Unites States:AcceleratedTechnology,Inc.,2000.

[2]魏振華.嵌入式實時操作系統Nucleus 中線程控制部件的實現[J].計算機應用與研究,2003,16(4);97-99.

猜你喜歡
嵌入式功能系統
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關于非首都功能疏解的幾點思考
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 国产在线精品99一区不卡| 日韩无码视频网站| 国产午夜无码片在线观看网站 | 日韩免费毛片| 国产va在线观看| 亚洲成人手机在线| 米奇精品一区二区三区| 毛片在线看网站| 91 九色视频丝袜| 久久久精品久久久久三级| 亚洲成肉网| 日韩欧美中文字幕在线韩免费| 亚洲成人黄色在线| 国产产在线精品亚洲aavv| 人妻一区二区三区无码精品一区 | 国产精品jizz在线观看软件| 欧美一级专区免费大片| 亚洲一区二区三区中文字幕5566| 成人福利免费在线观看| 国产91精品最新在线播放| 日韩欧美国产区| 精品久久人人爽人人玩人人妻| 热这里只有精品国产热门精品| 丰满人妻久久中文字幕| 天天躁日日躁狠狠躁中文字幕| 澳门av无码| 久久夜色精品国产嚕嚕亚洲av| 波多野结衣久久高清免费| 丁香六月综合网| 波多野结衣中文字幕一区二区| 国产成人福利在线视老湿机| 91精品福利自产拍在线观看| 欧美亚洲日韩不卡在线在线观看| 亚洲色图欧美| 亚洲va欧美ⅴa国产va影院| 91丝袜乱伦| 亚洲天堂首页| 亚洲愉拍一区二区精品| 成人午夜久久| 国产成人1024精品| 免费观看无遮挡www的小视频| 国产欧美日韩18| 大学生久久香蕉国产线观看 | 国产极品美女在线| 精品夜恋影院亚洲欧洲| 精品国产电影久久九九| 亚洲婷婷丁香| 美女无遮挡免费网站| 99视频精品在线观看| 精品久久人人爽人人玩人人妻| 97视频精品全国免费观看| 久热中文字幕在线| 日韩毛片在线播放| 国产在线精品99一区不卡| 亚洲av无码片一区二区三区| 制服丝袜国产精品| 亚洲日韩精品欧美中文字幕| 欧美激情一区二区三区成人| 欧美中文字幕一区二区三区| 国产亚洲精久久久久久无码AV| 免费人成黄页在线观看国产| 狼友av永久网站免费观看| 国产高清无码第一十页在线观看| 国产精品视频观看裸模| 亚洲an第二区国产精品| 亚洲第一黄色网址| 欧美不卡视频在线观看| jizz在线观看| 成人欧美在线观看| 国产福利在线免费观看| 亚洲视屏在线观看| 国产乱人伦偷精品视频AAA| 色悠久久久久久久综合网伊人| 久久久精品国产SM调教网站| 在线看片中文字幕| aⅴ免费在线观看| 成人av手机在线观看| 狠狠色狠狠色综合久久第一次| 伦精品一区二区三区视频| 亚洲国产在一区二区三区| 国产成人精品一区二区三在线观看| 亚洲日韩AV无码一区二区三区人|