• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于MicroBlaze的μC/OS-II操作系統(tǒng)移植①

      2017-06-07 08:24:04常華利尹震宇
      計算機系統(tǒng)應用 2017年5期
      關(guān)鍵詞:占用率堆棧數(shù)控系統(tǒng)

      常華利,尹震宇

      1(中國科學院大學,北京100049)

      2(中國科學院 沈陽計算技術(shù)研究所,沈陽 110171)

      基于MicroBlaze的μC/OS-II操作系統(tǒng)移植①

      常華利1,2,尹震宇2

      1(中國科學院大學,北京100049)

      2(中國科學院 沈陽計算技術(shù)研究所,沈陽 110171)

      LT-H10滾齒機數(shù)控系統(tǒng)采用基于ARM的系統(tǒng)結(jié)構(gòu),其處理器等性能、資源比以往基于x86的系統(tǒng)受到很大的限制,所以CPU的占用率也相對較高.為了降低ARM CPU的占用率把系統(tǒng)運行的部分主站控制驅(qū)動程序遷移到底板FPGAMicroBlaze軟核處理器上運行,本文提出了一種基于MicroBlaze軟核處理器的μC/OS-II的移植方案.測試實驗結(jié)果表明μC/OS-II系統(tǒng)移植到MicroBlaze之后能穩(wěn)定的運行.快速的任務上下文切換更有利于數(shù)控系統(tǒng)的實時性.針對MicroBlaze μC/OS-II系統(tǒng)和ARM Linux系統(tǒng)設計了兩個不同的任務調(diào)度算法對任務上下文切換的時間開銷進行研究、測量和分析.此研究方案不僅可以滿足基于ARM的數(shù)控系統(tǒng)的應用需要,同時適用于基于x86的數(shù)控系統(tǒng),達到降低系統(tǒng)CPU占用率的目的,在嵌入式數(shù)控系統(tǒng)中具有重要的研究意義與應用價值.

      FPGA;MicroBlaze;μC/OS-II;移植

      LT-H10控制系統(tǒng)是針對滾齒機的專用控制系統(tǒng),是基于ARM處理器的嵌入式數(shù)控系統(tǒng)[1],底層硬件采用了FPGA實現(xiàn)系統(tǒng)主站,完成基本的電平轉(zhuǎn)換、信號采集等功能.系統(tǒng)主站要實現(xiàn)伺服-脈沖控制,總線協(xié)議,I/O控制,數(shù)字光柵尺控制,計數(shù)器,主軸控制等功能.進一步的這些控制功能還需要實現(xiàn)在驅(qū)動程序部分,運行這些功能會占用大量ARM主處理器資源[2],而且控制指示燈以及超時報警的檢測、處理等也會占用ARM CPU資源.此外,GPMC總線帶寬有限,傳輸原始數(shù)據(jù)時,也會帶來總線的大量開銷,并不利于實時性.

      本文以LT-H10控制系統(tǒng)為研究對象,提出了一種基于MicroBlaze軟核處理器的μC/OS-II的移植[3]方案.把系統(tǒng)運行的部分主站控制驅(qū)動程序遷移到底板FPGA MicroBlaze軟核處理器上運行,以達到降低ARM CPU占用率的目的.

      此研究方案不僅適用于基于ARM的數(shù)控系統(tǒng),同時適用于基于x86的數(shù)控系統(tǒng),達到降低系統(tǒng)CPU占用率的目的,在嵌入式數(shù)控系統(tǒng)中具有重要的應用價值.

      1 μC/OS-II、MicroBlaze概述及系統(tǒng)移植的可行性分析

      1.1 實時操作系統(tǒng)μC/OS-II

      μC/OS-II操作系統(tǒng)[4]目前在工業(yè)領(lǐng)域中使用的非常廣泛,作為一種源代碼公開的實時嵌入式操作系統(tǒng),最多可支持63個任務,其內(nèi)核為占先式(即執(zhí)行就緒態(tài)中優(yōu)先級最高的任務)并支持信號量、郵箱、消息隊列等多種進程間通信機制;同時用戶可以根據(jù)需要對內(nèi)核中的功能模塊進行裁剪[5];并且μC/OS-II操作系統(tǒng)代碼很簡潔,僅有5500行代碼,而且其大部分代碼是使用C語言編寫的,只有與硬件相關(guān)的少量代碼需要使用目標板支持的匯編語言[6].所以說μC/OS-II具有內(nèi)核小巧、可裁剪、實時性強、多任務、方便移植到多種嵌入式平臺等特點,使得各個任務獨立工作,互相不干涉,從而很容易使得任務被準確執(zhí)行,使實時應用程序的設計和擴展變得簡單[7,8].

      1.2 軟核處理器MicroBlaze

      Xilinx首創(chuàng)了現(xiàn)場可編程邏輯陣列(FPGA)這一創(chuàng)新性的技術(shù),隨著FPGA的技術(shù)的發(fā)展,其邏輯容量逐步增大而成本越來越低[9].這種趨勢下,FPGA可以代替系統(tǒng)中越來越多的器件,并且發(fā)展到FPGA片上系統(tǒng).Xilinx推出了32位軟核處理器MicroBlaze,用來替代片上的微控制器,有效的縮小了PCB板的面積和器件數(shù)量,降低了整個系統(tǒng)的成本.該處理器采用32位RISC哈佛存儲結(jié)構(gòu),擁有極其靈活的架構(gòu)以及豐富的指令集.MicroBlaze軟核處理器具有占用資源少、可配置性強的特點,可以和其他外設IP核一起,完成可編程芯片的設計.MicroBlaze軟核處理器采用Xilinx公司提供的嵌入式開發(fā)套件EDK進行設計開發(fā),設計套件DEK提供了硬件平臺開發(fā)環(huán)境XPS和軟件平臺開發(fā)環(huán)境SDK[10].

      1.3 μC/OS-II代碼結(jié)構(gòu)分析以及處理器相關(guān)核心代碼

      從μC/OS-II移植的過程來看,μC/OS-II代碼邏輯上可以分為三大組成部分:與處理器無關(guān)的內(nèi)核代碼、與處理器有關(guān)的核心代碼、與軟硬件環(huán)境設置有關(guān)的配置代碼[11].如圖1是μC/OS-II操作系統(tǒng)的代碼結(jié)構(gòu).

      圖1 μC/OS-II的代碼結(jié)構(gòu)

      其中與處理器無關(guān)的內(nèi)核代碼主要實現(xiàn)是任務管理、信號量、內(nèi)存管理、消息隊列、系統(tǒng)調(diào)用等功能(主要包括os_core.c、os_flag.c、os_mbox.c、os_mem.c、os_mutex.c、os_q.c、os_sem.c、os_task.c、os_time.c、ucos_ii.h、ucos_ii.c);

      與處理器有關(guān)的核心代碼主要與操作系統(tǒng)的移植相關(guān)(主要包括os_cpu.h、os_cpu_a.s、os_cpu_c.c);

      與軟硬件環(huán)境設置有關(guān)的配置代碼主要用于裁剪和設置操作系統(tǒng)(主要包括os_cfg.h、includes.h).

      1.4 μC/OS-II在MicroBlaze上移植的可行性分析

      移植的目標是使得這個實時內(nèi)核能夠在軟核處理器MicroBlaze上得到運行.要使μC/OS-II能夠正常運行,處理器必須要滿足:

      1)處理器的C編譯器能夠產(chǎn)生可重入代碼,并且使用C語言就可以完成開關(guān)中斷;

      2)處理器支持中斷;

      3)處理器支持可以容納一定數(shù)據(jù)量的硬件堆棧;

      4)處理器有把堆棧指針和其他寄存器讀出和存儲到堆?;蛘呤莾?nèi)存中的指令.

      DEK軟件開發(fā)套件內(nèi)置的編譯器能夠產(chǎn)生可重入代碼,并支持內(nèi)嵌匯編語言,在C語言環(huán)境中可進行任意的開關(guān)中斷操作;MicroBlaze有專門的堆棧指針寄存器,足夠大的內(nèi)部BRAM容量能夠完全硬件堆棧;另外,MicroBlaze的指令集包含有豐富的指令對堆棧進行操作,可以方便的對處理器中的寄存器進行堆棧操作.所以,μC/OS-II完全可以移植到軟核處理器MicroBlaze上.

      2 系統(tǒng)移植設計和相應測試實驗

      2.1 使用ISE14.7集成軟件環(huán)境搭建系統(tǒng)移植環(huán)境

      主要設備和軟件:PC機一臺、ISE14.7集成軟件環(huán)境以及圖2所示的FPGA測試板.

      圖2 FPGA測試板、Xilinx JTAG下載器,和FPGA測試板電源盒

      利用EDK的板級開發(fā)包向?qū)?BSB Wizard)對硬件平臺進行定制,處理器時鐘頻率是50MHZ,內(nèi)存約束至32KB,添加一個GPIO IP核.

      搭建系統(tǒng)移植環(huán)境的步驟:

      1)使用ISE14.7建立工程

      根據(jù)所用FPGA芯片設置對應測試板信息:架構(gòu)是Spartan3e,設備型號是xc3s500e,封裝是pq208,速度是-4.

      2)向工程添加VHDL Module,修改cpuv01.vhd文件,如圖3.

      3)向工程添加Embedded processor文件,自動開啟EDK板級開發(fā)包向?qū)?BSB Wizard)構(gòu)建硬件平臺.如圖4所示,處理器時鐘頻率是50MHZ,內(nèi)存32KB.

      4)IP核地址設置

      如圖5所示,設置IP核地址:GPIO的基地址是0x90000000,高地址是0x900001FF.

      圖3 cpuv01.vhd文件

      圖4 處理器信息設置

      圖5 設置IP核地址

      5)添加UCF約束文件

      UCF文件用來添加信號的管腳約束與時序約束,通過文本編輯器來修改.

      把串口的輸入輸出信號與FPGA芯片相應管腳相連,時鐘信號引腳為P77,復位引腳為P54,測試板上P96、P97、P98、P99、P100和P102對應測試板上一組LED,并設置輸入時鐘頻率為50MHZ.

      通過以上步驟完成硬件平臺的建立,導出硬件平臺文件到SDK,在SDK中新建 Application Project,就完成了系統(tǒng)移植環(huán)境的搭建,接下來就可以開始移植μC/OS-II操作系統(tǒng)到MicroBlaze處理器.

      2.2 移植的步驟

      1)使用SDK軟件開發(fā)套件為μC/OS-II操作系統(tǒng)建立一個目錄,在該目錄下創(chuàng)建工程,加入μC/OS-II內(nèi)核文件到這個工程.

      2)根據(jù)測試板硬件環(huán)境移植os_cpu.h

      os_cpu.h包含和CPU相關(guān)的不能通用的數(shù)據(jù)類型的定義、變量聲明、函數(shù)代碼的聲明部分.部分數(shù)據(jù)類型的定義:

      由于不同的處理器有不同的字長,μC/OS-II的移植包括一系列類型定義,以確保可移植性.MicroBlaze是32位處理器,堆棧入口寬度是32位,所以OS_STK被定義為32位,所有的任務堆棧也都用OS_STK來聲明,狀態(tài)寄存器也是32位的,所以OS_CPU_SR也被定義為32位.

      μC/OS-II在進入系統(tǒng)臨界代碼段之前要進行關(guān)閉中斷,退出臨界代碼段時要打開中斷,從而保證核心數(shù)據(jù)不被多任務環(huán)境下的其他任務中斷破壞.在μC/OS-II操作系統(tǒng)中提供了三種針對MicroBlaze的處理中斷的方式,這里用到了第三種方式,即OS_CRITICAL_METHOD==3,用戶可以取得當前處理器狀態(tài)字的值,保存在C函數(shù)的局部變量中,這個變量就是用來恢復程序狀態(tài)字的值.另外,MicroBlaze的 堆 棧 地 址 由 低 到 高 增 長 , 故OS_STK_GROWTH==1.

      3)根據(jù)測試板硬件環(huán)境移植移植os_cpu_c.c

      需要編寫 10個簡單的 C函數(shù),分別是OSInitHookBegin() 、 OSInitHookEnd() 、OSTaskCreateHook() 、 OSTaskDelHook() 、OSTaskIdleHook() 、 OSTaskStatHook() 、OSTaskStkInit()、OSTaskSwHook()、OSTCBInitHook()、OStimeTickHook().其 中 唯 一 必 要 的 函 數(shù) 是OSTaskStkInit(),此函數(shù)用來初始化任務堆棧,初始狀態(tài)的堆棧模擬發(fā)生一次中斷后的堆棧結(jié)構(gòu)在初始化堆棧寄存器時用與寄存器號相對應的值進行初始化,目的是便于調(diào)試.其余9個必須聲明,但不一定要包含任何代碼.

      4)根據(jù)測試板硬件環(huán)境移植os_cpu_a.s.

      對OS_CPU_A.S進行移植,主要是編寫4個匯編語言函數(shù),分別是:多任務啟動函數(shù)調(diào)用的一個函數(shù)OSStartHighRdy()、任務切換函數(shù)OSCtxSw()、中斷任務 切 換 函 數(shù) OSIntCtxSw()和 中 斷 服 務 函 數(shù)OS_CPU_ISR().μC/OS-II啟動時調(diào)用OSStart(),而OSStart()又調(diào)用OSStartHighRdy()運行優(yōu)先級最高的任務.OSCtxSw()的調(diào)用發(fā)生在有更高優(yōu)先級的任務就緒或者當前任務不可執(zhí)行的情況下.如果任務執(zhí)行了某個函數(shù),其結(jié)果改變了當前任務的狀態(tài),或是改變了別的任務狀態(tài)都會引起新的任務調(diào)度.判斷有比中斷更重要的任務在運行時,OSIntCtxSw()被OSIntExit()調(diào)用.MicroBlaze為每一個中斷都提供一個單獨的中斷向量,Xilinx的XPS工具會自動的生成中斷向量表,地址空間為0x00000010-0x00000014.OS_CPU_ISR()用于判斷中斷源以及執(zhí)行器件所對應的中斷語句和函數(shù).

      2.3 編寫應用程序測試操作系統(tǒng)

      為了驗證μC/OS-II操作系統(tǒng)是否成功移植到軟核處理器MicroBlaze中,編寫應用程序進行測試,具體思路是:

      首先建立主程序,如main.c.主程序中的入口函數(shù)OSInit執(zhí)行操作系統(tǒng)初始化函數(shù);

      其次是調(diào)用OSTaskCreate()創(chuàng)建控制測試板LED的任務AppTaskFirst,其優(yōu)先級為5用來控制引腳分別為P96、 P98、P100的LED的亮滅;

      最后OSStart()開啟多任務,調(diào)用OSStartHighRdy()運行優(yōu)先級最高的任務,任務AppTaskFirst優(yōu)先級最高,會循環(huán)執(zhí)行.

      設計測試程序代碼如下:

      編譯應用程序,并通過Program FPGA把軟件程序生成的可執(zhí)行可鏈接格式文件(.ELF)同硬件比特流文件(.BIT)下載到FPGA的測試板.設置斷點調(diào)試代碼,通過跟蹤調(diào)試移植的μC/OS-II代碼和觀察LED的亮暗情況,不斷修改代碼直到確定操作系統(tǒng)正常運行,至此則μC/OS-II操作系統(tǒng)移植成功.

      高職院校的學生營養(yǎng)素攝入少、三餐不合理、進食快、活動量少、經(jīng)常熬夜,從而造成營養(yǎng)不良、肥胖發(fā)生率較高。調(diào)查發(fā)現(xiàn),由于學生的營養(yǎng)知識的匱乏與營養(yǎng)意識的淡薄,普遍存在著膳食結(jié)構(gòu)不合理的現(xiàn)象;并且高職院校學生大多數(shù)不注意奶制品的攝入,這與他們從小的生活習慣和飲食習慣有關(guān)[4]。

      3 測量任務切換時間

      3.1 在ARM處理器上測量任務切換的時間

      實驗環(huán)境:安裝 CentOS Linux系統(tǒng)的 ARM Cortex-A8 TQ335X開發(fā)板、安裝交叉編譯工具鏈的CentOS Linux系統(tǒng).

      設計一個基于優(yōu)先級的可搶占的任務調(diào)度算法:創(chuàng)建兩個具有不同優(yōu)先級的實時任務taskA和taskB,其中taskA的優(yōu)先級高于taskB的優(yōu)先級,兩個任務每隔5毫秒發(fā)生一次調(diào)度.taskA和taskB主體部分均可用如下偽代碼表示.

      任務開啟時,調(diào)用clock_gettime()函數(shù)取得一次系統(tǒng)時間,接著執(zhí)行一段延遲代碼,再次調(diào)用clock_gettime()函數(shù)取得一次系統(tǒng)時間(兩個時間的差值看做任務一次執(zhí)行的周期),然后設置任務調(diào)度周期(這里設為5毫秒,也可以是其它合理值),最后調(diào)用clock_nanosleep()將任務掛起直到這一調(diào)度周期結(jié)束,將開始下一次循環(huán).

      單獨運行taskA的進程時的部分結(jié)果:

      可以看出taskA每隔5毫秒執(zhí)行一次,并且使用30組數(shù)據(jù)計算得到taskA的平均執(zhí)行時間是1334.229微秒.

      單獨運行taskB的進程時的部分結(jié)果:

      同時運行taskA和taskB的進程時的部分結(jié)果:

      可以看出taskA和taskB每隔5毫秒執(zhí)行一次且運行時發(fā)生CPU搶占,taskB的進程運行時發(fā)現(xiàn)有優(yōu)先級更高的taskA的進程就緒時,發(fā)生一次任務切換,taskA的進程運行結(jié)束退出CPU發(fā)生第二次任務切換,taskB的進程接著運行直到進程結(jié)束,然后下一調(diào)度周期,開始新的一輪的進程調(diào)度.所以,兩任務共同執(zhí)行的時間應該包括taskA單獨執(zhí)行的時間、taskB單獨執(zhí)行的時間以及兩次任務切換的時間.

      表1 19組任務切換的時間及平均時間

      13 2047.292 25.878 14 2046.333 25.398 15 2047.000 25.732 16 2046.750 25.607 17 2046.583 25.523 18 2046.583 25.523 19 2046.958 25.711平均值 2053.737 29.100

      由表1可以看出,taskA和taskB的共同執(zhí)行時間是的平均值是2053.737微秒,任務切換的性能:任務切換的平均時間29.100微秒,最差情況下是53.711微秒.

      3.2 在MicroBlaze軟核處理器上測量任務切換時間

      實驗環(huán)境:ISE14.7集成軟件環(huán)境、FPGA測試板和示波器.

      1)設計基于優(yōu)先級的任務調(diào)度算法

      為了測量任務在MicroBlaze軟核處理器上切換時間,設計了一個基于優(yōu)先級的任務調(diào)度算法,具體思路是:任務創(chuàng)建時調(diào)用OSTaskCreate()創(chuàng)建兩個控制測試板LED的任務,任務AppTaskFirst優(yōu)先級為5用來控制引腳分別為P96、P98、P100的LED的亮滅,任務AppTaskSecond優(yōu)先級為6用來控制引腳分別為P97、 P99、P102的LED的亮滅;OSStart()開啟多任務,調(diào)用OSStartHighRdy()運行優(yōu)先級最高的任務AppTaskFirst,任務AppTaskFirst完成控制引腳分別為P96、P98、P100的LED的亮滅之后調(diào)用OSTaskSuspend將自身掛起,進行任務切換,執(zhí)行系統(tǒng)里優(yōu)先級最高的任務AppTaskSecond,任務AppTaskSecond完成控制引腳分別為P97、P99、P102的LED的亮滅之后調(diào)用OSTaskResume將任務AppTaskFirst喚醒,接下來的時間任務就在AppTaskFirst和AppTaskSecond之間不斷來回切換 .

      相關(guān)程序代碼如下:

      2)估算任務的切換時間

      為了得到任務切換的時間這里使用示波器測量了測試板P96、P98兩個管腳對應的I/O口的電平變換.對應不同延遲參數(shù)M和N使用示波器來測量LED亮和暗的延遲.如圖6和圖7分別是延遲參數(shù)M和N均為4時使用示波器測得的LED亮的延遲和LED暗的延遲.由圖6可知LED亮的延遲是252微秒,由圖7可知LED暗的延遲是272微秒.

      圖6 M和N均為4時LED亮的延遲

      圖7 M和N均為4時LED暗的延遲

      由測試程序的代碼可知,LED亮的延遲是調(diào)用delay的延遲;LED暗的延遲調(diào)用delay的延遲與任務切換時間開銷之和.這里LED亮的延遲大小和LED暗的延遲中調(diào)用delay的延遲大小應該是相等,故可得到任務切換時間是20微秒.

      由于使用示波器測得的數(shù)值帶一定誤差以及電平變換有延遲等原因,所得到的結(jié)果也是有誤差的.所以為了能夠更好的分析LED亮的延遲和LED暗的延遲,這里使用了統(tǒng)計的辦法:針對延遲參數(shù)M和N,設計了16組不同的實驗,每組實驗用示波器測得LED亮的延遲T1和LED暗的延遲T2.

      表2 針對M和N的16組不同實驗及其結(jié)果

      由于LED亮的延遲是調(diào)用delay的延遲和LED暗的延遲中調(diào)用delay的延遲是關(guān)于M和N對應成比例的,即T1/M=T2/N,故T2-N*T1/M是任務切換的時間.

      4 249 521 23 6 2 361 153 33 8 6 345 265 35 6 6 345 377 33 4 6 345 489 29 8 2 505 153 27 8 8 473 281 41 8 6 489 393 27 4 8 8 473 505 32平均值 28.875

      由表2可知,(T2-N*T1/M)在落在一個很小的區(qū)間[16微秒,41微秒]內(nèi),結(jié)果是有意義的.這里(T2-N*T1/M)的平均值是28.875微秒,最大值41微秒,據(jù)此得到任務切換的性能:任務切換的平均時間28.875微秒,任務切換的最差情況是41微秒.

      3.3 實驗結(jié)論

      任務在ARM Linux系統(tǒng)上切換的平均時間29.100微 秒,最 差 情 況 是 53.711微 秒;任 務 在MicroBlazeμC/OS-II系統(tǒng)上切換的平均時間是28.875微秒,與在ARM Linux系統(tǒng)下結(jié)果一致,最差情況是41微秒較ARM Linux系統(tǒng)要好一些.實驗結(jié)果表明μC/OS-II系統(tǒng)移植到MicroBlaze之后,不僅可以穩(wěn)定的運行,而且可以實現(xiàn)快速的任務切換,符合數(shù)控系統(tǒng)的實時性要求,可以滿足LT-H10滾齒機控制系統(tǒng)的應用需要.

      4 結(jié)語

      本文以LT-H10滾齒機控制系統(tǒng)為課題背景,針對系統(tǒng)CPU占用率高的問題,為了降低系統(tǒng)CPU占用率,把系統(tǒng)運行的部分主站控制驅(qū)動程序遷移到底板FPGA MicroBlaze軟核處理器上運行,提出了一種基于MicroBlaze軟核處理器的μC/OS-II的移植方案.使用ISE14.7集成軟件環(huán)境構(gòu)建移植環(huán)境將μC/OS-II移植 FPGA MicroBlaze軟核處理器上,通過測試μC/OS-II在 MicroBlaze可以穩(wěn)定運行.針對MicroBlazeμC/OS-II系統(tǒng)和ARM Linux系統(tǒng)設計了兩個不同的任務調(diào)度算法對任務的切換時間進行測量和研究.實驗結(jié)果表明移植到MicroBlaze上的μC/OS-II系統(tǒng)不僅可以穩(wěn)定的運行,而且可以實現(xiàn)快速的任務切換,符合數(shù)控系統(tǒng)的實時性要求,可以滿足LT-H10滾齒機控制系統(tǒng)的應用需要.

      為了降低ARM CPU的占用率還有許多工作要做,首先要實現(xiàn)ARM處理器Linux操作系統(tǒng)與FPGA MicroBlaze軟核處理器μC/OS-II操作系統(tǒng)的通信設計.在LT-H10滾齒機控制系統(tǒng)中主站要實現(xiàn)伺服-脈沖控制,總線協(xié)議,I/O控制,數(shù)字光柵尺控制,計數(shù)器,主軸控制等功能,這些控制功能是實現(xiàn)在驅(qū)動程序部分的,為了降低ARM CPU的占用率,需要實現(xiàn)這些驅(qū)動從ARM處理器Linux操作系統(tǒng)到FPGAMicroBlaze軟核處理器μC/OS-II操作系統(tǒng)的下載.

      1費繼友,周茉.基于+的嵌入式數(shù)控裝置設計.制造技術(shù)與機床,2010,12(12):61–64.

      2季照平.基于單片機ARM嵌入式技術(shù)的數(shù)控系統(tǒng)的開發(fā)研究.輕工科技,2015,(11):47–48,68.

      3劉建康,付云忠.基于ARM_FPGA的嵌入式數(shù)控系統(tǒng)硬件設計[碩士學位論文].哈爾濱:哈爾濱工業(yè)大學,2013.

      4張開生,陳明,周子超.實時操作系統(tǒng)μC/OS-II的實現(xiàn).電子科技,2013,26(10):36–39.

      5趙偉國,李文軍,梁國偉.實時嵌入式操作系統(tǒng)-在上的移植.中國計量學院學報,2005,16(2):137–139.

      6陳果,馮靜.系統(tǒng)及其消息隊列詳析.電子元器件應用,2011, 3(3):38–42.

      7王帥,陳金鷹,鄒振宇.基于的μC/OS-II移植.中國集成電路, 2011,20(7):80–84.

      8邵貝貝等譯.嵌入式實時操作系統(tǒng)μC/OS-II.第2版.北京:北京航空航天大學出版社,2003.

      9孫豐祥,程玉偉,胡恩俊,等.基于軟核的嵌入式最小系統(tǒng).化工自動化及儀表,2013,8(8):36–39.

      10胡志東,韓曉明,馬瑞.嵌入式技術(shù)在雷達數(shù)字接收機中的應用.信息通信,2016,3(3):63–65.

      11單超,王萍,朱愛民,等.基于 軟核的嵌入式系統(tǒng)設計.單片機與嵌入式系統(tǒng)應用,2011,11(3):18–21.

      μC/OS-II System Porting Based on MicroBlaze Processor

      CHANG Hua-Li1,2,YIN Zhen-Yu2

      1(University of ChineseAcademy of Sciences,Beijing 100049,China)
      2(Shenyang Institute of Computer Technology,ChineseAcademy of Sciences,Shenyang 110171,China)

      The LT-H10 hobbing machine numerical control system is an embedded system based on ARM processor.The CPU occupancy in ARM-based NC system is always higher than that in x86-based systems for some characteristic of ARM processor itself limits.A μC/OS-II system porting scheme based on MicroBlaze soft-core processor is presented in this paper,to reduce the occupancy of ARM processor by executing some driver programs of master station on the MicroBlaze soft-core processor of FPGA chip on the bottom plate.The experimental test results show that the μC/OS-II system ported on the MicroBlaze processor can run stably.The rapid context-switch benefits to the real-time of the NC system.We design two different tasks scheduling algorithm to measure and research the context-switch time in MicroBlaze-based μC/OS-II system and ARM-based Linux system.This study can not only meet the application needs of CNC system based on ARM,but also can been applied to CNC system based on X86,to achieve the purpose of reducing CPU occupancy,which has important research meaning and application value in Embedded CNC system.

      FPGA;MicroBlaze;μC/OS-II;porting

      國家科技重大專項(2014ZX04009031)

      2016-08-12;收到修改稿時間:2016-09-23

      10.15888/j.cnki.csa.005742

      猜你喜歡
      占用率堆棧數(shù)控系統(tǒng)
      降低CE設備子接口占用率的研究與應用
      魅力中國(2019年6期)2019-07-21 07:12:10
      嵌入式軟件堆棧溢出的動態(tài)檢測方案設計*
      基于FANUC 32i A數(shù)控系統(tǒng)的外部測量設計
      西門子840D sl數(shù)控系統(tǒng)在SC125大型車銑鏜床技術(shù)改造中的應用
      基于FANUC Oi mate TD數(shù)控系統(tǒng)的手動功能開發(fā)
      數(shù)控系統(tǒng)中GUI軟件平臺設計和實現(xiàn)
      基于堆棧自編碼降維的武器裝備體系效能預測
      基于排隊論的區(qū)域路內(nèi)停車最優(yōu)泊位占用率研究
      阿朗CDMA尋呼信道瘦身增效優(yōu)化
      電信科學(2013年2期)2013-02-28 02:05:20
      一種用于分析MCS-51目標碼堆棧深度的方法
      铁岭县| 常山县| 阿尔山市| 阜康市| 元氏县| 屏山县| 合江县| 东宁县| 晋宁县| 乌拉特前旗| 太谷县| 沂水县| 宣化县| 上思县| 伽师县| 嘉荫县| 黎川县| 琼海市| 华池县| 延寿县| 宁陵县| 和平县| 八宿县| 阿克陶县| 浑源县| 运城市| 大洼县| 桑植县| 阳东县| 专栏| 布尔津县| 休宁县| 珲春市| 石狮市| 汶上县| 南汇区| 抚宁县| 曲水县| 四会市| 齐河县| 西乌珠穆沁旗|