新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > μC/OS-II的多任務(wù)系統(tǒng)在SOPC中的硬件實(shí)現(xiàn)

μC/OS-II的多任務(wù)系統(tǒng)在SOPC中的硬件實(shí)現(xiàn)

作者: 時(shí)間:2012-07-16 來源:網(wǎng)絡(luò) 收藏

本人在教學(xué)及科研實(shí)驗(yàn)中,對(duì)基于μC/的多中的設(shè)計(jì)總結(jié)出了具體方法。經(jīng)過實(shí)踐驗(yàn)證,該方法簡(jiǎn)單、可靠,值得推廣。

本文引用地址:http://butianyuan.cn/article/148761.htm

1 μC/OS實(shí)時(shí)操作

μC/是一個(gè)可移植、可裁剪、占先式、實(shí)時(shí)的多內(nèi)核,主要有管理、時(shí)間管理、信號(hào)量管理、消息郵箱管理、列隊(duì)管理、內(nèi)存管理等。由于絕大部分代碼都是用C語言編寫的,只有極少部分與處理器密切相關(guān)的代碼是用匯編語言編寫的,用戶只要做很少的工作就可以把它移植到各類8位、16位、32位處理器上。另外,μC/的構(gòu)思巧妙,結(jié)構(gòu)簡(jiǎn)單、精煉,可讀性強(qiáng),有足夠的穩(wěn)定性和安全性,具備了實(shí)時(shí)操作的全部功能,在嵌入式系統(tǒng)領(lǐng)域有著廣泛的應(yīng)用。

2 設(shè)計(jì)

基于μC/OS-II的多任務(wù)系統(tǒng)在系統(tǒng)中的與普通設(shè)計(jì)相同,使用Quartus II創(chuàng)建設(shè)計(jì)工程,工程創(chuàng)建完成之后,創(chuàng)建頂層實(shí)體。創(chuàng)建完頂層設(shè)計(jì)文件后,使用SOPC Builder創(chuàng)建Nios II嵌入式處理器,添加、配置系統(tǒng)的外設(shè)IP,組成Nios II系統(tǒng)模塊。Nios II系統(tǒng)模塊設(shè)計(jì)完成之后要加入到該頂層實(shí)體中,然后進(jìn)行其他片上邏輯的開發(fā)。系統(tǒng)整體開發(fā)流程如圖1所示。

3 軟件開發(fā)

利用Nios II IDE開發(fā)環(huán)境,使用C/C++語言編程設(shè)計(jì)。根據(jù)多任務(wù)系統(tǒng)的實(shí)際情況確定任務(wù)棧大小,并定義個(gè)任務(wù)棧;依照任務(wù)輕重緩急設(shè)定優(yōu)先級(jí),創(chuàng)建和編寫各具體任務(wù),最后調(diào)用OSSTat()啟動(dòng)MicroC/OS-II。具體開發(fā)流程如圖2所示。

4 具體方法

本文涉及內(nèi)容已在Nios development Board CycloneII(EP2C35)中實(shí)現(xiàn)。通過在Quartus II中使用SOPCBuilder建立一個(gè)Nios II最小系統(tǒng),然后在Nios II IDE編寫基于μC/OS-II實(shí)時(shí)操作系統(tǒng)的應(yīng)用程序,同時(shí)運(yùn)行3個(gè)任務(wù),分別是LED跑馬燈、步進(jìn)電機(jī)運(yùn)行控制、LCD16207顯示字符。具體電路如圖3所示。

結(jié) 語

該方案已經(jīng)在具體項(xiàng)目中實(shí)現(xiàn)。如果組成多任務(wù)的單任務(wù)能夠可靠運(yùn)行,只要把Nios II IDE環(huán)境下的System Library設(shè)置成MicroC/OS-II,在源程序里加入μC/OS-II多任務(wù)的相關(guān)函數(shù)及必要的參數(shù),把各個(gè)單任務(wù)程序整合到程序中,就可以在極短時(shí)間完成多任務(wù)的設(shè)計(jì)。若想開發(fā)成多任務(wù)專用集成電路(ASIC),可以保持上述開發(fā)過程不變,使用Stratix FPGA系列芯片,在需要時(shí),通過Altera的HardCopy設(shè)計(jì)中心將由FPGA構(gòu)成的系統(tǒng)無縫移植為低成本、功能等價(jià)、引腳兼容的HardCopyII結(jié)構(gòu)化的ASIC,是一個(gè)值得推廣的成熟、高效的設(shè)計(jì)方案。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉