www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]uC/OS-II嵌入式系統(tǒng)在C8051F060上的應(yīng)用

 隨著集成電路的高速發(fā)展和CMOS工藝水平的不斷提高,系統(tǒng)級芯片SOC已經(jīng)開始成為設(shè)計的主流。C8051F060單片機(jī)由美國Cygnal公司設(shè)計并制造,是一款完全集成的混合信號片上系統(tǒng)SOC,具有與MCS51內(nèi)核及指令集完全相同的微控制器。在傳統(tǒng)的單片機(jī)開發(fā)工作中,經(jīng)常遇到程序跑飛或是陷入死循環(huán),尤其是其中牽扯到復(fù)雜的計算,只有耗費大量時間來慢慢分析。如果在系統(tǒng)中嵌入uCOS II實時操作系統(tǒng),將使得調(diào)試程序變得簡單,并大大增強(qiáng)系統(tǒng)的穩(wěn)定性和可靠性。

  1 uCOS II系統(tǒng)在C8051F060上的應(yīng)用

  要應(yīng)用uCOS II系統(tǒng),首先要做的就是在C8051F060上移植該系統(tǒng);其次,在運行穩(wěn)定正常的系統(tǒng)上進(jìn)行開發(fā)。另外,還需要一個面向C8051F060的C編譯器作為系統(tǒng)工作的環(huán)境。筆者使用的是Keil軟件公司的Keil uVision3 V8.09,支持C和匯編混合編程。

  1.1在C8051F060上移植uCOS II系統(tǒng)

  移植的主要工作就是以C8051F060為處理器.修改與C8051F060相關(guān)的幾個文件

  (1)修改INCLUDES.H文件

  對于C8051F060.筆者在INCLUDES.H中增加的頭文件放在頭文件列表的最后:

  #include "os_cpu.h"

  #include "os_cfg.h"

  #include "ucos_ii.h"

  (2)修改OS CPU.H文件

  為確保C8051F060系統(tǒng)在KEIL環(huán)境下正常運行.在OS_CPU.H重新定義了一系列與C8051F060和KEIL編譯器相關(guān)的數(shù)據(jù)結(jié)構(gòu)、宏和常數(shù)。

  重新定義的數(shù)據(jù)結(jié)構(gòu)中要特別注意的是,

  C8051F060單片機(jī)中堆棧是按字節(jié)操作的,堆棧數(shù)據(jù)類型OS_STK聲明為8位:

  typedef unsigned char OS_STK; /*定義堆棧寬度為8位*/

  typedef unsigned char OS_CPU_SR;

  C8051F060單片機(jī)中,堆棧是從低地址向高地址增長的,所以O(shè)S_STK_GROWTH =0

  臨界段的宏的設(shè)置利用C8051F060單片機(jī)的開中斷和關(guān)中斷指令來實現(xiàn):

  #define OS_ENTER_CRITICAL() EA="0"

  #define OS_EXIT CRITICAL()  EA="1"

  OS_TASK_SW() 函數(shù)的定義:#define Os_TASK_SW() OSCtxSw()

  (3)修改OS_CPU_A.ASM文件

  用戶需要編寫4個函數(shù)的代碼:OSSTartHihgRdv()、OSCtxSw()、OSIntCtxSw()和OSTickISR()。另外,由于C8051F060在內(nèi)部RAM上有所欠缺.需要利用外部程序存儲空間作任務(wù)堆棧映像。函數(shù)代碼實現(xiàn)方法如下:

  ①編寫OSSTartHihgRdy()函數(shù)

  獲得將要恢復(fù)運行的就緒任務(wù)的堆棧映像的最低地址,并計算出堆棧長度,然后向系統(tǒng)堆棧復(fù)制數(shù)據(jù)、堆棧指針SP和堆棧映像指針?C_XBP,最后利用中斷返回。

 ?、诰帉慜SCtxSw()函數(shù)

  先從當(dāng)前任務(wù)的TCB控制塊中獲得當(dāng)前任務(wù)堆棧長度和堆棧映像指針,然后將系統(tǒng)堆棧的內(nèi)容復(fù)制到任務(wù)堆棧映像,最后獲得將要恢復(fù)運行的就緒任務(wù)的TCB,程序跳至OSSTartHihgRdy()函數(shù)的入口,實現(xiàn)任務(wù)的切換。

  ③編寫OSIntCtxSw()函數(shù)

  OSIntCtxSw()函數(shù)代碼大部分與OSCtxSw()相同,不同之處在于:

  此處不需要再保存C8051F060寄存器;

  需要調(diào)整堆棧指針(SP=SP-4),去掉在調(diào)用OSIntExit(),OSIntCtxSw()中壓入堆棧中的多余的內(nèi)容,以使堆棧中只包含任務(wù)的運行環(huán)境。

 ?、芫帉慜STickISR()函數(shù)

  用定時器0作中斷源.初始化定時器0使系統(tǒng)每秒中斷100次,節(jié)拍率Tick=100次/秒。

  (4)修改OS_CPU_C.C文件 。

  編寫OSTaskStkInit()函數(shù)用來初始化堆棧。需要注意的是。筆者所用的KEIL編譯環(huán)境中,任務(wù)參數(shù)是通過寄存器R3、R2、R1傳遞,而不是通過虛擬堆棧傳遞。如:

  *stk++=(INT16U)dpdata&0xFF; //R1

  *stk++=(INT16U)dpdata>>8; //R2

  *stk++=0x03; //R3

  1.2 系統(tǒng)測試

  uCOS II系統(tǒng)移植完成以后,需要檢驗系統(tǒng)是否能運行正常。筆者參考了uCOS II系統(tǒng)的作者的測試方法進(jìn)行了3個步驟的測試:


  驗證OSTaskStkInit()和OSStartHighRdy()函數(shù);

  驗證OSCtxSw()函數(shù);

  驗證OSIntCtxSw()和OSTickISR()函數(shù)。

  測試結(jié)果,系統(tǒng)在C8051F060上運行正常。

  1.3 以C8051F060單片機(jī)為應(yīng)用平臺的uCOS II系統(tǒng)的開發(fā)

  uCOS II系統(tǒng)穩(wěn)定正常的運行以后,就可以依此為應(yīng)用平臺進(jìn)行項目開發(fā)。

  有著豐富資源的C8051F060單片機(jī)是比較新的混合信號片上系統(tǒng)SOC,從它的主要特性中可以看出,在滿足較大的外圍電路設(shè)計的同時,能大大簡化電路。筆者所用的硬件環(huán)境是新華龍公司生產(chǎn)的C8051F MCU教學(xué)實驗系統(tǒng),該系統(tǒng)上面集成了各類傳感器、RS-485和RS232串行通訊口、步進(jìn)電機(jī)和直流電機(jī)控制器以及RJ-45以太網(wǎng)測控接口,整個系統(tǒng)利用串行適配器與PC進(jìn)行連接。

  在軟件設(shè)計中,主函數(shù)均以O(shè)SInit()函數(shù)開始,以O(shè)SStart()函數(shù)結(jié)束,中間部分為與硬件相關(guān)的系統(tǒng)初始化函數(shù),以及建立任務(wù)的函數(shù)。對于應(yīng)用程序的任務(wù)的建立,必須依照uCOS II系統(tǒng)中建立任務(wù)的格式,根據(jù)自己的需求來確定任務(wù)的個數(shù),并且根據(jù)任務(wù)的重要程度和被調(diào)用的頻率來設(shè)置好優(yōu)先級,創(chuàng)建好任務(wù)后,在主函數(shù)外面分別列出各個任務(wù)函數(shù),每個任務(wù)函數(shù)都是一個無限循環(huán)程序,在無限循環(huán)中調(diào)用實現(xiàn)某些功能的應(yīng)用程序函數(shù),然后按設(shè)計的需求設(shè)置掛起方式和掛起時間。中斷服務(wù)子程序最好用匯編語言編寫,并放入OS_CPU_A.ASM文件中。而C語言編寫的應(yīng)用程序則放在OS_CPU_C.C文件中,這些函數(shù)供主函數(shù)和任務(wù)調(diào)用。

  軟件設(shè)計好后,就可以和硬件連接起來進(jìn)行調(diào)試了。

  2 結(jié)語

        uCOS II實時操作系統(tǒng)的應(yīng)用日益廣泛,處理器嵌入操作系統(tǒng)系統(tǒng)進(jìn)行開發(fā)也成必然趨勢,并能充分體現(xiàn)其優(yōu)越性。筆者已經(jīng)成功的將uCOS II系統(tǒng)移植到C8051F060單片機(jī)上,并成功運用到多功能電子萬年歷的設(shè)計中,使得萬年歷系統(tǒng)更加穩(wěn)定可靠,取得了預(yù)期效果。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險積極籌備個人養(yǎng)老金的產(chǎn)品設(shè)計和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動商業(yè)養(yǎng)老保險、個人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動的最基本功能。而對于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對于空間和生活深層關(guān)系的思考,同時也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預(yù)告。今年前三季度,公司預(yù)計實現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預(yù)計為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲及超融合市場研究報告》,報告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運國際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進(jìn)出口商品交易會("廣交會")于"云端"開幕。本屆廣交會上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過140,...

關(guān)鍵字: 中國智造 BSP 手機(jī) CAN

Lua RTOS 是一個實時操作系統(tǒng),設(shè)計在嵌入式系統(tǒng)上運行,對 FLASH 和 RAM 內(nèi)存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平臺,并可以輕松移植到其他32位...

關(guān)鍵字: Lua RTOS 操作系統(tǒng) 嵌入式系統(tǒng)

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UATR,是一種串行、異步、全雙工的收發(fā)器。全雙工的UART支持同時雙向通信,是嵌入式系統(tǒng)必不可少的d...

關(guān)鍵字: 異步收發(fā) 傳輸器 嵌入式系統(tǒng)

嵌入式教程

6897 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉