亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Zynq多核運(yùn)行設(shè)計(jì)

        2018-03-20 09:10:19邢艷芳朱金付周曉梅
        關(guān)鍵詞:嵌入式程序設(shè)置

        邢艷芳,朱金付,周曉梅

        (1.中國(guó)傳媒大學(xué)南廣學(xué)院,江蘇 南京 211172;2.東南大學(xué),江蘇 南京 210000)

        0 引 言

        多核處理器主要包括兩種,即對(duì)稱多核處理器(symmetrical multi-core processors,SMP)和非對(duì)稱多核處理器(asymmetrical multi-core processors,AMP)。目前大部分通用多核處理器是SMP,各個(gè)CPU是平等的,共享操作系統(tǒng)、內(nèi)存和外設(shè)等資源,Windows和Linux都有比較成熟穩(wěn)定的任務(wù)調(diào)度算法。AMP大多是嵌入式多核處理器采用的架構(gòu),由一個(gè)主CPU控制系統(tǒng)運(yùn)行和資源分配,從CPU執(zhí)行主CPU的命令或者預(yù)定義任務(wù),其實(shí)時(shí)性比較強(qiáng),適合于一個(gè)CPU做任務(wù)調(diào)度,其他CPU各自獨(dú)立處理實(shí)時(shí)任務(wù),并通過(guò)共享內(nèi)存實(shí)現(xiàn)各個(gè)CPU之間的通信。AMP目前還沒(méi)有成熟的任務(wù)調(diào)度算法。

        Zynq是Xilinx推出新的全可編程芯片[1-2],是以ARM為核心,以FPGA為可編程外設(shè)的一種全新架構(gòu)處理器,其ARM是由2個(gè)Cortex-A9 CPU組成的非對(duì)稱多核處理器系統(tǒng),目前對(duì)Zynq的應(yīng)用研究大都是基于單核處理器。文中提出在Zynq的CPU0上運(yùn)行一個(gè)裸機(jī)程序,由CPU0控制系統(tǒng)的初始化、共享資源和啟動(dòng)CPU1。CPU1啟動(dòng)后,同時(shí)也運(yùn)行一個(gè)裸機(jī)程序,通過(guò)共享OCM和CPU0通信,分時(shí)共享OLED,實(shí)時(shí)顯示CPU運(yùn)行的相關(guān)信息。

        1 Zynq雙核運(yùn)行原理

        Zynq是一個(gè)FPGA做外設(shè)的A9雙核處理器,是一個(gè)可擴(kuò)展處理平臺(tái)。因此,它的啟動(dòng)流程與傳統(tǒng)的ARM處理器類似,和FPGA完全不同。Zynq的啟動(dòng)配置需要多個(gè)處理步驟,通常情況,需要包含以下三個(gè)階段[3-6]。

        (1)階段0:在器件上電運(yùn)行后,處理器就自動(dòng)開(kāi)始Stage-0 Boot,即片內(nèi)BootROM中的代碼被執(zhí)行,上電復(fù)位或者熱復(fù)位后,處理器執(zhí)行的不可修改的代碼。

        (2)階段1:在BootROM初始化CPU和一些外設(shè)后,讀取下一個(gè)階段所需的程序代碼FSBL,即first stage boot loader。它可以由用戶修改控制的代碼。

        (3)階段2:這是用戶基于BSP的裸機(jī)程序,也可以是第二階段操作系統(tǒng)的啟動(dòng)引導(dǎo)程序。這個(gè)階段代碼完全是在用戶的控制下實(shí)現(xiàn)的。

        CPU0作為主處理控制共享資源,如果CPU1需要控制一個(gè)共享資源,必須請(qǐng)求CPU0并讓CPU0控制資源。OCM被作為兩個(gè)CPU通信共享資源,相比DDR內(nèi)存,OCM具有非常高的性能和低延遲訪問(wèn)的特點(diǎn)。

        CPU0和CPU1共享OLED外設(shè),并顯示相關(guān)運(yùn)行信息。CPU0和CPU1分時(shí)占用OLED資源,各占用5 s,相互之間通過(guò)OCM的0xFFFF0000地址作為共享內(nèi)存,進(jìn)行通信協(xié)調(diào)。當(dāng)0xFFFF0000中的內(nèi)容為0時(shí),OLED由CPU0占有,當(dāng)0xFFFF0000中的內(nèi)容為1時(shí),OLED由CPU1使用。OCM是片上內(nèi)存,訪問(wèn)速度比片外DDR快,因此,兩個(gè)CPU通信的實(shí)時(shí)性比較好。

        Zynq是非對(duì)稱多核處理器系統(tǒng),CPU0和CPU1各自占用獨(dú)立的DDR空間,其中CPU0使用的地址空間為0x00100000到0x001FFFFF,而CPU1使用的地址空間為0x00200000到0x002FFFFF。

        2 硬件設(shè)計(jì)

        Zynq由PS+PL構(gòu)成,其中PS部分和普通的ARM芯片一樣,可以獨(dú)立使用;PL部分就是傳統(tǒng)意義的FPGA,可以方便定制外設(shè)電路IP,也可以進(jìn)行相關(guān)的算法設(shè)計(jì)。普通的ARM,外設(shè)是固定的;而Zynq硬件外設(shè)是不固定的,可以利用PL部分靈活地定制外設(shè)掛在PS上,這是Zynq最大的特點(diǎn),也是Zynq靈活性的一個(gè)重要表現(xiàn)。兩個(gè)應(yīng)用程序運(yùn)行在PS部分的Cortex-A9雙核處理器,因此,PS部分自帶的相關(guān)硬件使用Xilinx默認(rèn)配置即可,但雙核CPU運(yùn)行的相關(guān)信息需要在OLED上顯示[7-9],因此需要在PL部分定制一個(gè)OLED的IP核,通過(guò)AXI總線和PS進(jìn)行通信。在PS部分對(duì)OLED進(jìn)行驅(qū)動(dòng)設(shè)計(jì)和顯示設(shè)計(jì)。

        Zynq的測(cè)試板ZedBoard上使用Inteltronic/Wisechip公司的OLED顯示模組UG-2832HSWEG04。這是一款單色被動(dòng)式顯示屏,分辨率為128*32,驅(qū)動(dòng)電路采用所羅門科技的SSD1306芯片。ZedBoard測(cè)試板使用的OLED采用SPI模式控制,使用的信號(hào)線和電源線有如下幾條:

        RST(RES):硬復(fù)位OLED;

        DC:命令/數(shù)據(jù)標(biāo)志(0,讀寫命令;1,讀寫數(shù)據(jù));

        SCLK:串行時(shí)鐘線;

        SDIN:串行數(shù)據(jù)線;

        VDD:邏輯電路電源;

        VBAT:DC/DC轉(zhuǎn)換電路電源。

        在SPI模式下,每個(gè)數(shù)據(jù)長(zhǎng)度均為8位,在SCLK的上升沿,數(shù)據(jù)從SDIN移入到SSD1306,并且是高位在前的。

        其硬件建構(gòu)框圖如圖1所示。

        圖1 硬件設(shè)計(jì)圖

        3 軟件設(shè)計(jì)

        軟件設(shè)計(jì)部分包括CPU0應(yīng)用程序和CPU1應(yīng)用程序。CPU0上運(yùn)行裸機(jī)程序是主系統(tǒng),主要負(fù)責(zé)系統(tǒng)初始化、控制CPU1的啟動(dòng)、與CPU1的通信和在OLED上顯示信息。CPU1上運(yùn)行的裸機(jī)應(yīng)用程序主要負(fù)責(zé)與CPU0上運(yùn)行的程序通信、與CPU0共享OLED[10-13]。

        FSBL總是運(yùn)行在CPU0上,這是上電復(fù)位后PS運(yùn)行的第一個(gè)軟件應(yīng)用程序。負(fù)責(zé)配置PL和將應(yīng)用程序ELF文件復(fù)制到DDR內(nèi)存。加載應(yīng)用程序到DDR內(nèi)存后,F(xiàn)SBL開(kāi)始執(zhí)行第一個(gè)被加載的應(yīng)用程序。FSBL加載完應(yīng)用程序后,跳轉(zhuǎn)到0x00100000處執(zhí)行CPU0程序。

        CPU0里需配置MMU,關(guān)閉Cache,使OCM的物理地址為0xFFFF0000到0xFFFFFFFF和0x00000000到0x0002FFFF。

        關(guān)閉Cache后,CPU0執(zhí)行SEV匯編指令,激活CPU1,CPU1到OCM的0xFFFFFFF0地址讀取其數(shù)值,即CPU1應(yīng)用程序的地址,CPU1應(yīng)用程序?qū)脑摰刂穲?zhí)行。

        判斷共享內(nèi)存COM_VAL是否為0,如果不為0,將繼續(xù)等待判斷。如果為0,將在OLED上顯示相關(guān)信息,延時(shí)5 s,將COM_VAL設(shè)置為1,把OLED資源讓給CPU1使用。然后繼續(xù)判斷共享內(nèi)存COM_VAL是否為0,等待CPU1把OLED使用權(quán)讓給CPU0。

        CPU0在DDR執(zhí)行的物理地址由鏈接腳本設(shè)置,將其運(yùn)行地址設(shè)置為0x00100000,鏈接腳本文件相關(guān)內(nèi)存地址設(shè)置見(jiàn)表1。

        表1 CPU0內(nèi)存地址

        CPU0程序流程如圖2所示。

        圖2 CPU0程序流程

        在AMP系統(tǒng)中,因?yàn)楦鰿PU獨(dú)立使用資源,所以CPU1里仍需要配置MMU,關(guān)閉Cache。激活CPU1后,將從DDR的0x00200000地址開(kāi)始執(zhí)行應(yīng)用程序。

        在關(guān)閉Cache后,CPU1需等待CPU0將共享內(nèi)存設(shè)置為1,然后在OLED上顯示相關(guān)信息。延時(shí)等待后,清除共享內(nèi)存,將OLED讓給CPU0使用。

        CPU1在DDR執(zhí)行的物理地址由鏈接腳本設(shè)置,將其運(yùn)行地址設(shè)置為0x00200000,鏈接腳本文件相關(guān)內(nèi)存地址設(shè)置見(jiàn)表2。

        表2 CPU1內(nèi)存地址

        CPU1程序流程如圖3所示。

        圖3 CPU1程序流程

        4 設(shè)計(jì)驗(yàn)證

        在完成軟硬件設(shè)計(jì)后,需要把軟件部分下載到DDR中運(yùn)行,把硬件比特流配置到Zynq的PL部分。通過(guò)Xilinx的BootGen工具,生成Zynq能識(shí)別的合法鏡像文件BOOT.BIN,其中包含F(xiàn)SBL文件、system.bit文件、CPU0文件和CPU1文件。將BOOT.BIN復(fù)制到SD卡,將測(cè)試板ZedBoard設(shè)置為SD卡啟動(dòng),啟動(dòng)ZedBoard后會(huì)看到OLED被CPU0和CPU1分時(shí)占用信息,如圖4所示。

        圖4 實(shí)驗(yàn)結(jié)果

        5 結(jié)束語(yǔ)

        Zynq器件包括一個(gè)ARM雙核AMP處理器,通過(guò)

        CPU0控制系統(tǒng)和啟動(dòng)CPU1,實(shí)現(xiàn)了兩個(gè)CPU同時(shí)運(yùn)行裸機(jī)程序,并通過(guò)OCM實(shí)現(xiàn)了兩個(gè)CPU的通信,經(jīng)過(guò)24小時(shí)不間斷測(cè)試,雙核運(yùn)行穩(wěn)定,解決了該處理器雙核同時(shí)運(yùn)行的問(wèn)題。

        [1] 何 賓.Xilinx all programmable Zynq-7000SoC設(shè)計(jì)指南[M].北京:清華大學(xué)出版社,2013:384-391.

        [2] 陸佳華,江 舟,馬 岷.嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計(jì)實(shí)戰(zhàn)指南:基于Xilinx Zynq[M].北京:機(jī)械工業(yè)出版社,2013:17-18.

        [3] 陸啟帥,陸彥婷,王 地.Xilinx Zynq SoC與嵌入式Linux設(shè)計(jì)實(shí)戰(zhàn)指南[M].北京:清華大學(xué)出版社,2014:138-152.

        [4] 葉 棽,謝捷如.基于SoC和嵌入式Linux的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(8):203-207.

        [5] 肖靈芝,蒲 林,韓俊剛,等.異構(gòu)多核圖形處理器存儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2013,39(5):38-40.

        [6] 李金泉,王 東,胡文振,等.基于ZYNQ異構(gòu)多核處理器的人體動(dòng)作識(shí)別系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016,16(8):27-29.

        [7] 邢艷芳,張延冬.基于Zynq的OLED驅(qū)動(dòng)設(shè)計(jì)[J].液晶與顯示,2014,29(2):224-228.

        [8] 張 龍,馮 帥.基于ZYNQ的視頻圖像處理平臺(tái)的設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2016,44(12):2519-2523.

        [9] WANG Jiannong,WANG Wei.The common data acquisition system based on Arm9[C]//Proceedings of international conference on electronic measurement &instruments.[s.l.]:IEEE,2011:324-327.

        [10] STEVENS W R,RAGO S A.Advanced programming in the UNIX environment[M].[s.l.]:Addison-Wesley,2014.

        [11] JONES M T.GNU/LINUX application programming[M].[s.l.]:Charles River Media,2008.

        [12] 孟繁星.基于ZYNQ-7000的視頻圖像處理系統(tǒng)設(shè)計(jì)[J].信息通信,2015(8):60-62.

        [13] Solomon-Systech Instruments.The datasheet of the SSD1322Solo-mon-Systech Instrument[R].Hong Kong:Solomon Systech Limit-ed,2008.

        猜你喜歡
        嵌入式程序設(shè)置
        中隊(duì)崗位該如何設(shè)置
        試論我國(guó)未決羈押程序的立法完善
        搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
        “程序猿”的生活什么樣
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        本刊欄目設(shè)置說(shuō)明
        中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        Altera加入嵌入式視覺(jué)聯(lián)盟
        少妇被爽到高潮喷水久久欧美精品| 扒下语文老师的丝袜美腿| 久久久精品久久久国产| 人妻少妇进入猛烈时中文字幕| 亚洲国产成人片在线观看| 精品少妇一区二区三区视频| 国产成人精品男人的天堂网站| 国产自拍一区在线视频| 亚洲va韩国va欧美va| 亚洲视频一区| 久久亚洲国产成人精品v| 国产亚洲一区二区精品| 大地资源高清在线视频播放 | 久久精品国产亚洲一区二区| 人妻无码AⅤ不卡中文字幕| 亚洲视频在线免费观看一区二区 | 一本大道无码人妻精品专区| 亚洲天堂2017无码中文| 亚洲av一区二区国产精品| 日本久久精品视频免费| 国产成人无码精品久久二区三区| 成人区人妻精品一区二区不卡网站| 国产99精品精品久久免费| 手机久草视频福利在线观看 | 综合久久一区二区三区| 成人无码一区二区三区| 亚洲av无码精品色午夜蛋壳| 亚洲无码视频一区:| 一区二区三区av在线| 国产精品兄妹在线观看麻豆| 国产高清在线精品免费| 国产肥熟女视频一区二区三区| 国产精品一区二区三区在线免费| 性色av无码久久一区二区三区| 久久久久国产一级毛片高清版A | 亚洲乱码中文字幕综合久久| 97夜夜澡人人双人人人喊| 人妻无码中文专区久久综合| 亚洲少妇一区二区三区老| 国产精品h片在线播放| 亚洲成aⅴ人在线观看|