中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      實(shí)時(shí)嵌入式操作系統(tǒng)μC/OS-II在MPC555上的移植

      時(shí)間:2024-07-12 08:56:00 理工畢業(yè)論文 我要投稿
      • 相關(guān)推薦

      實(shí)時(shí)嵌入式操作系統(tǒng)μC/OS-II在MPC555上的移植

      摘要:介紹了實(shí)時(shí)操作系統(tǒng)μC/OS-II的特點(diǎn)和內(nèi)核結(jié)構(gòu),并首次實(shí)現(xiàn)了μC/OS-II在摩托羅拉處理器MPC555上的移植,介紹了移植后OS的應(yīng)用方法。

      μC/OS-II是一種占先式、多任務(wù)、移植性非常強(qiáng)的免費(fèi)微控制器嵌入式實(shí)時(shí)操作系統(tǒng),從1992年出現(xiàn)以來(lái),已在照相機(jī)、發(fā)動(dòng)機(jī)控制和工業(yè)機(jī)器人等多種領(lǐng)域中得到應(yīng)用。它一方面相對(duì)GNU下Linux衍生出來(lái)的EOS更小巧且移植方便,實(shí)時(shí)性更好,更適合工業(yè)控制領(lǐng)域應(yīng)用;另一方面由于是免費(fèi)的,比使用VxWorks等商業(yè)實(shí)時(shí)EOS大大節(jié)省成本,非常適用于開發(fā)實(shí)用簡(jiǎn)約的嵌入式控制程序。

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

      將μC/OS-II移植于MPC555上既有益于MPC和μC/OS-II在車用控制器上的應(yīng)用,其成果也可以用于其他嵌入式工業(yè)控制領(lǐng)域。本次移植中,使用CodeWarrior for PPC 6.5編譯調(diào)試環(huán)境。

      1 移植原理

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

      在前后臺(tái)系統(tǒng)中,提供一個(gè)CPU堆棧。發(fā)生中斷時(shí),將當(dāng)前使用到的寄存器壓入堆棧,保存現(xiàn)場(chǎng),執(zhí)行中斷程序;中斷程序完成后,從CPU堆棧中彈出寄存器的值,恢復(fù)現(xiàn)場(chǎng)。

      在多任務(wù)系統(tǒng)μC/OS-II中不是這樣。OS創(chuàng)建時(shí),為每個(gè)任務(wù)建立并初始化一個(gè)堆棧。當(dāng)發(fā)生中斷或任務(wù)切換時(shí),把當(dāng)前任務(wù)運(yùn)行現(xiàn)場(chǎng)保存起來(lái),即將所有寄存器保存到該“舊”任務(wù)的堆棧中。當(dāng)某個(gè)任務(wù)需要從就緒狀態(tài)激活到運(yùn)行狀態(tài)時(shí),OS又需將所有寄存器從該“新”任務(wù)的堆棧中彈出。這樣,每個(gè)任務(wù)分時(shí)占用CPU。而對(duì)各任務(wù)來(lái)說(shuō),每次進(jìn)入運(yùn)行態(tài)時(shí),CPU狀態(tài)都與上次從運(yùn)行態(tài)退出時(shí)完全一樣。所以不再是使用一個(gè)CPU堆棧,而是多個(gè)任務(wù)將各自的運(yùn)行現(xiàn)場(chǎng)保存到自己的堆棧中。

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

      另外,調(diào)用C函數(shù)時(shí)也會(huì)使用到堆棧,此時(shí)編譯器會(huì)創(chuàng)建一個(gè)堆棧;在C函數(shù)返回時(shí),將其釋放。其大小因C函數(shù)使用到的變量和編譯器的不同而不同。在移植時(shí),能夠正確創(chuàng)建、初始化、保存并恢復(fù)各個(gè)任務(wù)的堆棧,是確保OS任務(wù)切換和中斷管理順利完成的關(guān)鍵。

      MPC555有32個(gè)32bit通用定點(diǎn)數(shù)寄存器,32個(gè)64bit浮點(diǎn)數(shù)寄存器,另有9個(gè)控制/狀態(tài)寄存器。針對(duì)MPC555的編程結(jié)構(gòu),設(shè)計(jì)如表1的堆棧結(jié)構(gòu)。每次任務(wù)環(huán)境入棧時(shí)創(chuàng)建一含73個(gè)位置的堆棧,為了保證浮點(diǎn)數(shù)寄存器的完整,每個(gè)位置為64bit寬。創(chuàng)建任務(wù)時(shí),建立該堆棧結(jié)構(gòu),并用默認(rèn)值對(duì)其進(jìn)行初始化。在任務(wù)保存或激活時(shí)把寄存器的值保存到堆棧中相應(yīng)位置,或者從堆棧的相應(yīng)位置把寄存器值彈出。其中GPR1被MPC作為堆棧指針SP使用,在堆棧操作時(shí),要注意控制好SP。

      表1 堆棧結(jié)構(gòu)表

      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

      【實(shí)時(shí)嵌入式操作系統(tǒng)μC/OS-II在MPC555上的移植】相關(guān)文章:

      μC/OS-II在凌陽(yáng)單片機(jī)SPCE061A上的移植03-18

      嵌入式實(shí)時(shí)操作系統(tǒng)研究與分析03-12

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

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

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

      基于μC/os-II的嵌入式多功能信號(hào)源的設(shè)計(jì)03-07

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

      嵌入式系統(tǒng)的實(shí)時(shí)數(shù)據(jù)接口擴(kuò)展03-20

      通過(guò)任務(wù)分割提高嵌入式系統(tǒng)的實(shí)時(shí)性03-18

      主站蜘蛛池模板: 亚洲精品国产av一区二区| 国模少妇无码一区二区三区| 大洼县| 亚洲精选视频一区二区三区| 人妻中文字幕av有码在线| 国产精品亚洲一区二区三区| 阿尔山市| 柞水县| 最新国产成人综合在线观看| 亚洲一区二区国产精品视频| 色综合久久久久综合一本到桃花网| 国产极品喷水视频| 丰满少妇人妻无码超清| 郑州市| 涟源市| 新宾| 西畴县| 汶川县| 册亨县| 大邑县| 余江县| 开心五月婷婷丁香综合| 肇源县| 国产亚洲av日韩av| 在线观看黄片在线播放视频| 久久这里只有精品黄色| 国产精品亚洲ΑV天堂无码| 滦南县| 国产午夜激无码AV毛片不卡| 亚洲av午夜成人片精品| 蜜桃av观看亚洲一区二区| 无码啪啪熟妇人妻区| 日本一极品久久99精品| 无码人妻专区一区二区三区| 久久久精品国产视频在线| 亚洲福利黄色片深爱网| 成人免费无码视频在线网站| 国产自产av一区二区三区性色 | 久久一区二区三区不卡| 蜜桃伦理一区二区三区| 人妻av一区二区三区高|