999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Zynq多核運行設計

2018-03-20 09:10:19邢艷芳朱金付周曉梅
計算機技術與發展 2018年3期
關鍵詞:嵌入式程序設置

邢艷芳,朱金付,周曉梅

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

0 引 言

多核處理器主要包括兩種,即對稱多核處理器(symmetrical multi-core processors,SMP)和非對稱多核處理器(asymmetrical multi-core processors,AMP)。目前大部分通用多核處理器是SMP,各個CPU是平等的,共享操作系統、內存和外設等資源,Windows和Linux都有比較成熟穩定的任務調度算法。AMP大多是嵌入式多核處理器采用的架構,由一個主CPU控制系統運行和資源分配,從CPU執行主CPU的命令或者預定義任務,其實時性比較強,適合于一個CPU做任務調度,其他CPU各自獨立處理實時任務,并通過共享內存實現各個CPU之間的通信。AMP目前還沒有成熟的任務調度算法。

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

1 Zynq雙核運行原理

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

(1)階段0:在器件上電運行后,處理器就自動開始Stage-0 Boot,即片內BootROM中的代碼被執行,上電復位或者熱復位后,處理器執行的不可修改的代碼。

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

(3)階段2:這是用戶基于BSP的裸機程序,也可以是第二階段操作系統的啟動引導程序。這個階段代碼完全是在用戶的控制下實現的。

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

CPU0和CPU1共享OLED外設,并顯示相關運行信息。CPU0和CPU1分時占用OLED資源,各占用5 s,相互之間通過OCM的0xFFFF0000地址作為共享內存,進行通信協調。當0xFFFF0000中的內容為0時,OLED由CPU0占有,當0xFFFF0000中的內容為1時,OLED由CPU1使用。OCM是片上內存,訪問速度比片外DDR快,因此,兩個CPU通信的實時性比較好。

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

2 硬件設計

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

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

RST(RES):硬復位OLED;

DC:命令/數據標志(0,讀寫命令;1,讀寫數據);

SCLK:串行時鐘線;

SDIN:串行數據線;

VDD:邏輯電路電源;

VBAT:DC/DC轉換電路電源。

在SPI模式下,每個數據長度均為8位,在SCLK的上升沿,數據從SDIN移入到SSD1306,并且是高位在前的。

其硬件建構框圖如圖1所示。

圖1 硬件設計圖

3 軟件設計

軟件設計部分包括CPU0應用程序和CPU1應用程序。CPU0上運行裸機程序是主系統,主要負責系統初始化、控制CPU1的啟動、與CPU1的通信和在OLED上顯示信息。CPU1上運行的裸機應用程序主要負責與CPU0上運行的程序通信、與CPU0共享OLED[10-13]。

FSBL總是運行在CPU0上,這是上電復位后PS運行的第一個軟件應用程序。負責配置PL和將應用程序ELF文件復制到DDR內存。加載應用程序到DDR內存后,FSBL開始執行第一個被加載的應用程序。FSBL加載完應用程序后,跳轉到0x00100000處執行CPU0程序。

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

關閉Cache后,CPU0執行SEV匯編指令,激活CPU1,CPU1到OCM的0xFFFFFFF0地址讀取其數值,即CPU1應用程序的地址,CPU1應用程序將從該地址執行。

判斷共享內存COM_VAL是否為0,如果不為0,將繼續等待判斷。如果為0,將在OLED上顯示相關信息,延時5 s,將COM_VAL設置為1,把OLED資源讓給CPU1使用。然后繼續判斷共享內存COM_VAL是否為0,等待CPU1把OLED使用權讓給CPU0。

CPU0在DDR執行的物理地址由鏈接腳本設置,將其運行地址設置為0x00100000,鏈接腳本文件相關內存地址設置見表1。

表1 CPU0內存地址

CPU0程序流程如圖2所示。

圖2 CPU0程序流程

在AMP系統中,因為各CPU獨立使用資源,所以CPU1里仍需要配置MMU,關閉Cache。激活CPU1后,將從DDR的0x00200000地址開始執行應用程序。

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

CPU1在DDR執行的物理地址由鏈接腳本設置,將其運行地址設置為0x00200000,鏈接腳本文件相關內存地址設置見表2。

表2 CPU1內存地址

CPU1程序流程如圖3所示。

圖3 CPU1程序流程

4 設計驗證

在完成軟硬件設計后,需要把軟件部分下載到DDR中運行,把硬件比特流配置到Zynq的PL部分。通過Xilinx的BootGen工具,生成Zynq能識別的合法鏡像文件BOOT.BIN,其中包含FSBL文件、system.bit文件、CPU0文件和CPU1文件。將BOOT.BIN復制到SD卡,將測試板ZedBoard設置為SD卡啟動,啟動ZedBoard后會看到OLED被CPU0和CPU1分時占用信息,如圖4所示。

圖4 實驗結果

5 結束語

Zynq器件包括一個ARM雙核AMP處理器,通過

CPU0控制系統和啟動CPU1,實現了兩個CPU同時運行裸機程序,并通過OCM實現了兩個CPU的通信,經過24小時不間斷測試,雙核運行穩定,解決了該處理器雙核同時運行的問題。

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

[2] 陸佳華,江 舟,馬 岷.嵌入式系統軟硬件協同設計實戰指南:基于Xilinx Zynq[M].北京:機械工業出版社,2013:17-18.

[3] 陸啟帥,陸彥婷,王 地.Xilinx Zynq SoC與嵌入式Linux設計實戰指南[M].北京:清華大學出版社,2014:138-152.

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

[5] 肖靈芝,蒲 林,韓俊剛,等.異構多核圖形處理器存儲系統設計與實現[J].電子技術應用,2013,39(5):38-40.

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

[7] 邢艷芳,張延冬.基于Zynq的OLED驅動設計[J].液晶與顯示,2014,29(2):224-228.

[8] 張 龍,馮 帥.基于ZYNQ的視頻圖像處理平臺的設計[J].計算機與數字工程,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的視頻圖像處理系統設計[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.

猜你喜歡
嵌入式程序設置
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
搭建基于Qt的嵌入式開發平臺
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 久久这里只有精品国产99| 亚洲AV无码不卡无码 | 欧美在线综合视频| 人人澡人人爽欧美一区| 色综合a怡红院怡红院首页| 91日本在线观看亚洲精品| 91九色国产porny| 国产欧美日韩视频怡春院| 久久久受www免费人成| 韩日午夜在线资源一区二区| 久久香蕉国产线看精品| 国产福利不卡视频| 91系列在线观看| 久久综合丝袜长腿丝袜| 中文国产成人精品久久一| 人妻中文久热无码丝袜| 永久毛片在线播| 在线日韩日本国产亚洲| 2021国产在线视频| 98精品全国免费观看视频| 国产日韩欧美中文| av大片在线无码免费| 国产日韩久久久久无码精品| 在线播放91| 97色婷婷成人综合在线观看| 日本影院一区| 成人一级免费视频| 亚洲 欧美 偷自乱 图片| 精品久久香蕉国产线看观看gif | 亚洲人成网站18禁动漫无码| 99在线视频精品| 日韩久草视频| 91精品日韩人妻无码久久| 久久香蕉国产线看观看式| 77777亚洲午夜久久多人| 亚洲综合亚洲国产尤物| 成年人福利视频| 69精品在线观看| 18黑白丝水手服自慰喷水网站| 女人18毛片一级毛片在线| 伊人久久综在合线亚洲91| 国产成人喷潮在线观看| 午夜福利视频一区| 欧美一级高清片久久99| 亚洲精品成人片在线观看| 99精品福利视频| 日本在线视频免费| 国内精品视频在线| 国产欧美日韩专区发布| 亚洲乱码精品久久久久..| 国产视频你懂得| 亚洲精品午夜天堂网页| 女高中生自慰污污网站| 欧美精品在线观看视频| 亚洲AV无码一区二区三区牲色| 亚洲日韩精品无码专区97| 麻豆精品国产自产在线| 日韩精品久久久久久久电影蜜臀| 免费在线视频a| 久久美女精品| 国产手机在线小视频免费观看 | 久久99精品国产麻豆宅宅| 国产视频入口| 亚洲第一视频网| 精品国产免费观看一区| 亚洲中文精品人人永久免费| 亚洲男人天堂2018| 日韩视频福利| 精品少妇人妻无码久久| 久久九九热视频| 国产在线视频福利资源站| 国产主播喷水| 午夜性爽视频男人的天堂| 亚洲高清免费在线观看| 刘亦菲一区二区在线观看| 国内毛片视频| 99热这里只有精品国产99| 91亚洲影院| 国产一二三区在线| 国产资源免费观看| 毛片免费观看视频| 久久夜夜视频|