《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Nucleus操作系統在ARM11上的移植研究與實現
Nucleus操作系統在ARM11上的移植研究與實現
2014年電子技術應用第9期
鄒 洋,李琳皓,梁 峰
重慶郵電大學 計算機科學與技術學院,重慶400065
摘要: 基于對ARM11架構的啟動模式與內存分配的技術研究,通過對Nucleus內核的分析,在ARM11架構的芯片上實現Nucleus操作系統的移植。
Abstract:
Key words :

    摘  要: 基于對ARM11架構的啟動模式與內存分配的技術研究,通過對Nucleus內核的分析,在ARM11架構的芯片上實現Nucleus操作系統的移植。以S3C6410為例,詳細介紹了從板級初始化到任務循環調度過程中的啟動模塊、中斷設計、定時器設計、任務調度流程與觸發方式。目前成功移植于TD-LTE系統中,實現操作系統基本功能的同時滿足了實驗項目中TD-LTE對系統實時性與任務資源管理的需求。

    關鍵詞: Nucleus操作系統;移植;啟動加載;中斷;任務調度


    Nucleus操作系統作為一個實時性較強的嵌入式操作系統具有較高可移植性,目前在ARM(Advanced RISC Machines)架構上已經成功實現移植,現有文獻中實現多基于較老的ARM7或是ARM9架構,并且介紹籠統,和實際結合不緊密[1-2]。本文詳細介紹Nucleus在ARM11架構上的移植,以S3C6410芯片的實驗數據為證,分析在移植過程的內存分配、堆棧配置、時鐘、中斷設置。文中詳細闡述了具體應用于TD-LTE系統時,移植過程中啟動模塊設計對系統性能的影響,以及內核移植中的關鍵接口和系統任務調度方式。

1 基本啟動流程與內存分配

   移植過程中的基本流程如圖1所示。

qrs3-t1.gif

    流程中的各個部分的設置并非是像框圖這樣獨立開來的,在實際的應用設計中各個模塊都是互相有聯系的,會根據加載方式的不同、內存分配的差異或是具體功能的要求而產生關聯性的改變。在后面幾個重要模塊的移植過程介紹中也會對此詳述。

    移植的目的在于應用,本移植應用于TD-LTE無線綜合測試儀中(該產品采用ARM11架構的S3C6410芯片),為該產品實現協議層的任務調度。很多實驗項目中采用手動方式加載啟動模塊,然而在應用中,實現一個產品不可能像普通的調試程序一樣手動加載驅動與操作系統,然后進入任務調度,因此需要實現自動加載而利用到Flash。

    另外中斷向量表設置必須從內存起始地址0x0000-0000加載[3],否則無法實現正常硬件中斷,而在中斷產生時使得程序異常終止。在啟動時首先要完成兩個模塊的加載,一是硬件的初始化模塊,需要在SROM啟動調試模式下燒寫到Flash中,Flash啟動模式下自動加載到0x0c000000上并自動拷貝到0x00000000運行;第二個模塊是操作系統的初始化模塊,在啟動過程中Flash自動燒寫加載到DDR中運行[4],操作系統模塊同樣需要設置中斷向量表。然而這時的起始內存地址0x00000000已經被模塊一占用,因此需要設計一種機制在啟動過程中動態加載操作系統。

    這些限制都是在中斷向量表設置與內存分配中需要綜合考慮的。下面介紹兩種方式來實現上述啟動加載,并在后文進行比較測試。

1.1 基于MMU的啟動設計

    傳統的MMU(存儲器管理單元)方式,即是在內存上做映射。具體方案是在第一部分的硬件初始化程序段中從0x50000000到0x59000000的DDR物理地址做地址映射,實現中在0x50000000到0x51000000部分存放頁表,建立虛擬存儲空間,映射地址為0x00000000到0x08000000,這樣可以在SROM啟動模式和Flash啟動模式下將帶有中斷向量表的操作系統模塊從映射過的0x00000000位置加載,完成中斷向量表設置[4]。內存分配方式如圖2所示。

qrs3-t2.gif

圖2  MMU方式的內存分配模式

    但是映射后讀寫系統數據時會使用到頁表查詢來計算實際物理地址,影響到系統效率。

1.2 基于重寫的啟動設計

    映射方式雖然設計與加載方面比較簡單方便,但是由于采用了MMU會產生頁、段等數據換算,同時還要兼顧DDR的運行速度,數據讀寫速度可能跟不上,因此在設計過程中也設計了第二套方案,考慮如何在不使用MMU的條件下實現啟動加載[5]。采用重寫方式來實現。由于函數調用會使用到堆棧空間,因此重寫部分必須在操作系統模塊堆??臻g分配完成后實現,采用memcpy()函數(內存復制函數)將在0x50000000位置的中斷向量表復制重寫到0x00000000地址。由于系統在0x50000000后面的地址上運行,這種方法在中斷發生時會有比較大的內存跨越尋址,也會對系統執行效率有些許影響。此外這種方法還有一個無法避免的缺點,就是在SROM啟動的調試模式無法實現,因為S3C6410在該啟動模式下0x00000000是只讀的(無法重寫),因此只能在Flash啟動模式加載。

1.3 兩種啟動方式的性能對比

    上述兩種方案各有優缺點,因此筆者通過在現實情況比較接近的中斷頻率條件下寫入等量數據到相同內存下,并比較寫入時間來確定較優方案。通過在寫數據前后拉高拉低電平來統計時間,在0.5 ms一次的中斷頻率下,寫10萬個8 bit數據到操作系統中聲明的相同數組上,所用時間在示波器上的截圖如圖3所示。

qrs3-t3.gif

    圖中X部分是使用了MMU的映射內存啟動模式,10萬8 bit數據耗時約2.82 ms,而Y部分所示采用重寫方式下耗時約為1.33 ms,可見采用重寫方式加載中斷向量表具有比較明顯的執行效率優勢,更能滿足實際需求。當然在調試過程中采用MMU方式是比較便于調試修改的,無需每次修改后都進行Flash燒寫,而且MMU方式對ARM7以上架構具有普遍實用性,而重寫方式僅在本實例中實現,因此MMU方式也有其實用性。

2 中斷與定時器

    定時器是通過中斷來實現的,這里一并介紹。首先在Nucleus的啟動代碼加載前配置文件存儲區域結束地址,通??刹捎脴耸痉皘Image$$ZI$$Limit|”作為堆棧起始加載地址,避免加載運行后,破壞代碼存儲區;其次需要在Nucleus內核初始化區域中對高級中斷進行配置并設置堆棧區域,以支持定時器初始化;然后傳遞堆棧分配結束地址到應用初始化模塊,用于動態分配內存池;最后切換到SVC模式運行系統,方便系統設置與模式切換。上述幾點是Nucleus內核加載配置的幾個關鍵點。

2.1 硬中斷(低級中斷)

    硬中斷是由硬件觸發的中斷,通過硬件引腳的電平變動觸發,有最高的實時性,且可以通過公共引腳來實現外部設備的交互。本文介紹其中3個關鍵中斷,分別對應S3C6410的VIC0、VIC1、VIC28(Vectored Interrupt Controller)寄存器,其中VIC0與VIC1對應外部中斷,本文在應用中設計為DSP中斷與FPGA中斷,VIC28對應PWM定時器,其他功能性中斷在這里就不贅述。

    在設計中采用IRQ中斷模式,中斷發生時現場保護比較重要,值得注意的是在低級中斷中采用C語言自帶的“__irq”做返回值的方法來保護現場是不可取的,Nucleus硬中斷需要對寄存器做更有針對性的保護,Nucleus提供了內核級接口對現場做詳細保護。首先在IRQ中斷入口處對A1到A4寄存器做壓棧保護,并保存IRQ模式下的lr寄存器,然后調用Nucleus提供的函數TCT_Interrupt_Context_Save(內核函數)現場保護,并在中斷服務處理完成后調用TCT_Interrupt_Context_Restore(內核函數)恢復現場。

2.2 高級中斷

    高級中斷可以有效處理低級中斷中需要高效處理或是嵌套處理實時任務的情況。以本應用為例,由于FPGA中斷服務中做的數據處理需要消耗一定的時間,而且在系統IRQ中斷過程中IRQ中斷處于屏蔽狀態,因此會出現在中斷處理過程中積壓后面的中斷服務的情況,這里就可以設置高級中斷,在低級中斷服務中只需將高級中斷激活,耗時極短,數據處理由操作系統在高級中斷中調度完成。圖4中第一行波形高電平段為FPGA中斷。

qrs3-t4.gif

    此外在有強時序性的任務調度中,也可以使用高級中斷來保障時序同時不影響系統低級中斷的實時性。在本應用中DSP中斷中的數據處理與協議棧小區激活部分的數據處理都具有強時序性同時由于數據處理量較大會影響系統實時性,導致指針號無法對齊或指針號記錄積壓等問題,這里也需要使用高級中斷來激發任務,加強系統實時性。圖4中第二行高電平段為DSP中斷數據處理。

    從圖4中可以看出,采用了高級中斷的FPGA子幀中斷的時間非常的短,幾乎可以忽略不計,第二行的高電平為DSP處理消息時需要耗費的時間長度為465 ?滋s,可見該處理時間較長,若在低級中斷中處理很可能影響到FPGA中斷的時序,從而影響系統時序。在圖中明顯可以看到低級中斷與任務處理間的調度時間間隔在微秒級,完全滿足系統實時性的性能指標。同時在DSP數據處理完成后后續任務的執行在第三行波形中顯示出來,運行時序正常。

2.3 定時器設計與中斷整體設計

    操作系統定時器采用PWM硬件定時器做節拍計時,根據TD-LTE無線綜合測試儀的設計要求,采用了0.5 ms一次的節拍頻率作為操作系統定時的基本單位。設計中采用Timer4硬件定時器,并開啟自動重置(Auto-Reload)模式使計時持續。在每0.5 ms產生一次的定時器硬件中斷中調用TMT_Timer_Interrupt()函數(內核函數)來將硬件定時器與Nucleus操作系統關聯[6]。整體中斷設計如圖5所示。

qrs3-t5.gif

    移植應用中可以通過PWM調整定時器單位時間,如果使用了外部設備中斷產生單位時間中斷,也可作為定時器使用,只需要把TMT_Timer_Interrupt()放在該外部中斷中即可。

3 任務調度

    根據TD-LTE無線綜合測試儀中的設計要求TD-LTE任務流程與觸發方式涉及到應用初始化與任務調度設置兩個模塊。在應用初始化內需要做內存池初始化、任務初始化、隊列初始化、時鐘設置初始化與高級中斷初始化等工作,這些工作比較常規在這里不再詳述。任務調度設置需要根據協議棧各層順序設置,在各層任務中需要設置任務觸發方式,任務流程如圖6所示。

qrs3-t6.gif

    本文采用隊列方式進行任務調度。各任務間采用消息機制觸發并支持搶占,操作系統運行時首先在循環調度中按順序調度任務并將每個任務掛起,在此之后的調度中在每個任務中檢查隊列中是否有對應消息,需要執行該層任務的時候就在前一個任務中發送該層對應消息到隊列中,檢測到消息后該層任務從掛起狀態進入就緒或執行狀態,不需要執行該層任務的時候不發送消息給該層,該層任務在檢測不到消息的情況下就會掛起任務等待下一次調用[7],在沒有任務的情況下系統進入idle狀態等待計時器激活或是硬件中斷發生。其中小區激活與DSP任務采用外部硬件中斷機制激活,外部中斷激活高級中斷,任務在高級中斷來執行,既可以滿足操作系統實時性也可以很好的管理好各層任務。

    操作系統移植過程中不僅需要從硬件角度來實現操作系統的正常運作還需要綜合考慮系統的管理性能與整個系統的執行效率和實時性。移植后在ARM Workbench IDE v4.0與RealView Debugger v4.0上編譯調試,并通過測試板驗證和聯機驗證,運行結果和理論值一致。此移植具有較強的獨立性和穩定性,優化了系統資源利用率,實現了任務中斷與任務調度的高強度反復穩定運行,符合項目“TD-LTE無線終端綜合測試儀表” 調試中對系統實時性與資源調度的要求并應用于其中。

參考文獻

[1] 李書根,潘海燕,王培.一種嵌入式實時操作系統高可靠文件系統[J].微電子學與計算機,2014,31(2):14-16.

[2] 徐宇柘,鐘銳.Nucleus實時操作系統在繼電保護系統中的實時性研究[J].電腦知識與技術,2007(13):3-4.

[3] 杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003. 

[4] Samsung Electronics.S3C6410X RISC microprocessor user′s manual[Z].2008.

[5] LEE J,PARK J,HONG S.Memory footprint reduction with quasi-static shared libraries in MMU-less embedded systems[C].Real-Time and Embedded Technology and Applications,2006,Proceedings of the 12th IEEE,2006:24-36.

[6] Accelerated Technology,Inc..Nucleus NET reference manual[Z].2005.

[7] NGOLAH C F,Wang Yingxu,Tan Xinming.Implementing task scheduling and event handling in RTOS+[C].Electrical and Computer Engineering,2004,Canadian Conference,2004:1523-1526.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲欧美日韩成人| 国产欧美日本一区视频| 国产精品成人一区二区三区夜夜夜| 国产精品麻豆成人av电影艾秋| 免费h精品视频在线播放| 在线视频精品一区| 国产精品男gay被猛男狂揉视频| 一区二区三区在线免费视频| 一区二区三欧美| 亚洲第一页自拍| 久久精品成人一区二区三区蜜臀| 欧美日韩亚洲91| 黄色一区二区在线观看| 在线看欧美日韩| 在线免费观看日本欧美| 99视频精品全部免费在线| 国产欧美日韩综合一区在线播放| 国产精品专区第二| 欧美在线观看视频一区二区三区| 亚洲天堂成人在线视频| 国产日韩欧美一区二区三区在线观看| 欧美精品免费观看二区| 国产精品普通话对白| 欧美精品性视频| 亚洲精品免费观看| 亚洲在线国产日韩欧美| 欧美人与禽猛交乱配视频| 亚洲国产精品一区二区久| 国产女主播一区二区三区| 欧美视频四区| 国内精品久久久久影院薰衣草| 黄色小说综合网站| 欧美日韩在线一区二区三区| 国产亚洲一区二区在线观看| 中国女人久久久| 欧美一区二区三区在线免费观看| 国产欧美视频一区二区三区| 亚洲麻豆国产自偷在线| 一区二区日本视频| 欧美精品v日韩精品v国产精品| 国产日韩欧美夫妻视频在线观看| 久久久999精品视频| 欧美激情精品久久久久久蜜臀| 欧美午夜视频在线| 一区二区在线观看视频在线观看| 久久久人成影片一区二区三区观看| 一区二区三区日韩在线观看| 国产丝袜一区二区| 亚洲欧美日韩另类| 欧美一区二区在线视频| 欧美大片在线影院| 欧美调教vk| 亚洲国产精品成人久久综合一区| 99在线热播精品免费| 欧美日韩国产色综合一二三四| 欧美二区视频| 国产丝袜一区二区三区| 国产美女搞久久| 一区在线免费观看| 欧美mv日韩mv国产网站app| 亚洲深爱激情| 激情五月综合色婷婷一区二区| 一区二区三区欧美亚洲| 亚洲精品日韩综合观看成人91| 欧美激情一区二区三区蜜桃视频| 久久午夜色播影院免费高清| 欧美视频一区二区在线观看| 欧美大片免费看| 久久人人精品| 欧美成人性生活| 亚洲精品美女在线观看播放| 久久久久亚洲综合| 精品88久久久久88久久久| 欧美激情综合五月色丁香小说| 亚洲欧洲日本mm| 国产日韩欧美一区二区三区四区| 亚洲一区二区三区三| 欧美成人一区二免费视频软件| 欧美精品91| 今天的高清视频免费播放成人| 国产精品盗摄久久久| 欧美成人午夜激情| 红杏aⅴ成人免费视频| 欧美激情中文字幕一区二区| 欧美午夜精品一区二区三区| 国产日韩欧美一区二区三区四区| 亚洲视频在线视频| 国产欧美一区二区色老头| 欧美视频在线观看视频极品| 国产日韩欧美精品一区| 正在播放日韩| 欧美日韩免费网站| 国产综合18久久久久久| 亚洲精品日产精品乱码不卡| 久久久久久久久久久久久久一区| 欧美精品色一区二区三区| 国产乱码精品一区二区三区五月婷| aa亚洲婷婷| 欧美专区一区二区三区| 国产日韩欧美电影在线观看| 国产免费成人在线视频| 影音先锋欧美精品| 国产精品美女一区二区| 国产精品女主播一区二区三区| 亚洲日本乱码在线观看| 99在线热播精品免费| 欧美超级免费视 在线| 亚洲夫妻自拍| 欧美日韩亚洲综合在线| 亚洲东热激情| 久久久久久久综合日本| 久久久久久亚洲精品中文字幕| 亚洲欧美精品伊人久久| 国产色产综合色产在线视频| 久久综合久久综合这里只有精品| 9色国产精品| 亚洲欧美日韩成人高清在线一区| 蜜桃久久av| 美腿丝袜亚洲色图| 午夜伦欧美伦电影理论片| 一区二区三区在线免费视频| 一本色道久久88综合亚洲精品ⅰ| 国产欧美精品一区| 国产精品久久久久久久久借妻| 极品裸体白嫩激情啪啪国产精品| 国产精品毛片大码女人| 国产精品亚洲视频| 最新日韩在线视频| 欧美日韩综合在线免费观看| 国产精品五区| 亚洲电影免费观看高清| 136国产福利精品导航| 久久成人国产精品| 中文在线资源观看网站视频免费不卡| 韩日视频一区| 伊人久久亚洲美女图片| 亚洲免费观看视频| 国产精品夜夜夜一区二区三区尤| 久久精品99| 免费不卡在线观看av| 最新热久久免费视频| 韩曰欧美视频免费观看| 在线 亚洲欧美在线综合一区| 亚洲国产一区二区三区青草影视| 欧美一区二区精美| 欧美日韩综合视频网址| 亚洲免费网址| 亚洲精品综合在线| 国外视频精品毛片| 亚洲国产精品国自产拍av秋霞| 好吊日精品视频| 亚洲激情亚洲| 一区在线视频| 国产欧美日韩另类视频免费观看| 韩国三级电影一区二区| 欧美久久精品午夜青青大伊人| 国产裸体写真av一区二区| 在线观看欧美视频| 亚洲影院在线观看| 久久久久欧美精品| 国产精品扒开腿爽爽爽视频| 亚洲欧洲午夜| 欧美在线亚洲在线| 国产一区二区日韩精品| 欧美日韩在线播放一区二区| 亚洲一区二区三区午夜| 亚洲美女尤物影院| 久久精品国产精品| 国产精品卡一卡二| 国产精品爱久久久久久久| 国产一区二区无遮挡| 亚洲天堂成人在线视频| 欧美亚洲三级| 一区二区三区在线观看国产| 男女精品视频| 在线免费不卡视频| 欧美日韩无遮挡| 影音先锋中文字幕一区| 亚洲免费网址| 亚洲麻豆av| 老司机午夜免费精品视频| 老色鬼精品视频在线观看播放| 久久嫩草精品久久久精品| 尤物九九久久国产精品的特点| 日韩亚洲一区二区| 亚洲一区二区在| 欧美一区二区三区婷婷月色| 午夜亚洲一区| 在线中文字幕日韩| 亚洲中午字幕| 亚洲免费视频一区二区| 国产主播一区二区三区四区| 久久综合伊人77777麻豆| 亚洲精品久久久久久一区二区| 久久久女女女女999久久| 午夜在线观看免费一区| 国产精品久久久久久五月尺| 欧美日韩一区二区三区四区在线观看| 国产亚洲一区二区三区| 欧美一级视频免费在线观看| 国产在线精品一区二区夜色| 一区二区三区日韩精品视频| 久久精品国产一区二区三区| 国内成人精品视频| 国产亚洲人成网站在线观看| 久久成人在线| 欧美一区二区免费| 国产精品午夜国产小视频| 免费精品99久久国产综合精品| 久久综合色天天久久综合图片| 国产日韩在线亚洲字幕中文| 鲁鲁狠狠狠7777一区二区| 亚洲视频二区| 日韩午夜在线观看视频| 99精品国产99久久久久久福利| 久久深夜福利| 欧美在线免费观看视频| 一本久道久久综合中文字幕| 国产无一区二区| 国产自产精品| 亚洲一区影院| 欧美日韩一二三四五区| 欧美一级电影久久| 欧美bbbxxxxx| 先锋a资源在线看亚洲| 国产日韩精品在线观看| 国产精品分类| 亚洲精品社区| 红桃视频国产一区| 亚洲欧美视频在线观看| 久久精品视频在线看| 禁久久精品乱码| 欧美一级黄色网| 久久另类ts人妖一区二区| 久久国产夜色精品鲁鲁99| 欧美xart系列高清| 国产精品自在欧美一区| 久久久久一区| 伊人精品成人久久综合软件| 久久久久九九九九| 亚洲在线观看视频| 欧美二区在线看| 国产精品久久久久永久免费观看| 久久超碰97人人做人人爱| 亚洲深夜福利视频| 欧美老女人xx| 欧美成人精品1314www| 免费观看在线综合色| 国产精品久久九九| 欧美性色aⅴ视频一区日韩精品| 欧美激情成人在线视频| 亚洲精品美女在线观看| 99re视频这里只有精品| 久久婷婷一区| 欧美成人一区二区在线| 国内揄拍国内精品少妇国语| 狠狠干狠狠久久| 午夜免费日韩视频| 亚洲网友自拍| 国产一区导航| 黑人极品videos精品欧美裸| 在线日韩av| 亚洲已满18点击进入久久| 欧美成人精精品一区二区频| 国产精品久久久久久福利一牛影视| 亚洲国产一区二区三区a毛片| 亚洲国产欧美一区二区三区同亚洲| 亚洲成人在线观看视频| 亚洲小说春色综合另类电影| 久久频这里精品99香蕉| 亚洲国产精品一区二区www| 欧美激情一区二区三区在线视频观看| 国产精品一区二区三区四区| 亚洲视频网在线直播| 嫩模写真一区二区三区三州| 免费人成网站在线观看欧美高清| 国产精品户外野外| 亚洲精选国产| 免费91麻豆精品国产自产在线观看| 亚洲高清资源| 国产午夜精品全部视频播放| 亚洲国产精品va在线看黑人动漫| 在线成人中文字幕| 亚洲视频综合| 亚洲欧美日韩精品一区二区| 久久精品国产久精国产爱| 亚洲影视九九影院在线观看| 国产精品日日做人人爱| 猛干欧美女孩| 欧美一区影院| 欧美视频第二页| 亚洲天堂免费在线观看视频| 一区二区三区免费在线观看| 久久亚洲一区二区| 国产欧美在线观看一区| 国产欧美视频一区二区| 欧美日韩国产一级片| 欧美不卡高清| 欧美国产日韩在线观看| 国产午夜精品美女视频明星a级| 欧美一级欧美一级在线播放| 欧美在线首页| 欧美怡红院视频一区二区三区| 欧美影院视频| 国产亚洲精品高潮| 国产精品影院在线观看| 亚洲欧美欧美一区二区三区| 亚洲精品国产品国语在线app| 伊人成人开心激情综合网| 在线播放日韩| 欧美久久在线| 欧美理论大片| 一区二区毛片| 国产精品久久久久aaaa| 午夜精品福利在线观看| 欧美一区成人| 亚洲欧美日本国产有色| 国产精品久久久久999| 日韩一区二区精品| 性欧美长视频| 欧美精品久久天天躁| 欧美一区二区三区成人| 国语自产精品视频在线看| 美女脱光内衣内裤视频久久影院| 久久久精品视频成人| 久久精品二区| 国产日韩久久| 99国产精品99久久久久久|