<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 實時嵌入式操作系統μC/OS-II在MPC555上的移植

    時間:2024-07-12 08:56:00 理工畢業論文 我要投稿
    • 相關推薦

    實時嵌入式操作系統μC/OS-II在MPC555上的移植

    摘要:介紹了實時操作系統μC/OS-II的特點和內核結構,并首次實現了μC/OS-II在摩托羅拉處理器MPC555上的移植,介紹了移植后OS的應用方法。

    μC/OS-II是一種占先式、多任務、移植性非常強的免費微控制器嵌入式實時操作系統,從1992年出現以來,已在照相機、發動機控制和工業機器人等多種領域中得到應用。它一方面相對GNU下Linux衍生出來的EOS更小巧且移植方便,實時性更好,更適合工業控制領域應用;另一方面由于是免費的,比使用VxWorks等商業實時EOS大大節省成本,非常適用于開發實用簡約的嵌入式控制程序。

    摩托羅拉的MPC555是建立在PowerPC體系結構上,采用RISC技術的一款高檔、適用于精密控制的微控制器。其芯片內嵌增加了浮點單元的32位RCPU核心、26KB靜態RAM、448KB片內Flash、一個QSMCM(串行通訊模塊)、兩個TouCAN模塊、兩個TPU、一個MIOS(模塊化I/O系統)、兩個QADC模塊,工作頻率達40MHz。另外芯片體積小,僅為2.5cm×2.5cm×0.5cm。所有這些特性使其特別適用于汽車等現場控制領域的嵌入式微控制系統。

    將μC/OS-II移植于MPC555上既有益于MPC和μC/OS-II在車用控制器上的應用,其成果也可以用于其他嵌入式工業控制領域。本次移植中,使用CodeWarrior for PPC 6.5編譯調試環境。

    1 移植原理

    μC/OS-II包括中斷管理、任務管理、時間管理、任務之間通信管理和內存管理五方面功能。其結構共分三層,如圖1。I層為與處理器相關的代碼,在μC/OS-II的Intel 80x86版本上為OS_CPU.H、OS_CPU_C.C和OS_CPU_A.ASM三個文件。該層完成系統時鐘的設置、出入中斷的管理和任務切換功能,為第II層提供接口。II層包括時間管理、任務調度管理、任務間的通信管理和內存管理四部分,是OS的主體部分,全部由ANSI C代碼寫成,與處理器無關,它為用戶應用程序提供接口。III層是用戶應用程序部分,μC/OS-II有中斷和任務兩個處理級別,用戶可以建立自己的任務,編寫必要的中斷子程,在任務之間或任務與中斷子程之間建立信號量、郵箱或消息隊列完成控制器軟件的編寫。根據以上結構特點,在移植過程中,只需將I層代碼針對MPC555的編程結構做相應改動,使其完成系統時鐘設置、中斷管理和任務切換功能即可。

    在前后臺系統中,提供一個CPU堆棧。發生中斷時,將當前使用到的寄存器壓入堆棧,保存現場,執行中斷程序;中斷程序完成后,從CPU堆棧中彈出寄存器的值,恢復現場。

    在多任務系統μC/OS-II中不是這樣。OS創建時,為每個任務建立并初始化一個堆棧。當發生中斷或任務切換時,把當前任務運行現場保存起來,即將所有寄存器保存到該“舊”任務的堆棧中。當某個任務需要從就緒狀態激活到運行狀態時,OS又需將所有寄存器從該“新”任務的堆棧中彈出。這樣,每個任務分時占用CPU。而對各任務來說,每次進入運行態時,CPU狀態都與上次從運行態退出時完全一樣。所以不再是使用一個CPU堆棧,而是多個任務將各自的運行現場保存到自己的堆棧中。

    圖2 MPC555下uC/OS-II的中斷處理流程圖

    另外,調用C函數時也會使用到堆棧,此時編譯器會創建一個堆棧;在C函數返回時,將其釋放。其大小因C函數使用到的變量和編譯器的不同而不同。在移植時,能夠正確創建、初始化、保存并恢復各個任務的堆棧,是確保OS任務切換和中斷管理順利完成的關鍵。

    MPC555有32個32bit通用定點數寄存器,32個64bit浮點數寄存器,另有9個控制/狀態寄存器。針對MPC555的編程結構,設計如表1的堆棧結構。每次任務環境入棧時創建一含73個位置的堆棧,為了保證浮點數寄存器的完整,每個位置為64bit寬。創建任務時,建立該堆棧結構,并用默認值對其進行初始化。在任務保存或激活時把寄存器的值保存到堆棧中相應位置,或者從堆棧的相應位置把寄存器值彈出。其中GPR1被MPC作為堆棧指針SP使用,在堆棧操作時,要注意控制好SP。

    表1 堆棧結構表

    SP OffsetRegister SavedNUMDefault Value584~336
    328
    320~80
    72
    64
    56
    48
    40
    32
    24
    16

    8
    0FP31~FP0
    FPSCR
    GPR31~GPR0
    DAR
    CTX
    LR
    XER
    CR
    SRR1
    SRR0
    MSR

    SP(GPR1)
    73~42
    41
    40~10
    9
    8
    7
    6
    5
    4
    3
    2

    1
    00.0
    0x000020FC0000
    0x0
    0x00
    0x00
    task*0x100000000[1]
    0x00
    0x00
    0x0000B00200000000

    【實時嵌入式操作系統μC/OS-II在MPC555上的移植】相關文章:

    μC/OS-II在凌陽單片機SPCE061A上的移植03-18

    嵌入式實時操作系統研究與分析03-12

    uC/OS-II在EP7312上的移植03-18

    μC/OS-II在80196KC單片機上的移植03-18

    嵌入式圖形用戶界面在S3C44B0X上的移植03-18

    基于μC/os-II的嵌入式多功能信號源的設計03-07

    嵌入式Linux的MiniGUI研究和移植03-18

    嵌入式系統的實時數據接口擴展03-20

    通過任務分割提高嵌入式系統的實時性03-18

    主站蜘蛛池模板: 国产精品无圣光一区二区| 精品视频在线免费观看| 999久久久无码国产精品| 国产精品亚洲产品一区二区三区 | 国产福利电影一区二区三区,欧美国产成人精品一 | 国产乱人伦偷精品视频| 精品亚洲麻豆1区2区3区| 久久精品国产一区二区电影| 国产成人精品免费视频动漫| 一夲道无码人妻精品一区二区| 国产精品女同一区二区久久| 国产午夜精品一区理论片| 欧美亚洲色综久久精品国产 | 国产欧美精品AAAAAA片| 亚洲国产成人精品91久久久| 国产精品永久免费视频| 久久免费国产精品一区二区| 国产精品vⅰdeoxxxx国产| 中日精品无码一本二本三本| 精品国产福利尤物免费| www夜片内射视频日韩精品成人| 91精品啪在线观看国产| 人妻少妇精品视中文字幕国语| 无码人妻精品一区二区三区99不卡| 狠狠精品久久久无码中文字幕| 99久久国产综合精品五月天喷水 | 四虎精品8848ys一区二区| 国产精品vⅰdeoxxxx国产| 久久久久亚洲精品无码蜜桃| 亚洲欧洲美洲无码精品VA| 亚洲精品欧美二区三区中文字幕| 精品无码三级在线观看视频| 国产精品小黄鸭一区二区三区| 99国产精品国产免费观看| 91精品国产91热久久久久福利 | 日产精品久久久一区二区| 亚洲欧美一级久久精品| 午夜福利麻豆国产精品 | 精品国产日产一区二区三区| 91精品国产综合久久久久久| 2020国产精品|