μC/OS-II在幾種處理器上的移植介紹

2020-12-23 電子產品世界

μC/OS-II作業系統是一種搶佔式多任務、單內存空間、微小內核的嵌入式作業系統,具有高效緊湊的特點。它執行效率高,佔用空間小,可移植性強,實時性能良好且可擴展性強。採用μC/OS-II實時作業系統,可以有效地對任務進行調度;對各任務賦予不同的優先級可以保證任務及時響應;採用實時作業系統,降低了程序的複雜度,方便程序的開發和維護。μC/OS-11非常適合應用在一些小型的嵌入式產品應用場合,在家用電器、機器人、工業控制、航空航天、軍事科技等領域有著廣泛的應用。

本文引用地址:http://www.eepw.com.cn/article/150701.htm

  單片機、ARM、FPGA與μC/OS-II作業系統相結合,實現一些具體功能,是目前嵌入式應用中比較常見的。在這些應用中,基礎性的工作就是作業系統的移植。本文選取使用較多的51單片機、LPC2210、NiosII三種處理器進行介紹

  1 μC/OS-II作業系統移植條件

  μC/OS-II作業系統的大部分原始碼都是用C語言書寫的,但仍需使用彙編語言來完成一些和處理器相關的操作,例如讀寫處理器、寄存器時只能使用彙編語言來實現。因此,將μC/OS-II作業系統移植到目標處理器上,需要從硬體和軟體兩方面來考慮。

  硬體方面,目標處理器需滿足以下條件:

  ①處理器的C編譯器能產生可重入代碼;

  ②用C語言可以開/關中斷;

  ③處理器支持中斷,並且能夠產生定時中斷(通常在10~1 000 Hz之間);

  ④處理器能夠支持容納一定量數據的硬體堆棧;

  ⑤處理器有將堆棧指針和其他寄存器讀出和存儲到堆棧或內存中的指令。

  軟體方面,主要關注的是一些與處理器相關的代碼移植,其分布在OS_CPU.H、OS_CPU_C.C和OS_CPU_A.ASM這3個不同的文件中。

  2 目標處理器硬體支持

  51單片機、LPC2210、NiosII三種處理器在硬體方面均能滿足μC/OS-II作業系統的移植要求。

  51單片機:選擇Keil公司的集成開發環境作為開發工具,因為該集成開發環境的C51編譯器能產生可重入型代碼,且用C語言就可以開/關中斷。同時具有一定數量的堆棧和操作相關寄存器的指令。

  LPC2210:採用ARM7微控制器可以滿足上述②、④、⑤,而ADS1.2的C編譯器可以滿足①、③的要求。

  NiosII處理器:Nios處理器可以配置成最多支持64個中斷,包括外部硬體中斷、內部中斷以及TRAP(調試中斷)。Nios II處理器可以配置使用32位內部定時器,通過用軟體控制寫入幾個控制寄存器的內容來獲得定時工作,與一般的定時器工作原理相同,可以產生定時中斷。Nios處理器可以外接存儲器。以使用的DE2開發板為例,外接512 KB SRAM資源,可提供足夠的數據硬體堆棧。NioslI 8.0 IDE採用GNU編譯器,支持C/C++的編譯、連結產生重入代碼,允許在C語言中嵌入彙編語言。

  


相關焦點

  • μC/OS-II作業系統移植在LPC2378上的系統測試及問題解決方法
    1 、作業系統及CPU介紹 μC/OS-Ⅱ是基於優先級的佔先式實時多任務作業系統,包含有任務管理、時間管理、任務間同步通信(信號量,郵箱,消息隊列)和內存管理等功能。絕大部分代碼用C語言寫成,極少部分與處理器密切相關的代碼用彙編語言編寫,便於移植。
  • 輕型PPP協議在µC/OS-II作業系統中的實現
    鑑於目前PPP協議使用的普遍性和廣泛性[3,4],本文提出了基於ARM7TDMI處理器的µC/OS-II作業系統上PPP協議的設計與實現。通過PPP協議在µC/OS-II上的實現[5,6],能讓嵌入式設備接入Internet,進行信息互訪,為未來的「普適計算」的發展提供了一個有利條件。
  • python os.path模塊常用方法詳解
    os.path模塊主要用於文件的屬性獲取,在編程中經常用到,以下是該模塊的幾種常用方法。
  • 基於32位高性能數位訊號處理器實現飛機測控終端系統的設計
    硬體設計 TMS320F2812 DSP介紹 TMS320F2812 DSP是德州儀器公司(TI)推出一種32位高性能數位訊號處理器,它擁有峰值每秒運行150萬條指令(MIPS)的處理速度和單周期完成32×32位MAC運算的功能,同時它還具有128K×16的片上Flash、18K×16的片上RAM以及大量的片上外設,包括AD轉換模塊、兩個事件管理器(EVA
  • Python的os / shutil / Path 模塊介紹
    一、os 的簡單介紹提供了非常豐富的方法用來處理文件和目錄。二、shutil 的簡單介紹高級的文件 文件夾 壓縮包 處理模塊三、pathlib 的簡單介紹官方定義:Object-oriented filesystem paths(面向對象的文件系統路徑)官方推薦:pathlib是一個從3版本開始就能完全替代os.path的內置庫,在python官網中這樣說 "對於字符串的低級路徑操作,您也可以使用該
  • 三地μC/OS-III現場培訓圓滿成功
    以前對RTOS沒有準確的認知,這次培訓思路清晰,通過培訓對μC/OS有了深刻的理解,還得到了開發板和書,真是太超值了!
  • Python os庫常用函數介紹
    1. os庫基本介紹os庫提供通用的、基本的作業系統交互功能os庫是Python標準庫,包含幾百個函數分為路徑操作、進程管理、環境參數等幾類>路徑操作:os.path子庫,處理文件路徑及信息進程管理:啟動系統中其他程序環境參數:獲得系統軟硬體信息等環境參數2.
  • python基礎模塊三劍客:sys、os、shutil
    有個熟悉DOS命令的同學回答說:os.system('copy a.v b.v')os.system('del b.v')os.system('rename a.v b.v')又有個同學找到一個「通用的」方法說,windows上可以安裝類unix小工具,然後繼續用linux的方法。
  • 物聯網應用開發之C語言介紹
    儘管C語言提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以一個標準規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平臺的許多計算機平臺上進行編譯。C語言是一門面向過程的計算機程式語言,與C++、Java等面向對象程式語言有所不同。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的程式語言。
  • Python基礎之os和數據結構
    '/root/test'得到當前路徑上一次的絕對路徑>>> os.path.abspath('..')commands.getstatusoutput('hostname')(0, 'dev01')列表的追加>>> ll=['a','b','c','d']>>> ll.append('jeanron100')>>> print(ll)['a', 'b', 'c', 'd', 'jeanron100
  • 為何iPhone 7C要用A9處理器?擊殺安卓陣營
    這款手機的各種配置也被媒體曝光,其中中國臺灣凱基證券的分析師郭明池披露,該手機將會配置蘋果在2015年旗艦手機中採用的A9處理器。為何在一款屏幕小、價格略便宜的手機中,配置性能如此強大的應用處理器?對於這款四寸手機,蘋果官方從未進行過證實,而媒體甚至給出了手機型號名稱,iPhone 6c或是iPhone 7c。預計將會在明年初的春季發布會上推出。
  • python之OS模塊39個常用函數詳解
    它可以是單個字符,如 POSIX 上是 '\n',也可以是多個字符,如 Windows 上是 '\r\n'。在寫入以文本模式(默認模式)打開的文件時,請不要使用 os.linesep 作為行終止符,請在所有平臺上都使用一個 '\n' 代替。
  • 國外開發者移植Windows95到AppleWatch上
    紐約的移動設計與產品開發團隊Tendigi,其技術長NickLee參考了知名蘋果開發者Steven Troughton Smith過去破解Appl eWatch的作法,擺脫官方Watch Kit框架的諸多限制,將Windows 95移植到Apple Watch上。
  • 用Lewis鹼打開CoIII,IV2(μ-O)2鑽石核心可以提高C-H鍵的裂解反應性
    ,用Lewis鹼打開CoIII,IV2(μ-O)2的「鑽石核心」可以提高C-H鍵的裂解反應性。該研究於2020年12月16日發表於國際一流學術期刊《美國化學會志》上。 研究人員於近日報導了一種高價CoIII,IV2(μ-O)2的「鑽石核心」 (1),其對sp3雜化的C-H鍵具有高反應活性。
  • OS開發愛好者福利:樹莓派上編譯C語言,順便掌握一波硬體知識
    下面介紹一篇利用樹莓派進行裸機編程的教程,順便學習一下接口、硬體等知識。近日,有人在 GitHub 上開源了一個關於樹莓派的教程。不同於以往的樹莓派開發,這篇教程的核心內容是討論如何在樹莓派上進行裸機編程。