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

當(dāng)前位置:首頁(yè) > > ZYNQ
	


Zynq-7000AP SOC器件有效利用了片上CPU來(lái)幫忙配置,在沒(méi)有外部JTAG的情況下,處理系統(tǒng)(PS)與可編程邏輯(PL)都必須依靠PS來(lái)完成芯片的初始化配置。 ZYNQ的兩種啟動(dòng)模式:從BootROM主動(dòng)啟動(dòng),從JTAG被動(dòng)啟動(dòng)。
ZYNQ的啟動(dòng)配置分多級(jí)進(jìn)行的。配置至少需要兩步,但通常按如下三個(gè)階段進(jìn)行:

階段0:
該階段簡(jiǎn)稱為BootROM,控制著整個(gè)芯片的初始化過(guò)程。放在BootROM中的代碼是固化的,不可修改的,處理器核在上電或者熱啟動(dòng)時(shí)自動(dòng)執(zhí)行這部分代碼。
階段1:該階段的啟動(dòng)加載器(FSBL)也可以由用戶代碼控制。

階段2:
這階段通??梢允怯脩舻腜S端的設(shè)計(jì)代碼,當(dāng)然也可以是第二階段的啟動(dòng)加載器(SSBL),這個(gè)階段可以完全由用戶控制,是可選的。

ZYNQ外部啟動(dòng)條件:
1、 電源要求:在階段0 BootROM狀態(tài)時(shí),PS與PL的電源要求如表所示:
在階段1 FSBL時(shí),PS與PL都是必須上電的,因?yàn)镻L將在這個(gè)階段進(jìn)行配置,而PS將負(fù)責(zé)配置的過(guò)程。 2、 時(shí)鐘要求:必須滿足時(shí)鐘 .3、 復(fù)位要求:主要有兩個(gè)外部復(fù)位源將影響B(tài)ootROM的執(zhí)行。(電源復(fù)位信號(hào),系統(tǒng)復(fù)位信號(hào)) 4、 啟動(dòng)引腳設(shè)置:需要配置好引腳才能正確啟動(dòng)平臺(tái)。
BootROM 1、 BootROM的作用:上電復(fù)位以后,PS端即開(kāi)始進(jìn)行配置。在不使用JTAG的情況下,ARM將在片上的BootROM中開(kāi)始執(zhí)行代碼。BootROM中的代碼對(duì)NAND、NOR、Quad-SPI、SD與PCAP的基本外設(shè)控制器進(jìn)行初始化,使得ARM核可以訪問(wèn)、使用這些外設(shè)。
而DDR等其他外設(shè)將在階段1或者之后進(jìn)行初始化。BootROM中的代碼還負(fù)責(zé)加載階段1的啟動(dòng)鏡像。 PS的啟動(dòng)源是由外部模式引腳的高低電平來(lái)選擇的,也就是指BootROM將根據(jù)外部配置引腳的設(shè)置來(lái)從不同的外部存儲(chǔ)中加載階段1的啟動(dòng)鏡像,當(dāng)然也支持在線性Flash上直接運(yùn)行。 需要注意的是PL的配置并不在BootROM中完成,BootROM只為配置PL做好準(zhǔn)備。
FSBL1、 FSBL是在BootROM之后啟動(dòng)的引導(dǎo)程序。由BootROM加載到OCM或者直接在線性Flash上運(yùn)行。FSBL主要完成以下工作:
1) 根據(jù)XPS中的配置,完成PS端的初始化。2) 使用比特流文件對(duì)PL進(jìn)行配置 .3) 加載第二階段引導(dǎo)程序(SSBL)或者裸跑程序(直接在ARM上運(yùn)行無(wú)操作系統(tǒng)程序)到內(nèi)存空間。 4) 跳轉(zhuǎn)執(zhí)行SSBL或者裸跑程序。 注意:FSBL在跳轉(zhuǎn)到SSBL或者裸跑程序前,并不使能MMU。這是因?yàn)樵S多操作系統(tǒng),例如linux假設(shè)MMU在啟動(dòng)時(shí)是禁用的。 FSBL啟動(dòng)流程:
需要注意的是在FSBL階段PL的配置不是必須的,可以將zynq平臺(tái)當(dāng)做兩個(gè)ARM核使用。另外需要注意的是:PL的比特流文件、SSBL、裸跑的應(yīng)用程序等都必須組織成Flash分區(qū)鏡像。FSBL將會(huì)遍歷分區(qū)頭表來(lái)尋找比特流文件、SSBL、裸跑程序所在的位置,然后進(jìn)行加載或配置。SDK提供了生成flash分區(qū)鏡像的工具。
SSBL 第二階段的啟動(dòng)加載(SSBL)是可選的。 SSBL的引導(dǎo)程序稱為BootLoader。對(duì)于運(yùn)行在zynq平臺(tái)的linux系統(tǒng)而言,U-Boot就是SSBL。在zynq平臺(tái)中,F(xiàn)SBL幫助我們加載U-Boot到ARM來(lái)運(yùn)行。U-Boot擁有非常強(qiáng)大的功能,提供了許多用戶指令、讀寫內(nèi)存、flash、USB設(shè)備。U-Boot會(huì)幫助我們完成linux內(nèi)核啟動(dòng)之前所必須的硬件初始化,例如串口、DDR控制器等。
Linux啟動(dòng)過(guò)程: 嵌入式linux從軟件層面考慮可以分為以下四個(gè)部分:引導(dǎo)程序(BootLoader)、linux內(nèi)核、文件系統(tǒng)、應(yīng)用程序。 Zynq平臺(tái)中的嵌入式linux就是U-Boot,F(xiàn)SBL幫助我們引導(dǎo)U-Boot到內(nèi)存中。
U-Boot將為linux內(nèi)核初始化內(nèi)存和必要的外設(shè),設(shè)置好啟動(dòng)參數(shù)。在zynq平臺(tái)中,采用設(shè)備樹(shù)來(lái)傳遞驅(qū)動(dòng)部分的參數(shù),所以U-Boot還將為內(nèi)核拷貝設(shè)備樹(shù)鏡像文件到內(nèi)存中。由U-Boot傳遞給內(nèi)核的啟動(dòng)參數(shù)中通常包含了設(shè)備樹(shù)的地址,文件系統(tǒng)的類型、地址等信息。而后U-Boot將把系統(tǒng)控制權(quán)交給linux內(nèi)核。
當(dāng)linux內(nèi)核擁有系統(tǒng)的控制權(quán)后,將先進(jìn)行初始化,建議起內(nèi)核的運(yùn)行環(huán)境。Linux內(nèi)核在完成了虛擬地址到物理地址映射后,還有就是驅(qū)動(dòng)設(shè)備初始化與掛載。在zynq平臺(tái)中,采用設(shè)備樹(shù)的方式傳遞設(shè)備驅(qū)動(dòng)的信息,如果有為PL中的IP核編寫了驅(qū)動(dòng)程序,也可以使用模塊化的方式,待linux啟動(dòng)后再進(jìn)行掛載。
Linux內(nèi)核將根據(jù)U-Boot傳遞過(guò)來(lái)的參數(shù)信息選擇掛載文件系統(tǒng)的格式與掛載點(diǎn)。最后linux內(nèi)核將運(yùn)行init()函數(shù),這是內(nèi)核引導(dǎo)的終點(diǎn),也是系統(tǒng)所有進(jìn)程的起點(diǎn)。 應(yīng)用程序都是放在文件系統(tǒng)中。


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